text:
[2014-11-06] munin 2.0.24-1 MIGRATED to testing (Britney) link
[2014-10-26] Accepted 2.0.24-1 in unstable (medium) (Stig Sandbeck Mathisen) link
[2014-10-20] munin 2.0.23-1 MIGRATED to testing (Britney) link
[2014-10-17] Accepted 2.0.23-1 in unstable (medium) (Holger Levsen) link
[2014-10-16] Accepted 2.0.22-1 in unstable (low) (Holger Levsen) link
The next stable maintenance release

 link

Sometimes this blog has something like "columns" for long-term topics that keep re-emerging (no pun intended) from time to time. Since I came back to the US last July you can see that one of the big issues I fight with daily is HP servers.

Why is the company I'm working for using HP servers? Mostly because they didn't have a resident system administrator before I came on board, and just recently they hired an external consultant to set up new servers … the one who set up my nightmare: Apple OS X Server so I'm not sure which of the two options I prefer.

Anyway, as you probably know if you follow my blog, I've been busy setting up Munin and Icinga to monitor the status of services and servers — and that helped quite a bit over time. Unfortunately, monitoring HP servers is not easy. You probably remember I wrote a plugin so I could monitor them through IPMI — it worked nicely until I actually got Albert to expose the thresholds in the ipmi-sensors output, then it broke because HP's default thresholds are totally messed up and unusable, and it's not possible to commit new thresholds.

After spending quite some time playing with this, I ended up with write access to Munin's repositories (thanks, Steve!) and I can now gloat be worried about having authored quite a few new Munin plugins (the second generation FreeIPMI multigraph plugin is an example, but I also have a sysfs-based hwmon plugin that can get all the sensors in your system in one sweep, a new multigraph-capable Apache plugin, and a couple of SNMP plugins to add to the list). These actually make my work much easier, as they send me warnings when a problem happens without having to worry about it too much, but of course are not enough.

After finally being able to replace the RHEL5 (without a current subscription) with CentOS 5, I've started looking in what tools HP makes available to us — and found out that there are mainly two that I care about: one is hpacucli, which is also available in Gentoo's tree, and the other is called hp-health and is basically a custom interface to the IPMI features of the server. The latter actually has a working, albeit not really polished, plugin in the Munin contrib repository – which I guess I'll soon look to transform into a multigraph capable one; I really like multigraph – and that's how I ended up finding it.

At any rate at that point I realized that I did not add one of the most important checks: the SMART status of the harddrives — originally because I couldn't get smartctl installed. So I went and checked for it — the older servers are almost all running as IDE (because that's the firmware's default.. don't ask), so those are a different story altogether; the newer servers running CentOS are using an HP controller with SAS drives, using the CCISS (block-layer) driver from the kernel, while one is running Gentoo Linux, and uses the newer, SCSI-layer driver. All of them can't use smartctl directly, but they have to use a special command: smartctl -d cciss,0 — and then either point it to /dev/cciss/c0d0 or /dev/sda depending on how which of the two kernel drivers you're using. They don't provide all the data that they provide for SATA drives, but they provide enough for Munin's hddtemp_smartctl and they do provide an health status…

For what concerns Munin, your configuration would then be something like this in /etc/munin/plugin-conf.d/hddtemp_smartctl:

[hddtemp_smartctl]
user root
env.drives hd1 hd2
env.type_hd1 cciss,0
env.type_hd2 cciss,1
env.dev_hd1 cciss/c0d0
env.dev_hd2 cciss/c0d0

Depending on how many drives you have and which driver you're using you will have to edit it of course.

But when I tried to use the default check_smart.pl script from the nagios-plugins package I had two bad surprises: the first is that they try to validate the parameter passed to the plugin to identify the device type to smartctl, refusing to work for a cciss type, and the other that it didn't consider the status message that is printed by this particular driver. I was so pissed, that instead of trying to fix that plugin – which still comes with special handling for IDE-based harddrives! – I decided to write my own, using the Nagios::Plugin Perl module, and releasing it under the MIT license.

You can find my new plugin in my github repository where I think you'll soon find more plugins — as I've had a few things to keep under control anyway. The next step is probably using the hp-health status to get a good/bad report, hopefully for something that I don't get already through standard IPMI.

The funny thing about HP's utilities is that they for the most part just have to present data that is already available from the IPMI interface, but there are a few differences. For instance, the fan speed reported by IPMI is exposed in RPMs — which is the usual way to expose the speed of fans. But on the HP utility, fan speed is actually exposed as a percentage of the maximum fan speed. And that's how their thresholds are exposed as well (as I said, the thresholds for fan speed are completely messed up on my HP servers).

Oh well, anything else can happen lately, this would be enough for now.
 link

As I wrote yesterday I've been doing system and network administration work here in LA as well, and I've set up Munin and Icinga to warn me when something required maintenance.

Now some of the first probes that Munin forwarded to Icinga we knew already about (in another post I wrote of how the CMOS battery ran out on two of the servers), but one was something that bothered me before as well: one of the boxes only has one CPU on board and it reports a value of 0 instead of N/A.

So I decided to look into updating the firmware of the DL140 G3 and see if it would help us at all; the original firmware on IPMI device was 2.10 while the latest one available is 2.21. Neither support firmware update via HTML. The firmware download, even when selecting the RedHat Enterprise Linux option is a Windows EXE file (not an auto-extract archive, which you can extract from Linux, but their usual full-fledged setup software to extract in C:\SWSetup). When you extract it, you're presented with instructions on how to build an USB key which you can then use to update the firmware via FreeDOS…

You can guess I wasn't amused.

After searching around a bit more I found out that there is a way to update this over the network. It's described in HP's advanced iLO usage guide, and seems to work fine, but it also requires another step to be taken in Windows (or FreeDOS): you have to use the ROMPAQ.EXE utility to decompress the compressed firmware image.

I wonder, why does HP provide you with two copies of the compressed firmware image, for a grand total of 3MB, instead of only one of the uncompressed one (2MB)? I suppose the origin of the compressed image is to be found in the 1.44MB floppy disk size limitation, but nowadays you don't use floppies… oh well.

After you have the uncompressed image, you have to set up a TFTP server.. which luckily I already had laying around from when I updated the firmware of the APC powerstrips discussed in one of the posts linked above. So I just added the IPMI firmware image, and moved on to the next step.

The next step consists of connecting via telnet to the box and issue two commands: cd map1/firmware1 followed by load -source //$serverip/$filename -oemhpfiletype csr … the file is downloaded via TFTP and the BMC rebooted. Afterwards you have to clear out the SDR cache of FreeIPMI as ipmi-sensors wouldn't work otherwise.

This did fix the critical notification I was receiving .. to a point. First of all, the fan speed has still bogus thresholds (and I'm not sure if it's a bug in FreeIPMI or one in the firmware at this point) as it reports the upper limits instead of the lower ones). Second of all the way it fixed the misreported CPU thermal sensor is by … not reporting any temperature off either thermal sensor! Now both CPU temperatures are gone and only ambient temperature is available. D'oh!

Another funky issue is that I'm still fighting to get Munin to tell Icinga that "everything's okay" — the way Munin contacts send_nsca is connected to the limits so if there are no limits that are present, it seems like it simply doesn't report anything at all. This is something else I have to fix this week.

Now back to doing the firmware updates on the remaining boxes…

Update: turns out HP updates are worse than the original firmware in some ways. Not only the CPU Thermal Diodes are no longer represented, but the voltages lost their thresholds altogether! The end result of which is that now it says that it's all a-ok! Even if the 3V battery is reported at 0.04V!. Which basically means that I have to set my own limits on things, but at least it should work as intended afterwards.

Oh and the DL160 G6? First of all, this time the firmware update has a web interface… to tell it which file to request from which TFTP server. Too bad that all the firmware updates that I can run on my systems require the bootcode to be updated as well, which means we'll have to schedule some maintenance time when I come back from VDDs.
 link

This is going to be a bit of a different review than usual, if anything because I actually I already reviewed the book, in the work-in-progress sense. So bear with me.

Today, Packt published Bart ten Brinkle's Instant Munin Plugin Starter which I reviewed early this year. Bart has done an outstanding job in expanding from the sparsely-available documentation to a comprehensive and, especially coherent book.

If you happen to use Munin, or are interested to use it, I would say it's a read well worth the $8 that it's priced at!
 link

In my previous post about Munin I said that I was still working on making sure that the async support would reach Gentoo in a way that actually worked. Now with version 2.0.7-r5 this is vastly possible, and it's documented on the Wiki for you all to use.

Unfortunately, while testing it, I found out that one of the boxes I'm monitoring, the office's firewall, was going crazy if I used the async spooled node, reporting fan speeds way too low (87 RPMs) or way too high (300K), and with similar effects on the temperatures as well. This also seems to have caused the fans to go out of control and run constantly at their 4KRPM instead of their usual 2KRPM. The kernel log showed that there was something going wrong with the i2c access, which is what the sensors program uses.

I started looking into the sensors_ plugin that comes with Munin, which I knew already a bit as I fixed it to match some of my systems before… and the problem is that for each box I was monitoring, it would have to execute sensors six times: twice for each graph (fan speed, temperature, voltages), one for config and one for fetching the data. And since there is no way to tell it to just fetch some of the data instead of all of it, it meant many transactions had to go over the i2c bus, all at the same time (when using munin async, the plugins are fetched in parallel). Understanding that the situation is next to unsolvable with that original code, and having one day "half off" at work, I decided to write a new plugin.

This time, instead of using the sensors program, I decided to just access /sys directly. This is quite faster and allows to pinpoint what data you need to fetch. In particular during the config step, there is no reason to fetch the actual value, which saves many i2c transactions even just there. While at it, I also made it a multigraph plugin, instead of the old wildcard one, so that you only need to call it once, and it'll prepare, serially, all the available graphs: in addition to those that were supported before, which included power – as it's exposed by the CPUs on Excelsior – I added a few that I haven't been able to try but are documented by the hwmon sysfs interface, namely current and humidity.

The new plugin is available on the contrib repository – which I haven't found a decent way to package yet – as sensors/hwmon and is still written in Perl. It's definitely faster, has fewer dependencies and it's definitely more reliable at leas ton my firewall. Unfortunately, there is one feature that is missing: sensors would sometimes report an explicit label for temperature data.. but that's entirely handled in userland. Since we're reading the data straight from the kernel, most of those labels are lost. For drivers that do expose those labels, such as coretemp, they are used, though.

Also we lose the ability to ignore the values from the get-go, like I describe before but you can't always win. You'll have to ignore the graph data from the master instead. Otherwise you might want to find a way to tell the kernel to not report that data. The same probably is true for the names, although unfortunately…

[temp*_label] Should only be created if the driver has hints about what this temperature channel is being used for, and user-space doesn't. In all other cases, the label is provided by user-space.

But I wouldn't be surprised if it was possible to change that a tinsy bit. Also, while it does forfeit some of the labeling that the sensors program do, I was able to make it nicer when anonymous data is present — it wasn't so rare to have more than one temp1 value as it was the first temperature channel for each of the (multiple) controllers, such as the Super I/O, ACPI Thermal Zone, and video card. My plugin outputs the controller and the channel name, instead of just the channel name.

After I've completed and tested my hwmon plugin I moved on to re-rewrite the IPMI plugin. If you remember the saga I first rewrote the original ipmi_ wildcard plugin in freeipmi_, including support for the same wildcards as ipmisensor_, so that instead of using OpenIPMI (and gawk), it would use FreeIPMI (and awk). The reason was that FreeIPMI can cache SDR information automatically, whereas OpenIPMI does have support, but you have to tackle it manually. The new plugin was also designed to work for virtual nodes, akin to the various SNMP plugins, so that I could monitor some of the servers we have in production, where I can't install Munin, or I can't install FreeIPMI. I have replaced the original IPMI plugin, which I was never able to get working on any of my servers, with my version on Gentoo for Munin 2.0. I expect Munin 2.1 to come with the FreeIPMI-based plugin by default.

Unfortunately, like for the sensors_ plugin, my plugin was calling the command six times per host — although this allows you to filter for the type of sensors you want to receive data for. And that became even worse when you have to monitor foreign virtual nodes. How do I solve that? I decided to rewrite it to be multigraph as well… but shell script then was difficult to handle, which means that it's now also written in Perl. The new freeipmi, non-wildcard, virtual node-capable plugin is available in the same repository and directory as hwmon. My network switch thanks me for that.

Of course unfortunately the async node still does not support multiple hosts, that's something for later on. In the mean time though, it does spare me lots of grief and I'm happy I took the time working on these two plugins.
 link

Yes, I know I start to get boring.

Today I spent at least half of my work day working on Munin plugins to monitor effectively some of the equipment we currently have at our co-location. This boils down to two metered APC powerstrips PDUs (let's use their term, silly as it might sound). I think it's worth to note the difference: APC provides switched and metered PDUs; the former should allow for having per-plug load data, and powering on and off of the single plug; the latter (what we have here) is much cheaper, does not allow you to turn them on and off, and simply give you a reading of the load per-phase. Given that our co-location has only single-phase power, we only get a reading per strip, which is still okay, it gives us more information than we had before at least.

Now, there are a few funny things with these strips: they have a network interface, which is cool, but they don't use DHCP by default! You either have to set them up with the serial interface (which obviously is still very serial, not an USB adapter — and my laptop doesn't have any serial port), or use a Windows software (which is actually written in Java and spend 98% of the install time copying an extra install of the JRE to the drive), or finally note down the MAC address when you install them, and then poisoning a system's ARP table to "fake" an IP to the strip, sealing the deal by sending a 113 bytes ICMP packet to the strip via ping … no there is no use for a watermelon or a chimp, sorry Luca.

After finally completing the IP settings, I had to find my way to get the data out; the strips support either SNMPv1 or SNMPv3 — I discarded the former simply because it's extremely insecure and I'd rather not even have that around, so I set up an user for munin. Next problem? snmpwalk did not report any useful data. The reason is actually quite simple: it doesn't know which OIDs to probe for. Download the MIB data from APC and install it in the system, and it's much happier.

Then I had to write a plugin for it. Which wasn't too bad; the data is simple, too bad I couldn't find a way to get, through SNMP, the high limit of current drain on the strip — it did report the configured (default) limits for near-overload and overload, which makes it very nice to set them up in Munin. Unfortunately only after writing the plugin I found out that the Munin contrib repository had already not one but two plugins trying to do the same. Neither is very good with it though: neither supported Munin's SNMP framework, one had a very unclear licensing situation (which is unfortunately common on the contrib repository), and used sh and net-snmp's command-line utilities to access the strip.

So after adding my plugin, and removing the two bad ones, I also looked into cleaning up the contrib tree a little bit. It's far from perfect, there are still miscategorized plugins and duplicates, and others (such as one of the net-p2p/transmission monitors) which rely on external script files instead of being written in a single one. But at least I was able to remove and recategorize enough of them that it starts to make some sense. If you're a Munin user and would like for Gentoo to provide more, better plugins, then please take your time to see which of the plugins currently in the contrib tree are trying to reimplement something and failing at it (lots of them I'm afraid will be, especially those related to APC UPSes), and get rid of them. There is also work to be done to bring even only the documentation of the plugins up to speed with the format used by Munin proper, and this is without talking about improving them to follow the right code style or anything.

I also spent some time improving my IPMI plugin (which you can find now on the contrib repository if you're not a Gentoo user – if you're a Gentoo user it takes the place of the original IPMI plugins shipped with Munin – after I removed all the others that were trying to do the same thing sometimes with twice as many lines of code than mine), and now it can monitor foreign hosts as well. How is this useful? Well, among other things it lets you monitor Windows boxes and other boxes where you either lack access or you can't install any IPMI tool (I have a couple of systems that are running RHEL4 to monitor, okay?).

One interesting thing I learnt out of this experience is that it makes total sense to monitor voltages at least on HP servers. Beside the idea of monitoring for a PSU gone wrong, HP has one probe set to the CMOS battery, which is a 3V CR2032 Lithium Battery which will provide decreasing voltage, and thus will show in the list when it has to be replaced — unfortunately it also seems like their newest servers don't have a probe there, which is bad (Excelsior has a VBAT which seems to be just the same thing).

This is all for today!
 link

While I was originally supposed to come here in Los Angeles to work as a firmware developer engineer, I've ended up doing a bit more than I was called for.. in particular it seems like I've been enlisted to work as a system/network administrator as well, which is not something that bad to be honest, even though it still means that I have to deal with a number of old RedHat and derivative systems.

As I said before this is good because it means that I can work on open-source projects, and Gentoo maintenance, during work hours, as the monitoring is done with Munin, Gentoo and, lately, Icinga. The main issue is of course having to deal with so many different versions of RedHat (there is at least one RHEL3, a few RHEL4, a couple of RHEL5, – and almost all of them don't have subscriptions – some CentOS 5, plus the new servers that are Gentoo, luckily), but there are others.

Starting last week I started looking into Icinga to monitor the status of services: while Munin is good to know how things move over time and to have an idea of "what happened at that point", it's still not extremely good if you just want to know "is everything okay now or not?". I also find most Munin plugins being simpler to handle than Nagios's (which are what Icinga would be using), and since I already want the data available on graphs, I might just as well forward the notifications. This of course does not apply to boolean checks that are pretty silly on Munin.

There is some documentation in the Munin website on how to set up Nagios notifications, and it mostly works flawlessly for Icinga. With the one difference being that you have to change the NSCA configuration, as Icinga uses a different command file path, and a different user, which means you have to set up

nsca_user=icinga
nsca_group=icinga... read more

This post is an interlude between Gentoo-related posts. The reason is that I have one in drafts that requires me to produce some results that I have not yet, so it'll have to wait for the weekend or so.

You might remember that my original IPMI plugin was written in POSIX sh and awk, rather than bash and gawk as the original one. Since then, the new plugin (that as it turns out might become part of the 2.1 series but not to replace both the old ones, since RHEL and Fedora don't package a new enough version of Freeipmi) has been rewritten in Perl, so using neither sh nor awk. Similarly, I've written a new plugin for sensors which I also wrote in Perl (although in this case the original one also used it).

So why did I learn a new language (since I never programmed in Perl before six months ago) just to get these plugins running? Well, as I said in the other post, the problem was calling the same command so many times, which is why I wanted to go multigraph — but when dealing with variables, sticking to POSIX sh is a huge headache. One of the common ways to handle this is to save to a temporary directory the output of a command and parse that multiple times, but that's quite a pain, as it might require I/O to disk, and it also means that you have to execute more and more commands. Doing the processing in Perl means that you can save things in variables, or even just parse it once and split it into multiple objects, to be later used for output, which is what I've been doing for parsing FreeIPMI's output.

But why Perl? Well, Munin itself is written in Perl, so while my usual language of choice is Ruby, the plugins are much more usable if doing it in Perl. Yes, there are some alternative nodes written in C and shell, but in general it's a safe bet that these plugins will be executed on a system that at least supports Perl — the only system I can think of that wouldn't be able to do so would be OpenWRT, but that's a whole different story.

There are a number of plugins written in Python and Ruby, some in the official package, but most in the contrib repository and they could use some rewriting. Especially those that use net-snmp or other SNMP libraries, instead of Munin's Net::SNMP wrapper.

But while the language is of slight concern, some of the plugins could use some rewriting simply to improve their behaviour. As I've said, using multigraphs it's possible to reduce the number of times that the plugin is executed, and thus the number of calls to the backend, whatever that is (a program, or access to /sys), so in many cases plugins that support multiple "modes" or targets through wildcarding can be improved by making them a single plugin. In some cases, it's even possible to reduce multiple plugins into one, as I did to the various apache_* plugins shipping with Munin itself, replaced on my system with apache_status as provided by the contrib repository, that fetches the server status page only once and then parses it to produce the three graphs that were, before that, created by three different plugins with three different fetches.

Another important trick up our sleeves while working on Munin plugins is dirty config which basically means that (under indication from the node itself), you can make the plugin output the values as well as the configuration itself during the config execution — this saves you one full trip to the node (to fetch the data), and usually that also means it saves you from having to send one more call to the backend. In particular with these changes my IPMI plugin went from requiring six calls to ipmi-sensors per update, for the three graphs, to just one. And since it's either IPMI on the local bus (which might require some time to access) or over LAN (which takes more time), the difference is definitely visible both in timing, and in traffic — in particular one of the servers at my day job is monitoring another seven servers (which can't be monitored through the plugin locally), which means that we went from 42 to 7 calls per update cycle.

So if you use Munin, and either have had timeout issues in the past or recently, or you have some time at hand to improve some plugins, you might want to follow what I've been doing, and start improving or re-writing plugins to support multigraph or dirtyconfig, and thus improve its performance.
 link

If you're a Munin user in Gentoo and you look at ChangeLogs you probably noticed that yesterday I did commit quite a few changes to the latest ~arch ebuild of it. The main topic for these changes was async support, which unfortunately I think is still not ready yet, but let's take a step back. Munin 2.0 brought one feature that was clamored for, and one that was simply extremely interesting: the former is the native SSH transport, the others is what is called "Asynchronous Nodes".

On a classic node whenever you're running the update, you actually have to connect to each monitored node (real or virtual), get the list of plugins, get the config of each plugin (which is not cached by the node), and then get the data for said plugin. For things that are easy to get because they only require you to get data out of a file, this is okay, but when you have to actually contact services that take time to respond, it's a huge pain in the neck. This gets even worse when SNMP is involved, because then you have to actually make multiple requests (for multiple values) both to get the configuration, and to get the values.

To the mix you have to add that the default timeout on the node, for various reason, is 10 seconds which, as I wrote before makes it impossible to use the original IPMI plugin for most of the servers available out there (my plugin instead seem to work just fine, thanks to FreeIPMI). You can increase the timeout, even though this is not really documented to begin with (unfortunately like most of the things about Munin) but that does not help in many cases.

So here's how the Asynchronous node should solve this issue: on a standard node, the requests to the single node are serialized so you're actually waiting for each to complete before the next one is fetched, as I said, and since this can make the connection to the node take, all in all, a few minutes, and if the connection is severed then, you lose your data. The Asynchronous node, instead, has a different service polling the actual node on the same host, and saves the data in its spool file. The master in this case connects via SSH (it could theoretically work using xinetd but neither me nor Steve care about that), launches the asynchronous client, and then requests all the data that was fetched since the last request.

This has two side-effects: the first is that your foreign network connection is much faster (there is no waiting for the plugins to config and fetch the data), which in turn means that the overall munin-update transaction is faster, but also, if for whatever reason the connection fails at one point (a VPN connection crashes, a network cable is unplugged, …), the spooled data will cover the time that the network was unreachable as well, removing the "holes" in the monitoring that I've been seeing way too often lately. The second side effect is that you can actually spool data every five minutes, but only request it every, let's say, 15, for hosts which does not require constant monitoring, even though you want to keep granularity.

Unfortunately, the async support is not as tested as it should be and there are quite a few things that are not ironed out yet, which is why the support for it in the ebuild has been this much in flux up to this point. Some things have been changed upstream as well: before, you had only one user, and that was used for both the SSH connections and for the plugins to fetch data — unfortunately one of the side effect of this is that you might have given your munin user more access (usually read-only, but often times there's no way to ensure that's the case!) to devices, configurations or things like that… and you definitely don't want to allow direct access to said user. Now we have two users, munin and munin-async, and the latter needs to have an actual shell.

I tried toying with the idea of using the munin-async client as a shell, but the problem is that there are no ways to pass options to it that way so you can't use --spoolfetch which makes it vastly useless. On the other hand, I was able to get the SSH support a bit more reliable without having to handle configuration files on the Gentoo side (so that it works for other distributions as well, I need that because I have a few CentOS servers at this point), including the ability to use this without requiring netcat on the other side of the SSH connection (using one old trick with OpenSSH). But this is not yet ready, it'll have to wait for a little longer.

Anyway as usual you can expect updates to the Munin page on the Gentoo Wiki when the new code is fully deployed. The big problem I'm having right now is making sure I don't screw up with the work's monitors while I'm playing with improving and fixing Munin itself.
 link

One of probably the biggest problems with maintaining software in Gentoo where a daemon is involved, is dealing with init scripts. And it's not really that much of a problem with just Gentoo, as almost every distribution or operating system has its own to handle init scripts. I guess this is one of the nice ideas behind systemd: having a single standard for daemons to start, stop and reload is definitely a positive goal.

Even if I'm not sure myself whether I want the whole init system to be collapsed into a single one for every single operating system out there, there at least is a chance that upstream developers will provide a standard command-line for daemons so that init scripts no longer have to write a hundred lines of pre-start setup code commands. Unfortunately I don't have much faith that this is going to change any time soon.

Anyway, leaving the daemons themselves alone, as that's a topic for a post of its own and I don care about writing it now. What remains is the init script itself. Now, while it seems quite a few people didn't know about this before, OpenRC has been supporting since almost ever a more declarative approach to init scripts by setting just a few variables, such as command, pidfile and similar, so that the script works, as long as the daemon follows the most generic approach. A whole documentation for this kind of scripts is present in the runscript man page and I won't bore you with the details of it here.

Beside the declaration of what to start, there are a few more issues that are now mostly handled to different degrees depending on the init script, rather than in a more comprehensive and seamless fashion. Unfortunately, I'm afraid that this is likely going to stay the same way for a long time, as I'm sure that some of my fellow developers won't care to implement the trickiest parts that can implemented, but at least i can try to give a few ideas of what I found out while spending time on said init scripts.

So the number one issue is of course the need to create the directories the daemon will use beforehand, if they are to be stored on temporary filesystems. What happens is that one of the first changes that came with the whole systemd movements was to create /run and use that to store pidfiles, locks and other runtime stateless files, mounting it as tmpfs at runtime. This was something I was very interested in to begin with because I was doing something similar before, on the router with a CF card (through an EIDE adapter) as harddisk, to avoid writing to it at runtime. Unfortunately, more than an year later, we still have lots of ebuilds out there that expects /var/run paths to be maintained from the merge to the start of the daemon. At least now there's enough consensus about it that I can easily open bugs for them instead of just ignore them.

For daemons that need /var/run it's relatively easy to deal with the missing path; while a few scripts do use mkdir, chown and chmod to handle the creation of the missing directories , there is a real neat helper to take care of it, checkpath — which is also documented in the aforementioned man page for runscript. But there has been many other places where the two directories are used, which are not initiated by an init script at all. One of these happens to be my dear Munin's cron script used by the Master — what to do then?

This has actually been among the biggest issues regarding the transition. It was the original reason why screen was changed to save its sockets in the users' home instead of the previous /var/run/screen path — with relatively bad results all over, including me deciding to just move to tmux. In Munin, I decided to solve the issue by installing a script in /etc/local.d so that on start the /var/run/munin directory would be created … but this is far from a decent standard way to handle things. Luckily, there actually is a way to solve this that has been standardised, to some extents — it's called tmpfiles.d and was also introduced by systemd. While OpenRC implements the same basics, because of the differences in the two init systems, not all of the features are implemented, in particular the automatic cleanup of the files on a running system - on the other hand, that feature is not fundamental for the needs of either Munin or screen.

There is an issue with the way these files should be installed, though. For most packages, the correct path to install to would be /usr/lib/tmpfiles.d, but the problem with this is that on a multilib system you'd end up easily with having both /usr/lib and /usr/lib64 as directories, causing Portage's symlink protection to kick in. I'd like to have a good solution to this, but honestly, right now I don't.

So we have the tools at our disposal, what remains to be done then? Well, there's still one issue: which path should we use? Should we keep /var/run to be compatible, or should we just decide that /run is a good idea and run with it? My guts say the latter at this point, but it means that we have to migrate quite a few things over time. I actually started now on porting my packages to use /run directly, starting from pcsc-lite (since I had to bump it to 1.8.8 yesterday anyway) — Munin will come with support for tmpfiles.d in 2.0.11 (unfortunately, it's unlikely I'll be able to add support for it upstream in that release, but in Gentoo it'll be). Some more of my daemons will be updated as I bump them, as I already spent quite a lot of time on those init scripts to hone them down on some more issues that I'll delineate in a moment.

For some, but not all!, of the daemons it's actually possible to decide the pidfile location on the command line — for those, the solution to handle the move to the new path is dead easy, as you just make sure to pass something equivalent to -p ${pidfile} in the script, and then change the pidfile variable, and done. Unfortunately that's not always an option, as the pidfile can be either hardcoded into the compiled program, or read from a configuration file (the latter is the case for Munin). In the first case, no big deal: you change the configuration of the package, or worse case you patch the software, and make it use the new path, update the init script and you're done… in the latter case though, we have trouble at hand.

If the location of the pidfile is to be found in a configuration file, even if you change the configuration file that gets installed, you can't count on the user actually updating the configuration file, which means your init script might get out of sync with the configuration file easily. Of course there's a way to work around this, and that is to actually get the pidfile path from the configuration file itself, which is what I do in the munin-node script. To do so, you need to see what the syntax of the configuration file is. In the case of Munin, the file is just a set of key-value pairs separated by whitespace, which means a simple awk call can give you the data you need. In some other cases, the configuration file syntax is so messed up, that getting the data out of it is impossible without writing a full-blown parser (which is not worth it). In that case you have to rely on the user to actually tell you where the pidfile is stored, and that's quite unreliable, but okay.

There is of course one thing now that needs to be said: what happens when the pidfile changes in the configuration between one start and the stop? If you're reading the pidfile out of a configuration file it is possible that the user, or the ebuild, changed it in between causing quite big headaches trying to restart the service. Unfortunately my users experienced this when I changed Munin's default from /var/run/munin/munin-node.pid to /var/run/munin-node.pid — the change was possible because the node itself runs as root, and then drops privileges when running the plugins, so there is no reason to wait for the subdirectory, and since most nodes will not have the master running, /var/run/munin wouldn't be useful there at all. As I said, though, it would cause the started node to use a pidfile path, and the init script another, failing to stop the service before starting it new.

Luckily, William corrected it, although it's still not out — the next OpenRC release will save some of the variables used at start time, allowing for this kind of problems to be nipped in the bud without having to add tons of workarounds in the init scripts. It will require some changes in the functions for graceful reloading, but that's in retrospective a minor detail.

There are a few more niceties that you could do with init scripts in Gentoo to make them more fool proof and more reliable, but I suppose this would cover the main points that we're hitting nowadays. I suppose for me it's just going to be time to list and review all the init scripts I maintain, which are quite a few.
 link

Okay here it comes another post about Munin for those who are using this awesome monitoring solution (okay I think I've been involved in upstream development more than I expected when Jeremy pointed me at it). While the main topic of this post is going to be IPv6 support, I'd like first to spend a few words for context of what's going on.

Munin in Gentoo has been slightly patched in the 2.0 series — most of the patches were sent upstream the moment when they were introduced, and most of them have been merged in for the following release. Some of them though, including the one bringing my FreeIPMI plugin to replace the OpenIPMI plugins, or at least the first version of it, and those dealing with changes that wouldn't have been kosher for other distributions (namely, Debian) at this point, were also not merged in the 2.0 branch upstream.

But now Steve opened a new branch for 2.0, which means that the development branch (Munin does not use the master branch, for a simple logistic reason of having a master/ directory in GIT I suppose) is directed toward the 2.1 series instead. This meant not only that I can finally push some of my recent plugin rewrites but also that I could make some more deep changes to it, including rewriting the seven asterisk plugins into a single one, and work hard on the HTTP-based plugins (for web servers and web services) so that they use a shared backend, like SNMP. This actually completely solved an issue that, in Gentoo, we solved only partially before — my ModSecurity ruleset blacklists the default libwww-perl user agent, so with the partial and complete fix, Munin advertises itself in the request; with the new code it includes also the plugin that is currently making the request so that it's possible to know which requests belongs to what).

Speaking of Asterisk, by the way, I have to thank Sysadminman for lending me a test server for working on said plugins — this not only got us the current new Asterisk plugin (7-in-1!) but also let me modify just a tad said seven plugins, so that instead of using Net::Telnet, I could just use IO::Socket::INET. This has been merged for 2.0, which in turn means that the next ebuild will have one less dependency, and one less USE flag — the asterisk flag for said ebuild only added the Net::Telnet dependency.

To the main topic — how did I get to IPv6 in Munin? Well, I was looking at which other plugins need to be converted to "modernity" – which to me means re-using as much code possible, collapse multiple plugins in one through multigraph, and support virtual-nodes – and I found the squid plugins. This was interesting to me because I actually have one squid instance running, on the tinderbox host to avoid direct connection to the network from the tinderboxes themselves. These plugins do not use libwww-perl like the other HTTP plugins, I suppose (but I can't be sure, for what I'm going to explain in a moment) because the cache://objects request that has to be done might or might not work with the noted library. Since as I said I have a squid instance, and these (multiple) plugins look exactly like the kind of target that I was looking for to rewrite, I started looking into them.

But once I started, I had a nasty surprise: my Squid instance only replies over IPv6, and that's intended (the tinderboxes are only assigned IPv6 addresses, which makes it easier for me to access them, and have no NAT to the outside as I want to make sure that all network access is filtered through said proxy). Unfortunately, by default, libwww-perl does not support accessing IPv6. And indeed, neither do most of the other plugins, including the Asterisk I just rewrote, since they use IO::Socket::INET (instead of IO::Socket::INET6). A quick searching around, and this article turned up — although then this also turned up that relates to IPv6 support in Perl core itself.

Unfortunately, even with the core itself supporting IPv6, libwww-perl seems to be of different ideas, and that is a showstopper for me I'm afraid. At least, I need to find a way to get libwww-perl to play nicely if I want to use it over IPv6 (yes I'm going to work this around for the moment and just write the new squid plugins against the IPv4). On the other hand, using IO::Socket::IP would probably solve the issue for the remaining parts of the node and that will for sure at least give us some better support. Even better, it might be possible to abstract and have a Munin::Plugin::Socket that will fall-back to whatever we need. As it is, right now it's a big question mark of what we can do there.

So what can be said about the current status of IPv6 support in Munin? Well, the Node uses Net::Server, and that in turn is not using IO::Socket::IP, but rather IO::Socket::INET or INET6 if installed — that basically means that the node itself will support IPv6 as long as INET6 is installed, and would call for using it as well, instead of using IO::Socket::IP — but the latter is the future and, for most people, will be part of the system anyway… The async support, in 2.0, will always use IPv4 to connect to the local node. This is not much of a problem, as Steve is working on merging the node and the async daemon in a single entity, which makes the most sense. Basically it means that in 2.1, all nodes will be spooled, instead of what we have right now.

The master, of course, also uses IPv6 — via IO::Socket::INET6 – yet another nail in the coffin of IO::Socket::IP? Maybe. – this covers all the communication between the two main components of Munin, and could be enough to declare it fully IPv6 compatible — and that's what 2.0 is saying. But alas, this is not the case yet. On an interesting note, the fact that right now Munin supports arbitrary commands as transports, as long as they provide an I/O interface to the socket, make the fact that it supports IPv6 quite moot. Not only you just need an IPv6-capable SSH to handle it, but you can probably use SCTP instead of TCP simply by using a hacked up netcat! I'm not sure if monitoring would get any improvement of using SCTP, although I guess it might overcome some of the overhead related to establishing the connection, but.. well it's a different story.

Of course, Munin's own framework is only half of what has to support IPv6 for it to be properly supported; the heart of Munin is the plugins, which means that if they don't support IPv6, we're dead in the water. Perl plugins, as noted above, have quite a few issues with finding the right combination of modules for supporting IPv6. Bash plugins, and indeed any other language that could be used, would support IPv6 as good as the underlying tools — indeed, even though libwww-perl does not work with IPv6, plugins written with wget would work out of the box, on an IPv6-capable wget… but of course, the gains we have by using Perl are major enough that you don't want to go that route.

All in all, I think what's going to happen is that as soon as I'm done with the weekend's work (which is quite a bit since the Friday was filled with a couple of server failures, and me finding out that one of my backups was not working as intended) I'll prepare a branch and see how much of IO::Socket::IP we can leverage, and whether wrapping around that would help us with the new plugins. So we'll see where this is going to lead us, maybe 2.1 will really be 100% IPv6 compatible…
 link
[2014-08-07] Accepted 1.4.5-3+deb6u1 in squeeze-lts (low) (Holger Levsen) link
[2014-07-30] Accepted 2.1.9-1 in experimental (medium) (Stig Sandbeck Mathisen) link
[2014-05-17] munin 2.0.21-2 MIGRATED to testing (Britney) link
[2014-05-11] Accepted 2.0.21-2 in unstable (medium) (Stig Sandbeck Mathisen) link
[2014-05-10] Accepted 2.0.21-1 in unstable (low) (Stig Sandbeck Mathisen) link
[2014-05-01] Accepted 22.214.171.124-1 in experimental (medium) (Stig Sandbeck Mathisen) link

Using btrfs on a networked backup server looked like a good idea, what with the
data integrity checksumming and all.

Reformatting it to ext4 gave a decent increase in write performance, and will
hopefully give fewer server crashes per week (from "many" to "none" is the goal)
Just before this wipe-and-reinstall, "umount" had been hanging for a few hours,
and the admin got a tad annoyed.
... read more
[2014-02-16] Accepted 2.1.5-1 in experimental (medium) (Holger Levsen) link
[2014-01-31] munin 2.0.19-3 MIGRATED to testing (Britney) link


text:
Should your preferred language not be available, contents will be displayed in English.
With specific applications aiming at managing your control room, video wall and operations, Barco offers a complete portfolio of reliable, powerful and user-friendly applications.
Control room management suite
TransForm C
Collaboration and composition engine
XDS Control Center
Windows-based multi-windowing software suite
3059 Premiere ParkwayDuluth, GA 30097United States
3078 Prospect Park DriveRancho Cordova, CA 95670United States
600 Bellbrook Avenue Xenia, OH 45385United States
26 Nov 2014
Barco show time in London!
30 Nov 2014 - 05 Dec 2014301 S Dr Martin Luther King Jr Drive - USA

subset: commoncrawl


text:
Video - Josh Peck Talks Intense Training And Gun Injuries In Interview Promoting 'Red Dawn'
Josh Peck Talks Intense Training And Gun Injuries In Interview Promoting 'Red Dawn'
When 22.11.2012
Former 'Drake & Josh' star Josh Peck discusses his upcoming action movie 'Red Dawn' - a remake of the 1984 film - in an interview in Los Angeles. He talks about the intense physical training he was put through and the dangers of working with real firearms.
When asked about his training he reveals that he had six weeks training with Navy SEALs and a week of Marine boot camp. 'We would do these scenarios where there was 9 of us versus three marines and it might as well have been 30 of us 'cause it didn't matter', he said. 'I also had a week of football training so I'm as butch in this movie as I'm ever gonna be.' He also mentions how the use authentic weapons posed various dangers on set. "They're real firearms and you're shooting this blank, the only thing that's missing is the bullet. if you were to mess around and use it too close it could really be quite lethal", he explains and says that he himself got an injury while shooting (pardon the pun): 'I got two stitches in my head from having one of the guns hit a seat and then butt me in the head.'


text:
On the 10th November we held the penultimate event in our series of ten 'Conversations on Forgiveness' at St Ethelburga's Centre for Reconciliation and Peace – How can Words help heal pain? Exploring how the written and spoken word can help the recovery process were Mr Gee, the acclaimed London poet and musician, and Marian Partington, whose… more
BLOG: Storytelling – The Most Human of Arts
It has been said that the most difficult time comes after a revolution — a sentiment born out in the tough reality of post-apartheid South Africa. At a conference in Bloemfontein that set out to examine issues of freedom, responsibility and reconciliation, a young black South African man posed a difficult question. "I was born… more
NEWS: The potential of empathy…
For our eighth Conversation on Forgiveness, Does knowing someone's story make it harder to hate them?, Jo Berry and Pat Magee came together to discuss their experiences of building a relationship. Almost thirty years ago to the day, Jo's father was killed when the IRA bombed the Grand Hotel Brighton and Pat was the IRA activist… more
NEWS: Launch of the Flame of Forgiveness Fortnight
The Forgiveness Project was delighted to contribute to the Flame of Forgiveness Fortnight which launched at Marlborough Court care home in Thamesmead on 6th October 2014. Flame of Forgiveness Fortnight is a new initiative between care homes and schools to commemorate the centenary of World War 1 and our role was to provide materials for… more
NEWS: The power of forgiveness and the necessity of choice
On 17th September we held the seventh in our series of ten Conversations on Forgiveness at St Ethelburga's Centre for Reconciliation and Peace. The topic for discussion was 'Can you move on without forgiveness?'. On the panel were Camilla Carr, who was held hostage by Chechnyan rebels for 14 months in 1997, and Richard Wilson,… more
NEWS: Flame of Forgiveness Fortnight: 6 – 19 October 2014
To commemorate the centenary of the outbreak of World War I, The Forgiveness Project is honoured to be part of the Flame of Forgiveness project, working with Teresa Pearce, MP for Erith and Thamesmead, Care England and Four Seasons Health Care. This intergenerational project aims to build links between care homes, local schools and the… more
EVENT: Can you move on without forgiveness? – 15 September 2014
On the panel discussing whether forgiveness is the only route to healing after a traumatic event will be Camilla Carr, who was held hostage by Chechnyan rebels for 14 months in 1997, and Richard Wilson, whose sister was murdered in Burundi by a group who have never admitted responsibility and who continue to kill civilians… more
NEWS: Is the most effective punishment of all remorse?
The sixth in the series of The Forgiveness Project's 'Conversations on Forgiveness' took place on 18 August at St Ethelburga's Centre for Peace and Reconciliation. The speakers were exploring the difficult question, 'What's the point of punishment if society won't forgive?'. We heard from Shad Ali, whose family struggled to understand how he could forgive… more
EVENT: Performance and participatory workshop at WOMAD festival – 26 July 2014, 11am
For nine months Visible Thinking has been working in partnership with The Forgiveness Project and the Colston Hall youth ensemble looking at forgiveness and conflict as a musical conversation. As part of this work, Visible Thinking will be conducting a performance and participatory workshop at WOMAD festival this Saturday from 11.0-0-12.00am in the workshop tent.… more
NEWS: Forgiveness as the ultimate revenge?
For The Forgiveness Project's 5th Forgiveness Conversation held at St Ethelburga's Centre for Reconciliation and Peace in London on Monday 14 June, the subject that the panel and audience grappled with was 'Can Revenge ever Work?'. This was the first ever public speaking event for Natalia Aggiano whose mother was murdered by her father in… more


text:
a bad ass group of bro's that met in highschool.
the bro dudes just beat the shit out of those friggit OC bros
by bobbyy334422 March 06, 2008
10 Words Trending Now
Alphabetical List
Type your email address below to get our free Urban Word of the Day every morning!
Emails are sent from firstname.lastname@example.com. We'll never spam you.×


text:
- A program at Cummins Area School has focussed on increasing positive role models as a way to improve academic performance and community contribution of male students. ...Friday 12 September 2014
- The Cummins Area School year 10 agriculture students have some new classmates and they are big and sometimes smelly. ...Wednesday 21 May 2014
- Residents from Koppio on the Eyre Peninsula have shown state and federal politicians around the region, to express their concern about potential mining in the area....Monday 28 April 2014
- Farmers on the Lower Eyre Peninsula have met to encourage more farmers to learn more about the Harvesting Code of Practice. ...Thursday 14 November 2013
- It's hoped rain on South Australia's Lower Eyre Peninsula in the past two days will have only a minor impact on grain farmers, but further rain could cause more significant problems....Tuesday 22 October 2013
- A South Australian country show has celebrated its 100th birthday with great weather and a huge crowd. ...Tuesday 8 October 2013
- A Roxby Downs kindergarten teacher has been named the SA School and Preschool leader of the year at the 2013 South Australian Public Teaching Awards....Monday 7 October 2013
- Eyre Peninsula's Yallunda Flat is today celebrating a milestone with the staging of the town's 100th show....Monday 7 October 2013
- The Great Flinders netball season wrapped up with the grand final in Cummins on the weekend. ...Monday 16 September 2013
- The Great Flinders Netball Association held its preliminary finals at Cummins, to decide who would move onto the grand final next week. ...Monday 9 September 2013
- What would you do if your alarm went off at 2.30am? Most people would probably turn it off, roll over and go back to sleep, but Michael Agnew can't. ...Thursday 2 May 2013
- A hectic day in the shearing sheds for a roustabout...Wednesday 28 November 2012
- A letter was written in September 1940 about Great Flinders football, where a team had too many on the ground - find out which team and who performed well in that game nearly 70 years back, as well as what's happening in footy today....Friday 4 June 2010
- Ramblers completely outclassed Eyre United in a one-sided contest at Ungarra on Saturday, finishing the game with a comprehensive 164 point victory....Monday 31 May 2010
- Mid West team the Streaky Bay Hawks had their score wiped clean at three quarter time last weekend against Central Eyre - but did they get the points back when they appealed to the SANFL CFL? And who is in and out of the team you support in Great Flinders? Find out. ...Friday 28 May 2010
Latest Cummins 5631 stories on ABC Online
- 13°/25°
- Friday
- 15°/30°
- Saturday
- 16°/25°
- Sunday


text:
Machinedrum talks about his Vapor City project released on Ninja Tune, and we play the latest from LA-based Hanni El Khatib, hip-hop genius Madlib, soul singer Coultrain, SF's Deerhoof, Deers from Madrid, and Ghostly's Michna. Nostalgia 77 and Marc Cary drop jazz, and we air new Osunlade and Busdriver.
In Cologne, Germany, Melting Pot Music and friends have built a vision of hip-hop and electronic music with an ear for the classics, an eye to the future, and a penchant for the good times.
NYC producer Blockhead steps out with a self-released, soundtrack-worthy, sixth album of exotic instrumentals.
Detroit 4-piece psych rockers mix guitar-heavy surf flavors into their throbbing, hazy, smoke-filled club sound.
High fantasy meets edgy electronics as Druid Cloak releases the first in a trilogy of records based on a fictional world.
Designer, Illustrator, music maker, and a friend.view full profile
Seriously, this EP is beautiful.
I thought I over hyped myself for this, but it turned out it was everything I wanted, and more. Truly a beautiful album. Incredibly layered production and awesome flow.
This album has got so many different sounds on it, a gem for sure.
is all about the groove.view full profile
Very "bluesy" folk music. Hunter's voice grinds and growls just enough to enhance the whole feel and experience. Can't wait for some more music by this artist.
I just love that punk / ska / blues rock thing going on here! Amazing use of the horns and saxes.
Can't help but compare this with Wild Belle, but that's a good thing. It also reminds me of The Peach Kings, which is also a good thing.


text:
Town Square
Catching fire
Original post made on Jun 1, 2012
Read the full story here Web Link posted Friday, June 1, 2012, 12:00 AM
Comments (1)
a resident of Amador Valley High School
on Jun 1, 2012 at 12:23 pm
It's great to see that Amador has finally got some good coaching. I played softball for them,as well as the Phantom for many years, and Amador softball was a joke back then. Not to mention, a horrible experience. Its great to see Amador students finally getting what they deserve.
Don't miss out on the discussion!
Sign up to be notified of new comments on this topic.
Hayward NAACP officials threaten blog posters
By Tim Hunt | 21 comments | 1,871 views
Not so speedy trial
By Roz Rogoff | 4 comments | 1,300 views
By Tom Cushing | 4 comments | 408 views


text:
Firelight® Signature All Purpose Glass by Lenox
Whether you are serving water with a slice of lemon or a festive punch, the Firelight® Signature All Purpose Glass, creates a grand presentation. Exquisite cuts encircle the base of the bowl, enhancing the beauty of the fine crystal. Use this glass with any Lenox dinnerware or flatware pattern.
- Crafted of Lenox fine lead crystal
- Height: 9"
- Capacity: 14 oz.
$48.00 $32.95
Other products we think you'll love.
Shopping made easy with Lenox EasyPay. Order today and take up to 8 months to pay - interest free!Learn About EasyPay
Break something?
Lenox Breakage Replacement is one of the best customer satisfaction plans anywhere. So don't worry, you're covered. read more
Need Help?
*To qualify for the $10 off Coupon, you must make a purchase from Lenox.com today. The $10 off Coupon will be emailed to you within the next 7 days.


text:
|$15.00 - $245.12 & FREE Returns on some sizes and colors. Details
|Lower price available on select options
Whether the exciting new Star Trek movie has made you a fan or you've been watching Classic Star Trek, Next Generation, Voyager, DS9, or Enterprise for years - you'll want to beam up to your next costume party in this officially licensed Star Trek costume! Shirt has long sleeves and an embroidered Star Fleet emblem. Rubies Costume Company has been offering the world's finest collection of Halloween products for 58 years.
Hop on board the USS Enterprise and join the crew for some exciting adventures in space. The Star Trek Classic Gold Shirt Deluxe Halloween Costume includes a yellow long sleeve shirt that features the star fleet emblem and three gold bands on the cuff of the sleeves.
XL was too small. ordered the one with little star trek insignias woven into the shirt, was more expensive but it fit ted perfect.Published 8 days ago by tom
I got the large, which seems to be Italian large. Which is medium..so, get XL if you think you are Large..
It looks nice however..BUT.. Read more
my wife wore this shirt for a game night. she said its material was sort of itchy.Published 18 days ago by dslamcracker
This shirt is everything it ought to be, not too cheap. It fit my boyfriend well and looked good on him. I have not washed it yet so I don't know how well it will survive that.Published 21 days ago by Alexandra M. Schweitzer
An extra large is far too big and a large is too tight. I need to loose weight to fit comfortably in this shirt, incentive is here. Read morePublished 22 days ago by mmmmpph
Clothing, Shoes & Jewelry > Novelty, Costumes & More > Costumes & Accessories > Costumes > Men


text:
OWENSBORO, Ky. (2/28/14) – For the ninth year, regional college-bound students who received a cancer diagnosis prior to the age of 21 may be eligible for one of two $1,000 scholarships to be awarded by the Owensboro Health Foundation.
As part of the capital campaign for the Mitchell Memorial Cancer Center, the Touched by Cancer College Scholarship Fund was established by memorial contributions from friends and loved ones of the late Dr. Leslie M. Riherd, Jr., who practiced as an orthopedist at OMHS for many years.
Scholarships will be awarded for the 2014-2015 academic calendar year.
Applicants must be:
- 25 years old or younger
- Accepted to an accredited institution of higher learning for study in the coming year
- Have received a cancer diagnosis before the age of 21
- Residents of Breckinridge, Daviess, Hancock, Henderson, Hopkins, McLean, Muhlenberg, Webster, Ohio, counties in Kentucky, or Perry and Spencer counties in Indiana
Deadline is Mar. 21.If you have questions about the application process, please contact Cathie Medley of the Owensboro Health Foundation at (270) 688-2260.
SurfKY News
Information provided by Erica Wade
© Copyright 2014 SurfKY News Group, Inc. All rights reserved. This material may not be published, broadcast, or rewritten without permission. SurfKY News encourages you to share this story by using one of the social media links below.
|< Prev
|Next >
In Other News...
Muhlenberg Job Corps Recognizes Employee of the Month
MUHLENBERG COUNTY, Ky. (11/25/14) — The Muhlenberg Job Corps Center would like to recognize Brian Haire, Heavy… Read More
Greene Leaf Boutique Offers Style for Less
CENTRAL CITY, Ky. (11/26/14) ― Greene Leaf Boutique is a boutique for ladies and specializing in providing modern but… Read More


text:
Video ›››
- Dobbs: Chavez's "little love affair with his fellow socialist Barack Obama didn't last long" 03.24.2009
- Limbaugh refers to "Barack Ogabe," drawing comparison between Obama and Robert Mugabe 03.24.2009
- Bruce: "[I]t's hysterical" that she's "getting emails of people upset of me calling the Obamas trash" 03.24.2009
- Limbaugh says ACORN "got three and a half billion dollars from the stimulus bill" 03.24.2009
- MacCallum on Rep. Bachmann's claim that Obama proposals are a "lurch toward socialism": "I think you're absolutely right about that" 03.24.2009
- Limbaugh on Obama administration: "They are focused on the destruction of the private sector. This is an all-out assault on capitalism" 03.24.2009
- Limbaugh on Obama: "He's a bad guy. He's one angry guy. His wife is angry as well." 03.24.2009


text:
Thousands of people came to our event and were able to enjoy over fifty businesses who were trading outside on Park Street and College Green Road. We also featured an entertainment stage with acts performing from all areas, from music to comedy who came from not only Bristol but from across the UK!
Why did we do this? In recent years, Park Street has been no longer seen as an destination point, affecting the trade for local independent and national businesses. A group volunteers made up of local traders and professionals came together with the intent to produce a high profile event for all of the community to attend and to help build Park Street's identity again – and that's exactly what we did!
@mead_dm @LoveWilko @RetailProject Wilkos is taking good care of the #BristolCommunityTree, Come and add your tag! Thank you for tweeting!1 week ago
RT @mead_dm : @LoveWilko @ParkStreetEvent @RetailProject #cliftonbristol store first with the #communitychristmastree http://t.co/pOU4sYT0jF1 week ago
@nadia_abdulla speaking about @ParkStreetEvent at the @BrisParkStreet Traders Forum @DestBristol @stgeorgesbris http://t.co/hmC6hRb8RW1 week ago
#BristolCommunityTree is located in Wilkinson's on Queens Road @LoveWilko Decorate the tree! @BrisParkStreet http://t.co/jKGUbUpdxz1 week ago
RT @QS_BurroughsDay : @BrisParkStreet @BrisPROSPECTUS QSBD at @ParkStreetEvent Xmas lights switch on @Qual_Solicitors http://t.co/tR6oth4vzj1 week ago
"A Park on Park Street" & "Let The Bells Ring Out For Christmas' are events arranged by Park Street Events. Park Street Events is a pre-registered charitable organisation within the United Kingdom. All rights reserved. All materials present on this website are property of Park Street Events unless specified otherwise. Gallery photography by Tom Glendinning Photography.
Website design by Parcus Media 2012-2014.


text:
"Computers are too hard to use, they require us to waste our brains learning too many things that aren't REAL knowledge, they're just stupid computer conventions."
A huge congratulations to everyone involved! For those curious few out there this site is Django powered, and although I haven't been actively involved in the community or developing with it for all that long, I have to say it's easily my favorite way to build websites. The freedom and control it provides to get my designs realized quickly hasn't been possible with anything else I've used. With Django I've always felt I've been doing things "the right way" and to see it at 1.0 is just one more reason to check it out if you haven't already.
Can't wait for this. I'm a radio addict and can't get enough NPR. I'll definitely be taking a close look at this API when it gets released. Excited to see what "widgets" they'll be releasing as well.
Looks like a great way to start hosting something for free just to see where it goes.
Everything here looks great and I can't wait to see what new applications start coming out. The only problem? It's not coming out until June.
"I was born a programmer. The rest is just implementation detail." Worth the long read.
Documentation on the "Rubilicious" del.icio.us api wrapper.
Looks like a great script and totally sidesteps the need for Headress
Learn Ruby with cartoon foxes
Safari Guide is a free application for Mac OS X Tiger that allows developers to evaluate arbitrary XPath, XQuery, XSLT, and JavaScript expressions against the current frontmost Safari webpage.
xhtml 1.0 strict form that renders correct accross multiple browsers
A handy list of things you can do with .htaccess
REST api for last.fm info like recently played tracks, related artists, friends & neighbors stats and more.


text:
The former VP predicts a "mass casualty attack" worse than 9/11 -- and shamelessly defends torture VIDEOMonday, Oct 13, 2014 7:30 PM UTC 0
The former VP predicts a "mass casualty attack" worse than 9/11 -- and shamelessly defends torture VIDEOMonday, Oct 13, 2014 7:30 PM UTC 0
Kristol is outraged that Obama has done "nothing" against ISIS (except airstrikes and aid to Iraqi forces)Thursday, Aug 21, 2014 4:36 PM UTC 0
While media fawns over his "new" persona, he's still the same grotesque person from '12. But now he wears glasses!Monday, Jul 21, 2014 11:44 AM UTC 0
Conservatives and the media tie the Clintons to an imagined book-leaking scheme. It's too soon to be this stupidTuesday, Jul 15, 2014 6:53 PM UTC 0
Each week brings new data showing the law is working. Here's what you do about that if you work in right-wing mediaThursday, May 8, 2014 4:21 PM UTC 0
Candidates like Scott Brown thought they'd win by attacking health reform. Looks like it's time to recalibrate fast VIDEOThursday, May 1, 2014 11:43 AM UTC 0
The influential neoconservative and GOP advisor doesn't see why an NBA owner's being super-racist is so important VIDEOMonday, Apr 28, 2014 2:12 PM UTC 0
The leading neoconservative says war-weariness is "an excuse to avoid... shouldering our responsibilities"Tuesday, Mar 18, 2014 8:10 PM UTC 0
The editor of the neoconservative the Weekly Standard is the odd-man-out on "This Week" VIDEOSunday, Mar 16, 2014 7:33 PM UTC 0
Back when Putin was in the news for oppressing LGBT people, many conservatives said he had his virtuesMonday, Mar 3, 2014 4:30 PM UTC 0
The neoconservative pundit urges Republicans to keep the government shut downTuesday, Oct 1, 2013 5:17 PM UTC 0
According to conservative media, a government shutdown is either a non-issue... or an unalloyed positiveTuesday, Oct 1, 2013 1:16 PM UTC 0
While they blame the liberal media for ignoring the story, conservatives have mostly missed it themselvesFriday, Apr 12, 2013 8:15 PM UTC 0
The Weekly Standard's Jay Cost calls on the GOP to nominate someone its base will really love -- like Richard NixonFriday, Nov 9, 2012 4:58 PM UTC 0
Destroying the humanities -- and the notion of informed citizenship -- is part of the conservative agendaFriday, Sep 14, 2012 11:08 PM UTC 0


text:
start up basics 10 things you must know to build a successful business pdf
Size: 944 KB
Pages: n/a
Date: 2013-07-25
|Recommend this on Google
Related Documents
Size: 1.2 MB
Pages: n/a
Date: 2013-07-24
Size: 3.6 MB
Pages: n/a
Date: 2011-12-25
planet-51.wikispaces.com/.../30 things you must know about me.pptx
Size: 6.4 MB
Pages: n/a
Date: 2014-06-08
! !!!!! 10 Things You Must Know Before You Choose A Specialist R epairer Company.
Size: 3.9 MB
Pages: n/a
Date: 2013-03-10
clevelandcc.edu/.../financial aidthings you must know_web.pdf
Size: 2.7 MB
Pages: 21
Date: 2013-02-02
Size: 9.3 MB
Pages: 20
Date: 2012-08-13
A Professional Corporation.
Size: 2.4 MB
Pages: n/a
Date: 2012-01-08
planet-51.wikispaces.com/.../30 things you must know../.../30 things you must know about me.pptx
Size: 9.3 MB
Pages: 20
Date: 2013-03-13
A Professional Corporation.
millarslaw.com/.../10-things-to-know-when-speaking-to-the-police-rev2.pdf +1 alternative download link
Size: 2.9 MB
Pages: n/a
Date: 2014-03-23
Size: 1.9 MB
Pages: n/a
Date: 2011-12-29
Size: 1.8 MB
Pages: 13
Date: 2013-10-04
Size: 2.2 MB
Pages: n/a
Date: 2013-08-18
You might love writing. You might hate it. It doesnÕt matter! Either way, if you want to run an online business, you MUST learn the basics of writing.
s3.amazonaws.com/rbcfree/8 things you must know.pdf
Size: 2.1 MB
Pages: n/a
Date: 2011-12-31
planet-51.wikispaces.com/.../30 things you must know about me!!!!!!!!!.pptx
Size: 3 MB
Pages: n/a
Date: 2012-11-05
pits-bi-real-time.googlecode.com/.../30 things you need to know about business intelligence software.pdf
Size: 8.4 MB
Pages: 75
Date: 2011-11-28


text:
"Not the best book for those new to Buddhism"
Although I found this book provided me with a greater understanding of Buddhism and some valuable insights, the majority of the text was overly theoretical and complex for a beginner such as myself. It may mean more to someone more advanced in their understanding of the concepts discussed.
"Excellent Introduction to Buddhism"
Lama Surya Das provides a very accessible introduction to Buddhism, entertaining us with personal anecdotes along the way. His voice is very relaxing. After finishing the book, I was ready for more detail and more practical advice on daily practice.
Report Inappropriate Content
If you find this review inappropriate and think it should be removed from our site, let us know. This report will be reviewed by Audible and we will take appropriate action.


text: Rose & Violet Cremes by The Chocolate Shop £13.50$25.75€17.77$22.60 In stock £2.75$5.24€3.62$4.60 mainland UK delivery - Order now and receive this item on or before Monday 1 December £2.75$5.24€3.62$4.60 mainland UK deliveryEstimated delivery: 2-3 days International delivery available rose or violetrose or violet (required)BothJust VioletJust Roserose or violet (required)BothJust VioletJust Roserose or violet (required)BothJust VioletJust Roserose or violet (required)BothJust VioletJust Rose size boxsize box (required)12 chocolates24 chocolates (+ £12.50)size box (required)12 chocolates24 chocolates (+ $23.84)size box (required)12 chocolates24 chocolates (+ €16.45)size box (required)12 chocolates24 chocolates (+ $20.92) quantity by The Chocolate Shop Location: Merseyside, GB read seller's profile see seller's complete range more items from this seller Chocolate Dinosaurs Wedding And Party Favours £0.95$1.81€1.25$1.59 Chocolate Dinosaur Hamper £12.95$24.70€17.05$21.68 Handmade Chocolates £10.95$20.89€14.41$18.33 Hamper Box Of Sweets £16.95$32.33€22.31$28.37 Chocolate Zoo Hamper £14.95$28.52€19.68$25.03 Dark Chocolate Ginger £13.50$25.75€17.77$22.60 view all you may also like PRODUCT DETAILS CUSTOMER REVIEWS DELIVERY RETURNS Made in Britain ask seller a question In our wonderful Chocolate Shop, we have a selection of gorgeous chocolates, this is one of our top selling products, Rose and Violet Cremes. With soft fondant centres, scented with natural essence of rose & violet then smothered in top quality dark chocolate, these are delicious. The recipe dates back to the early 1900's and still taste as good. The box holds 12 (or a optional 24) chocolates, please choose if you would like a mixture of flavours, or if you would prefer just to have rose or violet. We gift wrap every item free of charge. made from: Top quality dark chocolate and rose and violet essence. dimensions: Box holds 12 product code: 216632 2 customer reviews Fri 20 Dec 2013 No comment supplied. Fri 07 Jun 2013 Chocolates were delicious and I would buy them again to gift. read about our product rating system ratings guide trusted independent customer feedbackforum excellent bad good poor This product is dispatched to you by The Chocolate Shop. MAINLAND UK order now and receive this item on or before price Standard Delivery Monday 1 December £2.75$5.24€3.62$4.60 NON-MAINLAND UK estimated delivery price Highlands & Islands of Scotland 2-5 daysfrom dispatch £2.75$5.24€3.62$4.60 Northern Ireland 2-5 daysfrom dispatch £2.75$5.24€3.62$4.60 Other UK Islands 2-5 daysfrom dispatch £4.95$9.44€6.51$8.28 INTERNATIONAL DELIVERY estimated delivery price Western Europe 2-5 daysfrom dispatch £9.95$18.98€13.10$16.65 Rest of Europe 5-10 daysfrom dispatch £9.95$18.98€13.10$16.65 USA & Canada 5-10 daysfrom dispatch £17.95$34.24€23.63$30.05 Far East & Australasia 5-10 daysfrom dispatch £17.95$34.24€23.63$30.05 Rest of the world 5-14 daysfrom dispatch £17.95$34.24€23.63$30.05 You have 28 days, from receipt of cancellable goods, to notify the seller if you wish to cancel your order or exchange an item. Please note: goods that are personalised, bespoke or made-to-order to your specific requirements, perishable products and personal items sold with a hygiene seal (cosmetics, underwear) in instances where the seal is broken are non-refundable, unless faulty. Read more about our returns policy.Should you choose to return or exchange your order you will need to deliver the item(s) to the UK, where this seller is based. The Chocolate Shop's return policy


text:
"What a car you have given me" – Rosberg
Tag Archive: Alan Jones
Mar 16
Mercedes wins but Red Bull crisis ending
Mar 12
Marko relationship will ensure equality – Ricciardo
Sep 03
'No rush' to name Ricciardo's successor – Tost
Jun 25
The Williams F1 Team is celebrating a landmark achievement this weekend at the British Grand Prix – reaching 600 races in Formula One.
May 31
Grosjean is 'an idiot' – Ricciardo
May 10
Vettel expects steward Jones to be fair in Spain
Feb 11
F1 comeback 'difficult' for Kobayashi – journalist
The world of F1 is "obviously" moving on without Kamui Kobayashi, according to experienced Japanese journalist Kunio Shibata.
Kobayashi, who according to 1980 world champion Alan Jones was Japan's best ever F1 driver, lost his Sauber race seat for 2013. "Kimi is unseen by the public, and not in the newspapers," Shibata, who writes for GPX magazine, said.
Dec 18
Kobayashi aims for F1 return in 2014
Jul 10
Red Bull is planning to settle the matter of its 2013 driver lineup "in August", team consultant Dr Helmut Marko has revealed.
May 29
Webber, Vettel at centre of Ferrari rumours
Australia's last world champion Alan Jones has urged Mark Webber to join Ferrari.
After the Red Bull driver won his second Monaco grand prix last weekend, his team boss Christian Horner moved to play down the 35-year-old's rumoured 2013 switch to Maranello based Ferrari. "Why would he want to leave?" Horner is quoted by the Sun.
Mar 08
Red Bull to discuss Webber future in summer
Feb 28
Top team or nothing for 2013 warns Webber
Mark Webber has warned he will quit formula one if he cannot find a top seat for 2013.
The 35-year-old Australian is the only prominent member of the leading Red Bull team who does not currently have a contract beyond this season. It is rumoured Dr Helmut Marko wants to replace him for 2013 with either Daniel Ricciardo or Jean-Eric Vergne, triggering rumours Webber could be a potential replacement for Felipe Massa at Ferrari.
Feb 28
New Schumacher contract 'absolutely possible' – Zetsche
Dieter Zetsche has admitted it is possible Michael Schumacher will still be a Mercedes driver in 2013.
At the end of his initial three-year F1 comeback contract, the 43-year-old's existing deal runs out this season. There has been speculation Mercedes has offered him a new two-year contract for 2013 and 2014.
Feb 21
2012 cars 'not ugly' insists Alan Jones
Amid all the 'ugly' talk, Alan Jones doesn't mind the look of F1's field of 2012.
With McLaren the notable exception, every team has incorporated an awkward 'step' into its nose design as the optimum solution to new FIA rules. Paul Hembery, Pirelli's motor sport director, recently decried the look as "pig ugly".
Feb 21
Dumping Trulli 'a no-brainer' – Jones
Feb 08
First title winner Jones not writing off Williams
Australian Jones, now 65, in 1980 won the once-great team's first of seven drivers' titles.
Alan Jones is not ruling out a Williams resurgence in 2012, despite his former championship-winning team slumping to its worst-ever result last season. Williams has also won nine constructors' championships, but not since 1997. Juan Pablo Montoya won the team's most recent victory, in 2004.
Feb 08
New destinations not harming F1 – Jones
That is the view of 1980 world champion Alan Jones.
Bernie Ecclestone is not harming formula one with his planned expansion to even more new venues. F1 chief executive Ecclestone, who has already arranged two forthcoming US races and also an event in Russia, has said in recent interviews that he hopes his sport's next destinations are Africa and Mexico.
Jan 25
Rivals cannot write off Schumacher – Glock
It is a mistake to write off Michael Schumacher.
That is the claim of the seven time world champion's countryman Timo Glock, who drives for the back-of-the-grid Marussia team. 43-year-old Schumacher, meanwhile, is looking ahead to the third and final season of his comeback contract, having so far failed to score a single podium with the Mercedes team.
Jul 04
Williams Renault legendary partnership revived for 2012
Renault Sport F1 and Williams F1 are delighted to announce a long-term chassis-engine partnership.
+Q&A with Adam Parr Chariman, Williams F1
+Williams switches to Renault power for 2012
Renault Sport F1, the F1 division of Renault, will supply AT&T Williams with its championship-winning V8 power units for the 2012 and 2013 seasons. In addition to the supply of its Formula One engines, the newly-formed alliance includes several other exciting business and marketing opportunities, with a view to continuing after the introduction of the new, energy efficient, turbocharged V6 engines arrive in the sport in 2014.
Oct 07
Sun out at Suzuka but rain clouds loom
Forecast for Sunday is also not good.
The sun is out at Suzuka on Thursday, but local reports are still predicting a chance of rain for the Japanese grand prix weekend. The talk in the paddock is a close to 100 per cent chance of rain on Saturday, while Sauber's Nick Heidfeld said the forecast for Sunday is also not good.
Oct 07
Koreans begin to lay top asphalt on Thursday
Alan Jones to be F1 steward in Korea
Work began on Thursday to lay the final top layer of asphalt at Korea's new Yeongam circuit. The race organisers only have three days to complete the job before the FIA's Charlie Whiting begins a two-day inspection on Monday. "Work on the final surface layer will probably be done by Friday," confirmed spokesman Kim Jae-ho.
May 17
Red Bull admits 'desire' to keep Webber
Williams admits losing Webber 'a mistake'
Red Bull would like to keep Mark Webber on board for the 2011 season. After the Australian driver commandingly won the past two grands prix from pole position and took the lead of the world championship, it is being reported that Red Bull would like to extend his expiring contract.
Mar 10
Historic GP Series at the Grand Prix of Canada
Mar 26
Aus GP's champions snub 'pathetic' – Jones
Jan 08
Sticky: Villeneuve in talks for Supercar seat
Nov 11


text:
HR Associate
Drawing upon the extensive regional and functional expertise of Eurasia Group's analysts, the Government Services group delivers innovative products and mission-focused analysis to agencies operating in today's dynamic and unpredictable geopolitical landscape. From ...
Nov 26 -
Birmingham - IT & software
Event Specialist Part Time
Summary Are you self-motivated, outgoing and friendly? Advantage Sales and Marketing wants people like you to be an Event Specialists in one of our clients' retail locations. What does an Event Specialist do? They generate excitement, brand awareness and boost sales by ...
Nov 6 -
Birmingham - Everything else
Contract Manager (Job ID: 7384)
Department Overview
The Contract Management Department, a part of the Administrative Services Division, is accountable for planning, directing, budgeting and controlling Business Development, Marketing/Research Contract Administration, and Purchasing for Cahaba GBA. This ...
Oct 30 -
Birmingham - Everything else
Event Specialist
Oct 10 -
Oxford - Everything else
We'll be sending text message alerts for your subscription to


text:
Dice Magazine pre-party on Saturday 12/6 has been announced!
An annual tradition here in Yokohama, the night before HCS2014, Dice Magazine puts together a rockin' party that lasts all night long! Dare to stay all night? Just don't miss the HCS2014 the next morning! See you there!
Cover charge/Admission: 2,000yen includes 1 drink ticket
Date: December 6, 2014 (starts around 9-10pm)
Location: Tycoon Continental
2F 3-4-17 Shinyamashita Nakaku Yokohama Kanagawa 231-0801


text:
Bellator welterweight Brent Weedman has retired from mixed martial arts competition. read news >>
Brent Weedman, who competed in five Bellator MMA tournaments, has retired from the sport, his management team today announced.Filed under: Bellator, News Tagged: Brent Weedman read news >>
Even though he's scheduled for a bout with Brent Weedman at Friday's Bellator 104 event, welterweight tournament semifinalist Rick Hawn already knows whom he would like to face for the tournament title. read news >>
Religion and sports often go hand in hand, but if victorious in Friday's Bellator 104 headliner, don't expect Brent Weedman to look above for thanks. read news >>
The nine-bout lineup for next month's Bellator 104 lineup is now official, and the evening features the semifinal bouts of Bellator's Season 9 welterweight tournament with Rick Hawn vs. Brent Weedman and Ron Keslar vs. War Machine. read news >>
Brent Weedman enters the Bellator Season 9 Welterweight Tournament riding the confidence of the biggest victory of his career. read news >>
Bellator welterweight Brent Weedman's early resume is just the kind of thing that attracts big-name promoters. It's filled with finishes of the striking and submission kind. read news >>
Bryan Baker will get another shot at glory when he replaces an injured Brent Weedman in the Season 8 Bellator MMA Welterweight Tournament at Bellator 90 on Feb. 21. read news >>
Bellator welterweight semifinalist Brent Weedman has been forced to withdraw from the Season 8 tournament due to injury and will be replaced by Bryan Baker at Bellator 90. read news >>
Bellator Fighting Championships' Season 8 welterweight tournament field is now set, as promotion officials announced Wednesday that Bellator 86 will host the tourney's opening round. read news >>
It took former Bellator Fighting Championships lightweight titleholder Eddie Alvarez a little more than two minutes to erase the memories of his December 2008 encounter with Shinya Aoki. read news >>


text:
Dayton Loses in Ninth
Drew Cisco came into the Reds organization with a reputation for being very polished for a young…
|Top 30 Reds Prospects: No. 15
Cisco Prepares for First Full Professional Season
When Cincinnati went over slot to sign Andrew Cisco in 2009 they were expecting to get a polished pitcher with exceptional command above the norm for a high school pitcher. What they didn't expect was that Tommy John surgery would postpone his debut until last season. After dealing with the bad news Cisco rewarded them by living up to expectations during a solid debut at Billings.
Andrew Cisco came from a baseball family. His brother pitches in the Phillies organization and their grandfather Galen Cisco was a long time pitching coach. It was no surprise for him to already show polished skills on the mound before Cincinnati selected him in the sixth round of the 2010 draft. He probably wouldn't have waited as long had there been no concerns on sign-ability, but the Reds went over slot with a $975,000 bonus to deny his services to the University of Georgia. Unfortunately they would have a long wait before seeing his first professional pitch against competition because he underwent Tommy John surgery that kept him out of action until 2012.
He finally debuted at Billings last season and got off a slow start, partly because the Reds were cautious and limited his pitches. He finished the season strong and ended up with a 4-1 record and a 3.39 ERA which would have been good enough for the second lowest in the Pioneer League had he thrown more innings. By the end of the season he was routinely going for five frames per start and allowed one run or less in seven of his last nine outings.
Now at 21 years old he figures to move rapidly up the Cincinnati organization. He offers a low-90's fastball and mixes it up with a curve and changeup that he throws with good command as evidenced by his K/BB ratio of 45/7. He also is effective at inducing ground balls and had a ground/air out ratio of 1.3 while tossing only four pitches that were hit for home runs in 58 innings.
Some question his stature (6'0"/185#) for having limitations on a future as a starter, but the Reds have no reason to remove him from the rotation at this time. He's ready for promotion, but it's uncertain where he'll begin the season in 2013. Dayton is the next step, but he was once identified as a candidate for a fast track before falling behind from the surgery. If he does begin his season with the Dragons the Reds will probably keep an eye on him for a move to Bakersfield sometime during the season.
Physical limitations and absence of overpowering stuff limit Cisco's projections to a mid-rotation pitcher. However he's more of a low ceiling/high floor prospect with limited downside risk and a safer bet to wear an MLB uniform someday. His first minor league season suggests that arm troubles are behind him and he's a finesse pitcher throwing with a consistent form that should help durability. 2013 will be big for him as he prepares for his first full professional season. He came into the Cincinnati organization with a reputation for instinct and control beyond his years and thus far has lived up to the billing.
Build yourself a sky-high left-over turkey sandwich, cover it in a creamy sauce of hate, and get ready to scream!Read More
The top 30 teams in college football after Week Thirteen...Read More
Finding just the right present for that special someone can be a challenge, so we've compiled a wide variety of hunting, fishing and outdoor gifts that you—or Santa—can deliver this Christmas.Read More
Dr. Roto would like to wish you and yours a Happy Thanksgiving. And while you're filling your face with food, be thankful of everything you have. Dr. Roto thinks Fantasy owners will be especially…Read More
The story of the first Thanksgiving is filled with folklore and legend. But what's the real story? Here are 10 commonly believed myths about the First Thanksgiving debunked.Read More
Drew Cisco came into the Reds organization with a reputation for being very polished for a young…


text:
- Home
- Features
- Special Features
Blogs & Columns
- Contests
- Cafepedia
- Fun & Games
- More
Don't have a login?
Create an account here.
Practice your game while tossing your rubbish with the Spalding Wastepaper Basketball Basket.
This Wastepaper Basketball Basket is made of sturdy plastic to resember a real basketball hoop. Practice your hooks and three pointers when you have scrap paper to throw away.
The Wastepaper Basketball Basket makes a great gift for basketball fans at any time of the year.
This patented basket with 12 1/2 inch rim height and hoop diameter.
Get it for $16.99 (with backboard) or $12.99 (without backboard) at milenproducts.com


text:
"It's times like this I wish I had three hands!" One of the most awesome quotes of all time, courtesy of the discovery of this Martian prostitute's special party trick. Sheer sci-fi comedy genius. You might have been expecting to see this lovely lady earlier - however, while she might be from Mars, she's a mutant, not an alien. Nevertheless, for sheer novelty value, she deserves a mention alongside these off-world honeys!
You may also like:
Mary-Kate And Ashley Olsen Discuss Their Fashion Line 'The Row' In ELLE Magazine's Fashion Spotlight
James Franco and Seth Rogen Let It All Hang Out On 'Naked And Afraid.' That Show Just Got Interesting.
Listen To 1D's 'Where Do Broken Hearts Go' and Watch Them Perform 'Steal My Girl' On Wetten, Dass..?


text:
A friendly place for programming greenhorns!
Big Moose Saloon
Java FAQ
Recent Topics
Flagged Topics
Hot Topics
Zero Replies
Register / Login
Java Forums
Java in General
final Vs lazy initialization
Srikanth Basa
Ranch Hand
Joined: Jun 06, 2005
Posts: 241
Oct 20, 2006 12:39:00
Which one of the following is the better option from the performance point of view
Option 1
private List myList = new ArrayList(); // final is NOT used public MyClass() { } public MyClass(List userList) { myList = userList; }
Option 2
private final List myList ; // final is used with Lazy initialization public MyClass() { myList = new ArrayList(); } public MyClass(List userList) { myList = userList; }
Ilja Preuss
Joined: Jul 11, 2001
Posts: 14112
Oct 20, 2006 13:15:00
Well, option 1 creates an unnecessary ArrayList object when you call the second constructor. In most cases that won't make much of a difference, but still - I don't like it, if only from an esthetical point of view.
But what I would actually use is
Option 3
private final List myList; public MyClass() { this(new ArrayList()); } public MyClass(List userList) { myList = userList; }
BTW, neither option 2 nor option 3 have anything to do with lazy initialization. That would be option 4:
private List myList; public List getList() { if (myList == null) { myList = new ArrayList(); } return myList; }
In most cases that is total overkill.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
Jim Yingst
Joined: Jan 30, 2000
Posts: 18671
Oct 20, 2006 13:39:00
I think there's a more subtle issue which is quite possibly far more significant. All the code so far is accepting a List argument, exact type unknown, and then using that same List for... something. We don't know. What operations are going to be performed on it? None are shown. I would have to guess that add() is one, because otherwise, what possible use would there be for creating an instance with an empty list? So, you want to add() at least - but how do you know that the List you've been passed even supports add()? It's an optional method, after all. Maybe the user used Arrasy.asList(), or Collections.unmodifiableList(), to create a List that you
add to. Oops.
Alternately, what if they passed you a LinkedList, and you need to use get(int) frequently? (LinkedList's get(int) gives very poor performance if the list is large.) Or what if they gave you an ArrayList, and you need to insert or remove many things at the
of the list? (Here, ArrayList is very poor, but LinkedList works well.)
So I'd say it's a potentially serious problem if this class is accepting an unknown list and simply
you know for sure what kind of List is being passed in - or think you do. But another programmer may try to do something different with the code tomorrow. Or
may, a few weeks later when you don't remember all the details of this class.
I think a better solution overall is to create a List of your own - for now, assume ArrayList is indeed the best option - and copy the content of any other list into the ArrayList:
private final List myList; public MyClass() { this(Collections.emptyList()); } public MyClass(List userList) { myList = new ArrayList(userList); }
This is actually a little slower than the other options,
, as it spends a little extra time to copy content from one List to another. But this effect is still probably minor - and the advantage is, now you
what kind off List you have inside your class, and it supports all the opional methods you may need (like add()). And if you need to change the type later, you can, because it's defined here inside this class, not outside in client code somewhere.
"I'm not back." - Bill Harding,
subject: final Vs lazy initialization
Similar Threads
Something that i dont understand : Passing Objects as elements at the end of a list
Number of instances
Inheritence or Abstract class
How to deal with Concurrent Modification Exception
List's contains(Object o) method doesn't work for object version.
All times are in JavaRanch time: GMT-6 in summer, GMT-7 in winter
Contact Us
| Powered by
Copyright © 1998-2014
Paul Wheaton


text:
Vintage Poodle Figurines
There are certain agencies on the web where you can protest regarding an individual or a website with which you have been a casualty of a scam or deceptive exchange. There are some sellers online which will provide you with the best prices, however, they make their profit on the shipping fees. Due to the fact that customers are getting even more cautious when they shop online, cyber criminals are actually trying to crack the codes of sophisticated safety measures of large organisations in an effort to take essential information from all their clients. We market particular ebay products and clicking on them will reroute you towards its affiliated ebay page.
Most people choose to purchase in bundles which are groups of equipments since they're much more reasonably priced than getting everything separately. Merchants get money from organizations to promote their products. When the vendor advertises a product that is below the minimum advertised price (MAP), they won't receive advertising money from the business. Some vendors often sell a product at its full regular price but also place in bundle add-ons absolutely for free, whereas there are those who offer an instant rebate or price reduction on all purchases. It is suggested that you purchase from sellers that do not really stick to the minimum advertised price (MAP). If the on-line vendor does not seem to have a complaint, it doesn't mean they're honest already. Deceptive entrepreneurs open up and shut down stores extremely fast which is why you'll not find out any sort of recent complaint.