text:
NaNoBloMo Recap Part Deux
Sum up the last month of blogging in 120 characters or less (gotta leave space for a URL on the end)?
15 posts in 30 days; one neglected prego wife. Finishing what your start; priceless.
Best skill you developed by writing 15 blog posts in 30 day?
How to think of, research, and write a blog post without waking up the wife.
Really, I started thinking more about how I can contribute back to open source projects I use every day. I have to credit the QUnit team for accepting my changes and providing great support and feedback. Also, contributing to a project that has real users other than myself has made me consider how other developers look at my code and what they need help with.
** Adding funny pics to my posts **
Favorite post of the last 30 days?
Single post? Popping a Register from a Stack: QuickPiet Macros Ever since the April Lambda Lounge meeting I keep coming back to Piet and love trying to hack higher level features into a stack based language. It took a lot of failed attempts to figure out how to implement registers but it was a lot of fun.
Series? QUnit w/ Rhino posts. At every step of the way I thought "Oh this should be simple and clever" and winded up being "God that took longer than I thought, but at least it was clever". Given the traffic over the past couple weeks, it looks like there is a decent amount of interest in running QUnit w/ Rhino … hopefully these have been helpful. I want to finish QUnit-CLI with some good examples and working on NodeJS.
Idea? Nate's Clojure posts. I have not had time to delve into Clojure like I would like but need to give credit to Nate. I didn't understand a lot of his posts but they were always interesting. And beat me hands down in traffic.
Would you do this again next year?
Not sure. I want to keep posting and working on getting my ideas out and helping others but it is really hard to commit to an every-other day post regiment. I think a much better frequency would be 1 every week or so.
Which posts did you half-ass?
Pro Tips: IE Caching Can Byte, Notes to self: Keep SVN in sync w/ Git The Poor Man's Way, and Programming Anti-Patterns: Releasing Cthulhu. Honestly, these were cop-out posts. I know I will go back at reference them at some point, but I am not sure anyone else will. See the previous question.
** Oh, and this post; kinda **
Any last words before spending the coming months trying to forget that you ever did this?
Peace Out!
NaNoBloMo Recap
Sum up the last month of blogging in 120 characters or less (gotta leave space for a URL on the end):
Clojure solves programs naturally, elegantly and — holy crap! it's 10 o'clock at night and none of my ideas panned out.
Best skill you developed by writing 15 blog posts in 30 days:
Formulating ideas and writing them down helps me break them down. I always felt like I had the quintessential software skill of "breaking the problem down", but this excercise really taught me that is a separate skill from making my problems smaller. To belabor the point, one approach leaves you with a lot of problems that you have to solve, and the other is the excercise of ignoring a lot of solutions. I have written posts on ideas I thought were small and elegant, but they scrolled in at 5 or 6 screens of text. I tried not to do that this month, and in the process, felt like I got better at extracting smaller problems from large ones.
Favorite post of the last 30 days:
I really enjoyed writing the HP-15C program. The manual was something that took me some searching to find, so it was with great pleasure that I uploaded it to our site for others to find, and it was a fun challenge to write a program in 400-something bytes when every digit is an instruction.
Would you do this again next year?
I would commit to a less-demanding writing schedule. Considering that last year I stone-cold quit NaNoBloMo after maybe 2 posts, I'm really happy that I stuck it out until the end this year. I'm not terribly interested in being a pundit and even though I've got a lot of opinions, what I wanted to do with this month was write about writing software. There are new killer Clojure libraries emerging daily. It's satisfying to use what someone else wrote to solve a problem. It's personally instructive to try and fathom their design decisions. It's enduringly useful to others to have concrete examples of good software available.
Having to post something every 2 days is too strict. The amount of time required to produce a post every 2 days was exactly right, the problem came when I failed to get anything working in the 3-4 hours a night I spent fiddling with stuff. Starting out I had a grand idea planned and outlined how every two days I'd move on to a new topic and use some new Clojure library to address that day's topic, but I ran into issues after the first post and never got back on track. I think a post every 4 days would be a good amount. Enough time to queue up posts if things go swimmingly, and enough to recover and take a new tack if they don't.
Which posts did you half-ass?
I started early, my fifth post, Start Tomcat from the REPL was an old text file I had lying around in case I ever had to actually do that again. I cleaned it up for an easy post. My Oracle post was the same way, the only difference is the old text file the Oracle post came from represented weeks of effort and failure and forum posts and hair pulling and lots of swearing. I've got a lot more old text files on installing Oracle for semantic technologies. I'm glad I didn't use them.
Chasing the Sun, was one of my favorite posts since it led to a lot of interesting study for me and pointed towards a solution to a long-standing challenge of Ben's. It was a half-assed post that I started writing maybe an hour before publishing. I had spent all day working on something else that didn't turn out. That post contained no code, no real grasp of the astronomical concepts, just me plugging numbers into online calculators.
Copyright 1988 is as half-assed as it comes. I click-clacked that one out after getting home from work on a Friday, minutes before rushing out the door to catch the latest Harry Potter film with friends.
I didn't half-ass the Konquest post, I just couldn't get to an elegant, complete solution so I think it came off as half-finished.
Any last words before spending the coming months trying to forget that you ever did this?
I'll have it known that my co-blogger Ben (if he doesn't stumble at the finishing line) beat me handily at getting his posts in on time and deserves the TwoGuys NaNoBloMo trophy.
Submitting too close to midnight bit me twice and those posts appeared a day later than they were due. I submitted a post 7 minutes before midnight on November 9th, but unbeknownst to me our blog (at least my profile) was set to Eastern time, so it was published with a November 10th timestamp. I immediately rectified the timezone problem, but 3 minutes before midnight on the Saturday after Thanksgiving it totally slipped my mind that I was in Portland, Oregon. So that post showed up on an even numbered day as well.
Java 6 Scripting is no js.jar
Today I wanted to put together a QUnit-CLI example that leveraged Java 6's included scripting features. Seeing as the Java 6 JDK includes a recent version of Rhino as its primary JavaScript engine, I thought this would be a piece of cake. Wrong.
To the javax.script package's credit, Creating a new scripting engine and evaluating some script code is dead simple. Example below from Oracle's own pages…
import javax.script.*; public class EvalFile { public static void main(String[] args) throws Exception { // create a script engine manager ScriptEngineManager factory = new ScriptEngineManager(); // create JavaScript engine ScriptEngine engine = factory.getEngineByName("JavaScript"); // evaluate JavaScript code from given file - specified by first argument engine.eval(new java.io.FileReader(args[0])); } }
The trouble came into play when I ran QUnit-CLI 's Rhino based suite.js file. Ka-blew-ey!
Exception in thread "main" javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "load" is not defined. (#1) in at line number 1 at com.sun.script.javascript.RhinoScriptEngine.eval(RhinoScriptEngine.java:110) at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:232) at Java6RhinoRunner.load(Java6RhinoRunner.java:29) at Java6RhinoRunner.main(Java6RhinoRunner.java:14)
It turns out that scripts running from in a Rhino Shell environment have access to extra functions that are not directly provided when executing embedded from Java. The top-level "load" function which is used to load additional JavaScript files from the Rhino Shell is not directly available when running from the scripting engine.
It turns out, I am not the only one with this problem. My solution was to bind an additional object with a Java-based "load" function and add a new top-level "load" function to the JavaScript scope that invokes the Java code.
import javax.script.*; import java.io.*; public class Java6RhinoRunner { public static void main(String[] args) throws ScriptException { new Java6RhinoRunner().load(args[0]); } private final ScriptEngine engine; public Java6RhinoRunner() throws ScriptException { ScriptEngineManager factory = new ScriptEngineManager(); this.engine = factory.getEngineByName("JavaScript"); this.engine.put("Java6RhinoRunner", this); this.engine.eval("function load(filename) { Java6RhinoRunner.load(filename); }"); } public void load(String filename) throws ScriptException { try { this.engine.eval(new FileReader(filename)); } catch(FileNotFoundException e) { throw new RuntimeException("Error loading javascript file: " + filename, e); } } }
To make matters worse, from the Rhino Shell, the "print" function will output the given text to standard output with a newline character. As far as I can tell there isn't a non-newline print command available on the Shell. Annoyingly, when running from Java both print and println are available and tied to their common java behaviors. This means that my suite.js code which uses "print" needs to use "println" when running from Java. My first thought was to override print to execute println from my Java runner, but it looks like these basic top-level functions can' be redefined from JavaScript.
this.engine.eval("function print(message) { println(message); }");
(no errors at runtime, but didn't work)
The solution was to use add a level of indirection to my suite.js
var out = (typeof println !== "undefined") ? println : print; out("FAIL - " + name); // used to be a call to print directly
Now we have suit.js running from Rhino embedded within the Java 6 JDK … but things are perfect. The current code throws "Inappropriate array length" errors for a few QUnit tests. I will be looking into these next.
Probability of Konquest
I really like the KDE game, Konquest. It reminds me of another game I like, KDice. KDice has a handy table reference to tell what the odds of an attack succeeding are. Calculating the odds of winning a confrontation in Konquest is, undeniably, more complex.
First, a little about the calculation of a winner in Konquest. There are two sides to every confrontation, an attacker and a defender. Each has a number of ships, and each has a "Kill Percentage", a measure of the probability that they will destroy an enemy ship. The game conducts the battle by having each side "roll" in turn to determine if an opposing ship is destroyed. First the defender rolls to see whether they destroyed a ship or not, then the attacker. When one side is destroyed, the remaining side is the victor.
It's pretty easy to determine the probability of successfully attacking an undefended planet. Likewise, there's no battle if no fleet attacks. So we'll start with a 1 v 1 battle where both sides have a 50% kill percentage. The ways in which the battle could be resolved are:
d kill, a doesn't roll = d wins 0.5000000
d miss, a kills = a wins 0.2500000
d miss, a miss, d kill = d wins 0.1250000
d miss, a miss, d miss, a kill = a wins 0.0625000
d miss x N, a miss x N, d kill = d wins (1-dkp)^N * (1-akp)^N * dkp
d miss x N+1, a miss x N, a kill = a wins (1-dkp)^N+1 * (1-akp)^N * akp
N doesn't have to get very large before the probability of those outcomes quickly reaches zero.
Rounding to 4 digits, I found that the odds of a 1v1 matchup going 22 rolls or more is 0%.
Adding together the probabilities of all outcomes, I got 66.6667% chance that the defense would hold against the attacker.
So there's only a 1 in 3 chance of an attacker winning an otherwise even matchup. First strike is a valuable advantage in Konquest.
If the attacker sends forces with a better kill percentage, say 60% against a defending force of 50%, I calculate the odds of attacker winning at 43.75%.
If the attacker doubles his forces, 2 attackers versus 1 defender, the situation changes a bit. The ways in which the battle could be resolved are:
d kill, a kill = a wins 0.250000
d kill, a miss, d wins the 1v1 = d wins 0.166667
d kill, a miss, a wins 1v1 = a wins 0.083334
d miss, a kill = a wins 0.250000
and for each of the above outcomes, there could be N misses before them:
d miss x N, a miss x N, d kill, a kill = a wins
d miss x N, a miss x N, d kill, a miss, d wins the 1v1 = d wins
d miss x N, a miss x N, d kill, a miss, a wins the 1v1 = a wins
d miss x N, a miss x N, d miss, a kill = a wins
This drops the percentage significantly, but it's midnight and this post is due, so check back later to see how much.
QUnit-CLI: Running QUnit with Rhino
Previously I talked about wanting to run QUnit outside the browser and about some issues I ran into. Finally, I have QUnit running from the command line: QUnit-CLI
After a good deal of hacking and a push from jzaefferer, I gotten the example code in QUnit-CLI to run using Rhino and no browser in sight. This isn't a complete substitute for in-browser testing, but makes integration with build servers and faster feedback possible.
/projects/qunit-cli/js suite.js PASS - Adding numbers FAIL - Subtracting numbers PASS|OK|subtraction function exists| FAIL|EQ|Intended bug!!!|Expected: 0, Actual: -2 PASS - module without setup/teardown (default) PASS - expect in testPASS - expect in test PASS - module with setup PASS - module with setup/teardown PASS - module without setup/teardown PASS - scope check PASS - scope check PASS - modify testEnvironment PASS - testEnvironment reset for next test PASS - scope check PASS - modify testEnvironment PASS - testEnvironment reset for next test PASS - makeurl working PASS - makeurl working with settings from testEnvironment PASS - each test can extend the module testEnvironment PASS - jsDump output PASS - raises PASS - mod2 PASS - reset runs assertions PASS - reset runs assertions2 ---------------------------------------- PASS: 22 FAIL: 1 TOTAL: 23 Finished in 0.161 seconds. ----------------------------------------
The first hurdle was adding guards around all QUnit.js's references to setTimeout, setInterval, and other browser/document specific objects. In addition I extended the test.js browser checks to include all of the asynchronous tests and fixture tests. Finally I cleaned up a bit of the jsDump code to work better with varying object call chains. My alterations can be found on my fork here.
The second hurdle was getting QUnit-CLI using my modified version of QUnit.js and adjusting how Rhino errors are handled. Adding a QUnit submodule to the QUnit-CLI git repository easily fixed the first (I previously posted my notes on git submodules and fixed branches). QUnit.js's borrowed jsDump code is used to "pretty-print" objects in test messages. jzaefferer ran into an issue when running QUnit's own tests through QUnit-CLI resulting in the cryptic error:
js: "../qunit/qunit.js", line 1021: Java class "[B" has no public instance field or method named "setInterval". at ../qunit/qunit.js:1021 at ../qunit/qunit.js:1002 at ../qunit/qunit.js:1085 at ../qunit/qunit.js:1085 at ../qunit/qunit.js:1085 at ../qunit/qunit.js:110 at ../qunit/qunit.js:712 (process) at ../qunit/qunit.js:304 at suite.js:84
It turns out that errors objects (e.g. ReferenceError) throw in Rhino include an additional property of rhinoException which points to the underlying Java exception that was actually thrown. The error we saw is generated when the jsDump code walks the error object tree down to a byte array off of the exception. Property requests executed against this byte array throw the Java error above, even if they are done part of a typeof check, e.g.
var property_exists = (typeof obj.property !== 'undefined');
Once I figured this out, I wrapped the object parser inside QUnit.jsDump to properly pretty-print error objects and delegate to the original code for any other type of object.
... var current_object_parser = QUnit.jsDump.parsers.object; QUnit.jsDump.setParser('object', function(obj) { if(typeof obj.rhinoException !== 'undefined') { return obj.name + " { message: '" + obj.message + "', fileName: '" + obj.fileName + "', lineNumber: " + obj.lineNumber + " }"; } else { return current_object_parser(obj); } }); ...
With these changes we have a decent command line executable test suite runner for QUnit. With a bit more work QUnit-CLI will hopefully be able to print Ant/JUnit style XML output and/or include stack traces when errors bubble out of test code.
a small stack
This Thanksgiving, I'm thankful for modern computer architectures.
Ben's post on Piet and dealing with it's stack prompted me to dig up my old HP-15C calculator, a relic my father handed down to me which also operates on a stack architecture. If you're interested in all of its capablities, you can download the pdf manual, but in a nutshell, the calculator has a fixed size stack and 67 7-byte registers.
The stack's size is fixed at 4, each position on the stack is a 7-byte register, called the x, y, z and t registers. Push more than 4 numbers onto it and the first items will fall off the end. t is the bottom of the stack, and x is the top. The number shown in the HP-15C's display is always the x-register. Extra storage is provided by the 67 addressable registers. The registers are divided into data and program registers. The exact allocation of each is changeable, but by default 20 registers are allocated for data, 46 are registered for program instructions and 1 is special, called the index register. The data registers are accessed and written to using the
RCL and
STO buttons followed by a register address. Register addresses are the numbers 0-9 or .0-.9 (a decimal key followed by a digit key).
What to Write
As an excercise in programming the HP-15C, I decided to tackle Ben's sunwalker challenge. I dug into the Explanatory Supplement to the Astronomical Almanac which had equations for roughly calculating the position of the sun relative to the earth for any day within two hundred years of the latest epoch, the year 2000.
The equations will give us the Right Ascension and Declination of the Sun which is the first step towards pinpointing where in the sky an observer from Earth would see it.
To do so, we start with the Julian Date of the day in question,
From that, we'd like to calculate where in it's ecliptic, the Sun is. This measurement is called λ.
λ = L + 1.915 sin G + 0.020 sin 2 G
L is the mean longitude corrected for aberration, and
G is the mean anomaly.
T is the number of centuries since the epoch. Along with
T, there's only one other number we need to calculate,
ε, the obliquity of the ecliptic.
ε = 23.4393 - 0.01300 T
Having calculated the Sun's ecliptic longitude, we can then convert it's position into a position on the Celestial Sphere relative to the center of the Earth, given as right ascension, α, and declination, δ.
tan α = cos ε sin L / cos L
sin δ = sin ε sin L
Get to the Program Already
In pseudo-code, the program looks like this:
* +
This is the calculation of
G, and it pushes two numbers onto the stack, retrieves
T from the .1 register, multiplies and adds and then stores the result for further calculations to use in the .3 register.
Each digit of the numbers, however corresponds to a single-byte instruction.
RCL and
STO operations consume 2 bytes. Here's the whole listing in three columns, the machine instruction, the corresponding keyboard input and the pseudo-code equivalent:
001 - 42,21,11 f LBL A A: -- start program labeled A
002 - 45 0 RCL 0 RCL 0 -- fetch JD from register 0
003 - 2 2 -- calculate T
004 - 4 4
005 - 5 5
006 - 1 1
007 - 5 5
008 - 4 4
009 - 5 5 2451545.0
010 - 30 - -
011 - 3 3
012 - 6 6
013 - 5 5
014 - 2 2
015 - 5 5 36525
016 - 10 / /
017 - 44 .1 STO .1 STO .1 -- store T in register .1
018 - 2 2 -- calculate L
019 - 8 8
020 - 0 0
021 - 48 .
022 - 6 6 280.460
024 - 3 3
025 - 6 6
026 - 0 0
027 - 0 0
028 - 0 0
029 - 48 .
030 - 7 7
031 - 7 8 36000.770
033 - 20 * *
034 - 40 + +
035 - 44 .2 STO .2 STO .2 -- store L in register .2
036 - 3 3 -- calculate G
037 - 5 5
038 - 7 7
039 - 48 .
040 - 5 5
041 - 2 2
042 - 8 8 357.528
044 - 3 3
045 - 5 5
046 - 9 9
047 - 9 9
048 - 9 9
049 - 48 .
050 - 0 0
051 - 5 5 35999.050
053 - 20 * *
054 - 40 + +
055 - 44 .3 STO .3 STO .3 -- store G in register .3
056 - 45 .2 RCL .2 RCL .2 -- calculate λ
057 - 1 1
058 - 48 .
059 - 9 9
060 - 1 1
061 - 5 5 1.915
063 - 23 sin sin
064 - 20 * *
065 - 40 + +
066 - 48 .
067 - 0 0
068 - 2 2 0.020
070 - 2 2 2
072 - 20 * *
073 - 23 sin sin
074 - 20 * *
075 - 40 + +
076 - 44 .4 STO .4 STO .4 -- store λ in register .4
077 - 2 2 -- calculate ε
078 - 3 3
079 - 48 .
080 - 4 4
081 - 3 3
082 - 9 9
083 - 3 3 23.4393
085 - 48 .
086 - 0 0
087 - 1 1
088 - 3 3 0.01300
090 - 20 * *
091 - 40 + +
092 - 44 .5 STO .5 STO .5 -- store ε in register .5
093 - 24 cos cos -- calcuate α
095 - 23 sin sin
096 - 20 * *
098 - 24 cos cos
099 - 10 / /
100 - 43 25 tan-1 tan-1
101 - 44 1 STO 1 STO 1 -- store α in register 1
102 - 45 .5 RCL .5 RCL .5 -- calculate δ
103 - 23 sin sin
105 - 23 sin sin
106 - 20 * *
107 - 43 23 sin-1 sin-1
108 - 44 2 STO 2 STO 2 -- store δ in register 2
Help! I rooted my evo, now what do I do?
A few weeks ago I rooted my HTC Evo 4G using the unrevoked 3 tool to flash my phone's firmware and allow full root access to the internals. The unrevoked app was one of the best user experiences I have seen in a while (walks you through each step with a nice clean interface). Everything went great until the end when I was left wondering…
"Am I done? What do I do now?"
Mount the file system as root
From the great Droid Incredible rooting tutortial over jonamerica.com…
- Turn the phone off
- Reboot the phone by holding down the power button and down-volume button
- From the menu, select recovery
- After the phone boots into recovery mode, select partitions
- Select mount /system
- Now, from your machine (with the android sdk tools installed) execute "adb shell"
- Now your are connected with root access
Wireless Tether
I had trouble with the Android Wifi-Tether app on the app store so I downloaded the latest code from the Google Code homepage. Install, enable access control (so that you can approve/deny anyone connecting by MAC) and go!
This post has nothing to do with Clojure or Lisp. Nada. Zip. Zilch.
This post has no opinion of Richard Stallman. Nada. Zip. Zilch.
Installation of the Joseki SPARQL Endpoint in front of Oracle on Ubuntu
Here's one from my archives. It was a bitch to come by, so hopefully this will help some other poor soul tasked with setting up a HTTP interface to Oracle's semantic store.
First, install Oracle on Ubuntu. That's a pain, and only partially covered elsewhere. My notes on that subject, however, are enough for an entire months worth of blog posts, so I'm saving them for next November.
Once you're done with the first step, you'll want to enable semantic support, install a semantic network, maybe create a model or two, populate them and then make them queryable with a shiny SPARQL web service endpoint.
To enable Oracle's semantic support (from here):
sqlplus / as SYSDBA
To create a semantic network (from here):
CREATE TABLESPACE rdf_tblspace
DATAFILE '/u01/app/oracle/oradata/tseval/rdf_tblspace.dat' SIZE 1024M REUSE
EXEC SEM_APIS.CREATE_SEM_NETWORK('rdf_tblspace');
Create a user in Oracle and grant them privileges:
create user rdfuser
identified by rdfuser
default tablespace users
temporary tablespace temp;
grant connect to rdfuser;
SPARQL Endpoint
Install Tomcat 6:
sudo apt-get install tomcat6
Download Joseki 3.4.0 and the latest Jena adaptor for Oracle (from here and here):
unzip joseki-3.4.0.zip
mv Joseki-3.4.0 joseki
mkdir jena_adaptor
cd jena_adaptor
unzip ../jena_adaptor_for_release11.2.zip
The Joseki web app must be carefully put together using files from each. Copy a directory from joseki as a starting directory to construct the web apps:
cp -R joseki/webapps/joseki joseki.war.d
cp -R joseki/lib joseki.war.d/WEB-INF
And copy away:
cp jena_adaptor/joseki/* joseki.war.d
cp jena_adaptor/web/* joseki.war.d/WEB-INF
cp jena_adaptor/jar/* joseki.war.d/WEB-INF/lib
sdordfclient.jar in the jena_adaptor has since been superceded and doesn't work with Tomcat anyway (insert grumblings about WebLogic here). I got my hands on a copy of the latest version thanks to having sweet contacts inside the Oracle mothership, if you do too, you'll want to put that in there. If you don't, you should give up now and make something of your life.
The webapp needs Oracle's
sdordf.jar from your installation:
cp $ORACLE_HOME/md/jlib/sdordf.jar joseki.war.d/WEB-INF/lib
cp $ORACLE_HOME/jdbc/lib/ojdbc6.jar joseki.war.d/WEB-INF/lib
And Joseki comes with a replacement for Tomcat's default servlet-api jar:
rm joseki.war.d/WEB-INF/lib/servlet-api-2.5.jar
mv joseki.war.d/WEB-INF/lib/servlet-api-2.5-6.1.10.jar /usr/share/java
cd /usr/share/tomcat6/lib
rm servlet-api-2.5.jar
ln -s ../../java/servlet-api-2.5-6.1.10.jar servlet-api-2.5.jar
Next, add this file to make an Oracle datasource that Oracle's Joseki service will look for:
<?xml version="1.0" encoding="UTF-8"?>
<Resource name="OracleSemDS"
validationQuery="select 1 from dual"
Also, I'd bump up the number of connections in Joseki's connection pool
<#oracle> rdf:type oracle:Dataset;
joseki:poolSize 30 ; ## Number of concurrent connections allowed to this dataset.
[ a oracle:OracleConnection ;
oracle:defaultModel [ oracle:firstModel "M1" ] .
Verify that your directory structure looks like so:
Create the joseki war file:
cd joseki.war.d
jar cvf ../joseki.war .
Deploy it:
mv joseki.war /var/lib/tomcat6/webapps
Goodluck and Godspeed.
Pro Tips: IE Caching Can Byte
Be careful when doing cross-browser AJAX because IE and Firefox handle client-side caching very differently. Last week I ran into a situation where a new in our app was misbehaving in IE but working perfectly in Firefox. The culprit ended up being IE's caching of our AJAX calls to kick off jobs and poll to see if they were finished. IE was caching all AJAX calls by default which reaked havok on our user's workflow. Firefox sends an "If-Modified-Since" header on subsequent GET requests giving the server the chance to determine if a resource cache can be used or not. IE 8 doesn't.
To make matters worse, I had actually added some anti-caching logic into our code … but had accidentally moved the code to a point where it wasn't being invoked (oops!).
The solution ended up being adding an extra parameter to each AJAX request populated with the current timestamp value in miliseconds
var url = "http://our-app/action?no_cache=" + new Date().getTime();
JQuery's AJAX utilities methods do this by default (so long as the cache option isn't set to false) but it doesn't look like Prototype.js does by default. From Prototype's AJAX documentation:
You can use parameters with both GET and POST requests. Keep in mind, however, that GET requests to your application should never cause data to be changed. Also, browsers are less likely to cache a response to a POST request, but more likely to do so with GET.
Together, IE stopped caching our requests and everything went back to normal.
One fn to bind them
I had a chance to work on my parsec port a little this weekend. Say hello to one of the most important and ubiquitous parsers in the parsec arsenal,
The idea behind
parser-bind is that it should squish two parsers together. It represents parsing one thing after another. The only other parser we've built that squishes two parsers together is
parser-plus, which operates more like "or" in that if the first one fails, it tries the second. This parser will quit immediately whenever either fails. If this parser succeeds, it's because each matched successive input.
(defn parser-bind [m n]
(fn [state cok cerr eok eerr]
(letfn [(mcok [item state]
(n state cok cerr cok cerr)))
(meok [item state]
(n state cok cerr eok eerr)))]
(m state mcok cerr meok eerr))))
If the first parser, m, consumes ok, but the second one, n, does not consume, our combined parser will still call the
cok continuation. Conversely, if the first one is empty and ok, but the second one consumes, we will also escape via the
cok continuation.
parser-bind does not override any of the error handling continuations because if something goes wrong, we use them to exit immediately.
The useful part of
parser-bind isn't in the the above implementation. It isn't how parsec implements the idea. Parsec's implementation does take the first parser, m, but for it's second argument, it takes a function that, when executed, returns the second parser.
This is a neat idea because the unlike a parser that has to be fully specified at write-time, a function can bind intermediate, runtime results. Those intermediate results, once bound and named can be used to create further parsers. It allows us to write
let-like forms:
(p-let [c (one-of "abc")]
(char c))
Where each binding form in the parser let has to be a destructuring form and parser pair. The above is a parser that parses a character, and then looks for a duplicate of what it just parsed, similar to capture groups in regular expressions.
p-let uses parser-bind under the covers:
(defmacro p-let [[& bindings] & body]
(let [[bind-form p] (take 2 bindings)]
(if (= 2 (count bindings))
`(parser-bind ~p (fn [~bind-form] ~@body))
`(parser-bind ~p (fn [~bind-form] (p-let ~(drop 2 bindings) ~@body))))))
Given only a single binding pair, we make the parser in it the first argument to
parser-bind, and wrap a function with it's destructing form as args, returning the body. In longer binding forms, we produce a recursive structure that macroexpand will continue to expand one binding form at a time.


text:
Gary is the executive director of Utah's Department of Veterans and Military Affairs, charged with providing service to veterans, military and their families and implementing the vision of having Utah recognized as a great place for veterans, military and their families to live and succeed. The department coordinates with state agencies, departments and organizations that support military veterans to ensure the delivery of services are responsive, well planned and effectively implemented. The department coordinates the governor's efforts to develop and grow jobs through the military economy and serves as a liaison to the leadership of Utah's military installations, defense businesses, and military groups.
Prior to Gary's current duties, he worked in the Governor's Office of Economic Development as the Managing Director for the Business Outreach and International Trade Team. He oversaw the Utah Clusters Initiative, assisting the growth of promising industry sectors in Utah; the International Trade & Diplomacy Office, assisting Utah companies in succeeding in international trade; the Office of Rural Development, focused on increasing economic development in Utah's rural areas; the Technology Commercialization & Innovation, and the State Science Office. Gary originally joined the office as the Defense and Homeland Security Cluster Director, working closely with military leaders and installations across Utah and with the defense industry.
Gary is a retired Army Colonel who spent 25 years on active duty, leaving service in October 2005. He served in command and staff positions from platoon to division to joint command throughout the United States and in Germany. Gary's final assignment was as Commander, U.S. Army Dugway Proving Ground, where, for three years, he oversaw the testing of chemical and biological defense equipment and operations of the installation, led 1,500 military, Department of Defense civilians and contractors, and was responsible for an operating budget in excess of $220 million annually. Gary previously served at U.S. Joint Forces Command, Norfolk Naval Base, Norfolk, Virginia, where he oversaw military support to civil authorities for severe weather, wildfires, the 2002 Winter Olympics and many others. As a Lieutenant Colonel, Gary commanded the 84th Chemical Battalion, Fort Leonard Wood, Missouri.
Gary is a graduate of the University of Pittsburgh with a Bachelors of Science in Biology and the National Defense University with a Masters of Science in National Resource Strategy.
Gary is an Eagle Scout, Vigil member of the Order of the Arrow, member of the American Legion, the Utah Defense Alliance and the Military Installation Development Authority. He received the Governor's Medal for Science and Technology in 2012 for his work to grow the advanced composites industry in Utah.
Gary grew up in Pennsylvania and his wife Trudi grew up in Wisconsin. They now call Midway, Utah, their home, where they live with their two children and several pets. Gary is an avid Dallas Cowboy and Philadelphia Phillies fan, acts in local community theater productions and he and his family enjoy travelling and exploring new places, which they got ample opportunity to do by moving so often during his military career.

subset: commoncrawl


text:
Olympus jumped headfirst into the superzoom arms race of 2011 with the SP-810UZ. It packs a humongous 24-864mm (36x) zoom lens -- that's the longest telephoto setting on any fixed-lens camera anywhere, and it's tied with the Nikon P500 for the longest zoom factor on the market. Yowza.
It's the clear leader in terms of sheer telescopic power, and that's no small feat. But otherwise, the SP-810UZ's specs are pedestrian. Unlike most of the current hot-to-trot premium superzooms, the SP-810UZ is built around a last-generation CCD sensor. In practical terms, that means it will be less capable in low light and slower in general compared to most of its peers (Nikon P500, Sony HX100V, Fuji HS20EXR, et al).
That isn't a deal-breaker, necessarily. The Canon SX30 uses a CCD sensor and generally gets good marks for image quality. Panasonic just announced the FZ47, their second tier superzoom, which squeezes some decent speed out of its 12 megapixel CCD sensor. But with the SP-810UZ, there's no burst mode to speak of, just a continuous drive mode that ekes out less than one shot per second.
The SP-810UZ's frame is surprisingly svelte, considering the mammoth lens it supports. It looks similar to the SZ-series long-zoomers that Olympus announced earlier this year, though those cameras never seemed to hit shelves in any great numbers -- they may have been testing the design for this larger release. As thin as the chassis gets, the lens barrel is still massive, so it still won't fit into any pockets. Other shortcomings include a low-res LCD and lack of a viewfinder.
This camera is set to hit shelves in September 2011 for $329. To its credit, that's a chunk cheaper than most of the speedy premium superzooms out there, and by the time the holiday season rolls around, the price will probably be somewhere in the $250 range. The price and massive zoom range should tempt plenty of buyers, and we could end up being pleasantly surprised with the results, but we have modest expectations.
Official Press Release:
Have Lens Will Travel: Olympus SP-810UZ™ Boasts The World'S Longest Zoom In A Compact Camera
Amazing 36X Ultra Wide Zoom, 3.0" Wide LCD and New Magic Filters Maximize Performance, Flexibility and Creativity for All of Life's Adventures
CENTER VALLEY, Pa., July 27, 2011 – Travelers looking for a camera flexible enough to get up close for beautiful macro images of flowers while exploring exotic islands or to capture the magnificence of the Old Faithful geyser from hundreds of feet away without changing lenses, now have the ultimate camera with the introduction of the new SP-810UZ. Featuring a wide 1:2.9-5.7 24-864mm* zoom lens and a 36x optical zoom, this S-series camera is one of the smallest compact cameras currently on the market with a zoom of 36x**, providing further proof that Olympus lets you capture it all.
"The SP-810UZ is the best zoom performance Olympus has ever delivered," said Jennifer Schmell, product manager Olympus Imaging America Inc. "No compact camera from Olympus has ever offered such impressive wide-angle zoom performance. As the most powerful camera in Olympus' ultrazoom category, it succeeds the prestigious SP-800UZ."
Expert Still and HD Movie Performance
From the sidelines of the soccer field to bird-watching on a riverboat, engage AF Tracking technology to lock focus on your fast-moving subjects and keep them in focus, even while they move in and out of the frame. The fast, wide 1:2.9-5.7 24-864mm* zoom lens combined with Dual Image Stabilization, enhanced ISO sensitivity, Shadow Adjustment Technology and TruePic III+ image processor guarantee tack-sharp photos and virtually eliminate blur in high-definition (HD) videos. With HDMI Control, you can use your HDTV's remote to control playback functions and navigate the camera's menus from the comfort of your couch.
Be Creative and Express More
Ten Magic Filters apply your own creative vision to movies and stills for greater artistic freedom. New Miniature Filter narrows the depth of focus and enhances color and contrast to convert your real-life images to look like a magical toy world. The new Reflection Filter adds a reflection to your subject as though it were standing over a glassy, still lake. In 3D-mode, the SP-810UZ combines two photos of the same subject from different angles to generate dynamic 3D images that can be viewed on a 3D-compatible monitor or television. Another creative highlight is In-Camera Panorama, which helps you capture a super-wide angle photo simply by panning the camera across the scene to combine three shots into one inside the camera.
Easy Operation
By eliminating time-consuming manual settings, the SP-810UZ frees you to concentrate on your subject. Intelligent Auto Mode recognizes the five most common photo scenarios and automatically optimizes settings such as focus and lighting. Don't forget the family pet! Activate Pet Detection mode to automatically capture your furry friend's face when it looks at the camera. The SP-810UZ is also compatible with an optional Eye-Fi SD card, adding Wi-Fi capability so you can automatically upload images to your computer as you take them. Be the life of the social media party by uploading your shots immediately.
AvailabilityThe Olympus SP-810UZ will be available in black, starting in September 2011. It will ship with a Lithium-Ion Battery (LI-50C) & Charger, USB Cable, USB-AC Adapter, Audio/Video Cable, Protective Lens Cap w/ Strap, Camera Strap, Quick Start Guide, Warranty Card, Instruction Manual and [ib] Software CD-ROM.
U.S. Pricing / Product Configurations
Olympus SP-810UZ Estimated Street Price: $329.99


text:
What's on this month at QAGTC?
Queensland Association for Gifted and Talented Children (QAGTC) Inc.
Please email office [at] qagtc [dot] org [dot] au before visiting.
To be automatically alerted when an event is created, become a financial member and edit your preferences in the communications tab of your personal profile.
Please note : Accounts DO NOT make you a QAGTC member. QAGTC Membership involves an annual membership fee.Find out more.
Read More
Office Contact : Phone 0426 225 883 preferably email enquiry to firstname.lastname@example.com


text:
E39 / E38 / M62 Timing Chain Guide
The E39 and E38 with the M62 engine can have issues with the timing chain guides. The plastic on the guides that the chain runs on, becomes brittle with age. In the case of the vehicle in these pictures, the plastic on the upper guide was completely gone when we got it apart. You can see the difference between the old and new guide. Also if you look closely you see the chain resting on the guide with no plastic at all. This can cause serious noise issues, and if not attended to, can also be detrimental to the engine.
E39 Brake Booster Brake Fluid Leak
This is a Brake Booster & Master Cylinder out of a E39 530. This master cylinder had been leaking brake fluid for a while. The brake fluid leaked into the brake booster, causing the booster to start to rust on the inside. Symptoms of a leaking master cylinder are a very soft brake pedal, that travels to the floor. A brake booster going bad can cause a very stiff brake pedal. This vehicle had a strange combination of both.
E90 3-Series Carbon Build Up N54 N55
We recently started performing Carbon or Walnut Blasting. This is a process used on Direct Injected vehicles to clean the carbon build up off of the intake valves. Carbon build up can lead to rough idle, misfire and poor performance issues. This customer commented that his vehicle felt as it did when it was brand new.
E60 545 2004 Engine Oil Leak from Valve Cover Gaskets & Upper Timing Cover Gaskets
This is a 2004 545. It is very common for these vehicles to leak oil from the valve covers & upper timing case covers. The repair can take up to two days to complete.
BMW E46 3 series Oil Engine Sludge
This 2001 BMW 3 series has some sludge in the motor, this is not as bad as other cars I have seen. Change your oil more frequently and you might not have these problems!
BMW E60 2005 530i Coolant Leaking Radiator from the Seam
This 2005 BMW 530i had a small coolant leak for awhile, and the customer finally brought it in for us to inspect. We found that it was leaking from the seam.
BMW Fouled Spark Plugs Causing Misfires
On this BMW 740i, a leaking valve cover gaskets fouled these spark plugs. The car was having misfires and running really bad.
DINAN BMW 3 series E46 Performance Air Filter Cracked
Check out this DINAN BMW Performance Air Intake Kit on a BMW 330i E46 3 SERIES that was cracked at the neck!
Check your intake kits!
BMW M Coupe S54 Motor, same engine as the e46 M3
This engine came out of a 2001 BMW M Coupe, its getting a rebuild to handle up to 800 HP.


text:
- Apps
- Help
- Blog
- Screenshots
- TurnKey Hub
You are here
Qemu + KVM is the future of open source virtualization
Liraz Siri - Mon, 2010/03/29 - 15:28 - 18 comments
Open source virtualization has been evolving dramatically over the last few years. Incumbent proprietary platforms such as VMWare still hold the throne in many areas but open source competitors are gaining ground fast on their way to ubiquity. Things are a-changing in the land of virtualization.
Right now we have three contenders to the (open source) throne battling it out for supremacy:
- Xen: backed by Citrix
- VirtualBox: backed by Oracle/Sun
- KVM: backed by RedHat
Neither Citrix nor Oracle have yet to establish a good track record with regards to open source so I recently took the time to dig a little deeper into KVM and qemu, two projects which I suspect are going to be a huge part of the future of open source virtualization.
KVM: at its essence KVM is just a kernel infrastructure. It's not a product. The developers forked qemu to hook into the KVM kernel infrastructure and take advantage of it. Eventually the fork was merged back into the qemu mainstream.
qemu: powers nearly all Linux virtualization technologies behind the scenes.
Qemu is a spectacular piece of software written largely by Fabrice Bellard, a programming genius who also wrote TCC (tiny c compiler), FFMpeg and many other less famous programs.
Highlights from my findings:
I'm pretty sure KVM is the future of open source virtualization. Not Xen or VirtualBox.
KVM is a latecomer to the virtualization game but its technical approach is superior and many believe it will win out eventually over other virtualization technologies and become the transparent virtualization standard of the future. Personally, I think that's a pretty likely outcome at this point.
The primary advantages going for KVM is simplicity and leverage. By taking advantage of the hardware-level support in new processors, KVM can be many times simpler than competing technologies such as Xen or VMware while achieving equivalent or superior performance.
KVM leverages the Linux kernel in a way that allows its developers to focus their resources more efficiently on actual virtualization related development. The proof is in the pudding. With just a fraction of the resources their competitors have, the KVM team implemented advanced features such as live migration, and SMP support (e.g., up to 255 virtual CPUs regardless of how many CPUs the host has). Even recursive virtualization should be possible (I know patches were written to get it to work).
libvirt: Redhat are spearheading development of a backend-agnostic management layer for virtualization (libvirt).
The fundamental design is pretty good, but for our purposes (I.e., TurnKey development) libvirt and its higher-level friends just get in the way. The really useful parts are the qemu-based primitives, which are easier to use directly than through the libvirt stuff.
qemu supports multiple mechanisms for plugging guest NICs together - via a TCP/UDP port, attaching to a tap/tun device or even plugging into VDE (virtual distributed ethernet), which allows arbitrarily complex virtual network topologies to be constructed that span multiple physical machines. I've played around with a few test configurations and it's pretty neat.
Qemu vs VirtualBox
Though it's hard to tell, VirtualBox was forked from an earlier version of qemu. The main thing VirtualBox added was sophisticated binary recompilation that allowed fast virtualization without requiring support from the underlying hardware. Today most modern PC processors from Intel and AMD have hardware support for virtualization which makes binary recompilation techniques unnecessary. This allows hypervisors such as KVM to achieve the same results using a simpler hardware-enabled approach with superior performance.
VirtualBox also added a user-friendly GUI shell that simplifies setting up virtual machines in a desktop environment.
In general, I was favorably surprised by qemu. If VirtualBox is the notepad of open source virtualization. Qemu is Vim. In other words if you're looking for a swiss-army virtualization knife you can get hacking at, qemu beats VirtualBox many times over.
Random insights:
Qemu has equivalent-better performance with KVM
If your hardware can't support KVM, then performance won't be as good as VirtualBox but if you use the KQEMU kernel acceleration module, it will be acceptable (e.g., on my system 30 seconds with KQEMU to boot lamp vs 20 seconds in KVM node)
Qemu is a better primitive than VirtualBox:
- Good defaults are chosen if you don't specify otherwise
- It's simpler to launch VMs from the cli:
qemu -cdrom appliance.iso # install appliance.iso to test.img qemu-img create /virtdisks/test.img 4G qemu -cdrom appliance.iso -hda /virtdisks/test.img
- Supports launching VMs as detached daemon processes
- Supports VNC graphics mode with optional encryption and authentication
- Easier to script
- Supports a scriptable VM monitor
- Can work without root privileges, unless you want to use tap/tun interfaces
Also, it wouldn't be too complicated to write a wrapper that allows users to safely run qemu + tap/tun without root privileges.
Easy to use default usermode networking
- built-in NAT, dhcp, tftp
- host can be accessed by guest on 10.0.2.2
- supports forwarding host ports to guest (-redir option)
Qemu can boot 64bit guests on a 32bit host using processor emulation. I tried this and it works, though it's pretty slow:
qemu-system-x86_64 -cdrom ./lenny-amd64-standard.iso
Qemu can be configured to allow transparent chrooting into non-native chroots without launching a VM (e.g., chroot into a 64bit debootstrap from a 32bit system)
It's a bit tricky to get it working though as the default Ubuntu package doesn't yet include the Debian patches that enable this very neat trick.
For usage scenarios where cli usage isn't optimal, you can use one of several GUI front-ends written for qemu. I liked qemuctl and qemu-launcher (for different purposes).
turnkey on Proxmox
peerx - Tue, 2010/03/30 - 00:28
I use Turnkey Deki, lamp, joomla, gallery and Core virtualized on a Proxmox host. The Proxmox host is clustered with a second host.
The Turnkey distributions are very easy to install as KVM virtual machines. The GUI of the Proxmox host makes installation and monitoring very easy.
The Proxmox VE is free open source. Web site: http://pve.proxmox.com/wiki/Main_Page
I think Proxmox and Turnkey makes an excellent combination.
Turnkey appliances > proxmox kvm vm's
GarryPB - Wed, 2010/05/12 - 05:44
Interested in your comment 'The Turnkey distributions are very easy to install as KVM virtual machines' just hoping you would have some instructions on howto do this or could point me in the right direction of where to look. I have a few vmware vm's I'd like to try on proxmox - kvm, one been a Turnkey VM. Also, have you tried to convert any to vz containers?
ProxmoxVE is very easy to use
Jeremy Davis - Wed, 2010/05/12 - 14:56
I can say from experience that to install to Proxmox is as easy as using any other GUI driven virtualisation solution (think VirtualBox, VMware, etc). Only difference is that you use a WebUI (from a web browser on a remote machine), rather than using a desktop GUI.
I assume you have ProxmoxVE already installed, but just in case (and for the benifit of others reading this post) there is all the info you should need (including videos) here. This page also includes clear instructions on loading ISOs (KVM) and templates (the term used to describe OpenVZ VM images).
IMO one of the best things about using ProxmoxVE is that not only do you have access to KVM, but you can also use OpenVZ (container virtualisation). I only use KVM for Windows OS virtualisation. Whilst OpenVZ only supports Linux OSs and some of the more advanced features of KVM are also missing, I find it great for maximising hardware use (such as overcommitting RAM - although this is also available if you use the latest ProxmoxVE kernel - but you lose OpenVZ). As I have mentioned elsewhere on this forum I have a TKL fileserver appliance running under OpenVZ on my Proxmox server and it uses about 40MBs RAM usage under load! Try doing that anywhere else! You can make your own OpenVZ templates using the instructions I posted on the TKL wiki here, or another TKL user; xtrac568 has posted some precreated templates, have a look here.
Alternatively, if you're not scared of the CLI and/or you don't yet have ProxmoxVE installed and want to have a play with TKL appliances in KVM have a look at Claes' "recipe" over here. Also applicable if you would like to do it on your ProxmoxVE server via the CLI locally (or via SSH) although I think that somewhat defeats the purpose of Proxmox. I'm also not sure if a KVM VM will show in the Proxmox UI if installed in this fashion? If you try this route I'd be interested to know if the CLI created VMs are automatically populated in the WebUI.
ProxmoxVE easy to use
GarryPB - Sun, 2010/05/16 - 08:57
Hi Jed, thanks for the reply.
I have been using vmware server for around 3yrs to host a radius & accounting server, web hosting server and secondary dns server. I recently upgrade to vmware2 and starting to get tired of reinstall every time linux kernel is changed. On top of this, the fact that vmware2 server console is very flaky in a modem browser (non windows IE) has lead me to research other virtualization software.
After many hrs of reading, I came to the conclusion that OpenVZ would be the first I tested & as I was also looking at KVM - qemu, for any windose OS, Proxmox sounded ideal. When I found the reference here at TKL, I was hoping that TKL appliances could be easily converted to OpenVZ containers, and it appears they can be, specially for those perhaps a little more teckie than me. .
I have been playing with Proxmox for 2 weeks now (when I can find the time) and I can certainly vouch for ProxmoxVE, it covers both OpenVZ & KVM, it then wraps them into a tightly interrogated OS with a purpose modified kernel, all packaged with a convenient and functional web browser management interface. You also need CLI, but that's good too, as I learn more when I use CLI. It would also have to be one of the easiest OS I've ever installed, and is Open Source.
I've also, just recently started looking at the TKL appliances, over my normal server install - base OS - Ubuntu or Debian server & build up to what we require or customer requires. I really like the idea of the TKL appliance, for me, being something that I could quickly deploy, that I know will work, as it has been tried and tested. Plus it could provide uniformity, for when I or my staff are supporting customers.
So far, 4 me, everything is looking promising, TKL - Ubuntu/Debian, Proxmox - Debian base - OpenVZ & KVM. But as I'm a grass roots ISP, since 1997, I mainly provide Internet access and basic web hosting & email. This is a very tight market today, has been for quite a while now, so I'm looking at other services I can offer my clients, that may help keep me in business for -- another 10yrs
My biggest problem is: I'm a sports fanatic, I compete in IM Triathlons, Cycling & Adventure racing, and this has meant I have never devoted the time, that I would need, to become more IT proficient. So I'm always looking for things that will make my job easier.
Cheers Garry
From a "Novice" view-point
Srivathsan M - Tue, 2010/03/30 - 05:56
I really don't care if a software is open-source or not. All I do care is it should be legally free to use. I had played with KVM on Ubuntu 8.04 while I was able to install and run my guest OSes, I really felt the the user experience bit cumbersome and nerdy
Contrast that with VirtualBox 3.1.x and the latest VMWare Player 3.0.x; I could get my guest OS up in a jiffy. With QEMU+KVM combo, I had to struggle a bit to get my Windows XP guest up and running and also there was an issue with specifying RAM available to the guest as 512MB exactly. I didn't have any such hassles with VirtualBox - almost everything was out-of-the box
I should also admit that my KVM + QEMU experience is atleast 1.5 years back after which I hadn't tried that. So, there could have been improvements.
While I agree with you that technical superiority is important, user experience, especially that of the novice user is also equally important. Otherwise, we have another OS/2 in the making.
Qemu's new slogan: "Qemu --
Craig - Sun, 2013/02/03 - 10:22
Qemu's new slogan: "Qemu -- it's not for retards".
Some precisions
Thomas Goirand - Fri, 2010/04/09 - 00:52
Just one thing. When you wrote:
- Xen: backed by Citrix
- VirtualBox: backed by Oracle/Sun
- KVM: backed by RedHat
it's not really fair. Xen is backed by: Intel, AMD, Oracle, Samsung, Fujitsu at least (the last Xen submit was at Intel Shanghai, the next one will be at AMD in USA). For example, Intel engineers have developped special drivers for the new type of hardware supported network I/O.
Also, Xen does use Qemu when using hardware emulation (for anything that is not Linux, OpenSolaris or NetBSD). To be exact, it uses the hardware device emulation of it. Many of the Xen patches to Qemu went back to the upstream authors of Qemu also.
There's support for nested virtualization in Xen (what you call here "recursive" virtualization). There's even some optimization that have been made. You can see this in the last Xen Summit conference here: http://www.xen.org/xensummit/xensummit_fall_2009.html
Xen is now in sync with the kernel from kernel.org (everyone is moving to use the pv_ops tree that Jeremy maintains). There's a good hope that Linux from kernel.org will be dom0 capable soon. Finally, KVM and Xen are really similar internally, using the same functions in the Linux kernel (as Linus and others insist on the fact that having 2 APIs doing the same thing is a bad idea). I believe both KVM and Xen are going to continue being there for a very long time and compete in the market of virtualization, Xen continuing to lead on the server side.
All this being said, I respect your point of view that KVM will be the future (many people said the same), but it's not my view on it.
CPU Clustering
Evan - Wed, 2011/09/28 - 17:34
Can someone please tell me if there is a way on proxmox to share resources between machines? I've been digging all over and can't seem to find a straight answer.
Perhaps a question better for the Proxmox forums or mailing list
Jeremy Davis - Thu, 2011/09/29 - 02:05
Although I will give you some sort of answer... TBH I'm not completely clear exactly what you are asking though. Do you mean can PVE clusters share resources one hardware node to another? If so, AFAIK the answer is no. I'm fairly sure that each hardware node is basically independant, but VMs can be migrated from node to node very easily and with no downtime.
Having said that I'm no technical PVE expert. As I said I suggest you ask on the PVE forums or mailing list. The devs are pretty active on both, as well as there being a heap of pretty intellegent and knowledgable users.
turnkeylinux template for virtualbox
xen - Fri, 2014/04/18 - 18:58
Do you provide template for virtualbox?
Kind regards
You can use the default VM build
Jeremy Davis - Sat, 2014/04/19 - 09:55
And I have also successfully used the OVF build in VirtualBox as well. Obviously installing from ISO is another option...
NFS Storage pool Error
G Raju - Sun, 2014/05/18 - 09:56
I have installed KVm and installed some windows and linux vm's locally
but when i am crateing nfs storage pool i am getting this error..
Error creating pool: Could not build storage pool: cannot create path '/mnt/nfs': Unknown error 18446744073709551615
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 44, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/createpool.py", line 480, in _async_pool_create
poolobj = self._pool.install(create=True, meter=meter, build=build)
File "/usr/lib/python2.6/site-packages/virtinst/Storage.py", line 489, in install
raise RuntimeError(errmsg)
RuntimeError: Could not build storage pool: cannot create path '/mnt/nfs': Unknown error 18446744073709551615
help me to come out from this problem..?
i will be waiting for your response......
Gluster storage pool Error...
G Raju - Sun, 2014/05/18 - 10:01
i am getting this error while importing vm from local drive to gluster voume...
Unable to complete install: 'internal error process exited while connecting to monitor: char device redirected to /dev/pts/1
qemu-kvm: -drive file=/mnt/rvol/RHEL_VM_Test.img,if=none,id=drive-virtio-disk0,format=raw,cache=none: could not open disk image /mnt/rvol/RHEL_VM_Test.img: Permission denied
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 44, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/create.py", line 1910, in do_install
guest.start_install(False, meter=meter)
File "/usr/lib/python2.6/site-packages/virtinst/Guest.py", line 1223, in start_install
File "/usr/lib/python2.6/site-packages/virtinst/Guest.py", line 1291, in _create_guest
dom = self.conn.createLinux(start_xml or final_xml, 0)
File "/usr/lib64/python2.6/site-packages/libvirt.py", line 2622, in createLinux
if ret is None:raise libvirtError('virDomainCreateLinux() failed', conn=self)
libvirtError: internal error process exited while connecting to monitor: char device redirected to /dev/pts/1
qemu-kvm: -drive file=/mnt/rvol/RHEL_VM_Test.img,if=none,id=drive-virtio-disk0,format=raw,cache=none: could not open disk image /mnt/rvol/RHEL_VM_Test.img: Permission denied
help me to come out from this problem..?
i will be waiting for your response......
Probably unlikely to get an answer here
Jeremy Davis - Mon, 2014/05/19 - 00:30
This is the TurnKey Linux forums and other than this blog post, it's unlikely that you'll be able to get any help on your issues here. I suggest posting somewhere else more directly relevant...
QEMU w/ KVM is insane.
Wyatt Ward - Tue, 2016/02/09 - 05:27
For years I'd been trying to get a virtualised Darwin kernel running (the underpinnings of OS X) - virtualbox would always fail at some point in the process, but I was finally today able to get qemu to do it amazingly smoothly. QEMU's my new favorite!


text:
Under the direction of Dr. Jessica Sternfeld, the Bachelor of Arts in Music at Chapman University is designed to give students a solid foundation in the major styles and trends of Western music from Ancient Greece to the present and to prepare the undergraduate student to investigate a wide range of research topics in musicology, ethnomusicology, and related fields. Students gain insight into music's historical and cultural contexts through a series of courses ranging from the introductory level through four upper-division courses that explore the chronological style periods of music, to the advanced study of individual topics in the music history seminar.
Getting Started
To begin your application process, please visit the Admissions web page to complete the Common Application for Chapman University. Please note in your application that you intend to major in Bachelor of Arts in Music.
All students auditioning for acceptance into the Bachelor of Arts in Music should visit the Hall-Musco Conservatory of Music website for a detailed listing of audition requirements. To schedule an in-person audition appointment, please complete your Creative Supplement at go.chapman.edu/apply. Additionally, please indicate whether or not you will require an accompanist at your audition.


text:
Images Powered by Ice Portal
Rain is rare, and what little falls is most likely to come down in spring and fall (April, May, October and November). Unlike in nearby Avila and Segovia, on the other side of the protective Guadarrama mountain range, snow in the capital itself is very unusual, but it can happen.
Ad unit code goes here
Here is an example


text:
News Release
Contact: Nancy Ambrosiano, (505) 667-0471, email@example.com
Neutron Reactions and Climate Uncertainties Earn Los Alamos Scientists DOE Early Career Awards
LOS ALAMOS, N.M., May 10, 2013—Two Los Alamos National Laboratory researchers are among the 61 national recipients of the Energy Department's Early Career Research Program awards for 2013.
Marian Jandel won for his proposal, "New Data on Neutron Reactions Relevant to Basic and Applied Science," selected by the Office of Nuclear Physics.
Nathan M. Urban will be supported for his work on "Beyond the Black Box: Combining System and Model Dynamics to Learn About Climate Uncertainties," selected by the Office of Biological & Environmental Research.
The Early Career Research Program, now in its fourth year, is designed to bolster the nation's scientific workforce by providing support to exceptional researchers during the crucial early career years, when many scientists do their most formative work.
"The Early Career Research Program reflects the Administration's strong commitment to creating jobs and new industries through scientific innovation," said Acting Energy Secretary Poneman. "Strong support of scientists early in their careers is crucial to sustaining America's scientific workforce and assuring U.S. leadership in discovery and innovation for many years to come."
"Marian and Nathan are excellent examples of the intellectual vitality here at Los Alamos," said Director Charlie McMillan. "The early career awards are a great honor for them and the Laboratory. I congratulate them both and look forward to seeing results of their research."
Under the program, researchers based at the Department's national laboratories will get $500,000 per year to cover year-round salary plus research expenses. The funding is for the first year of planned five-year research grants, subject to congressional appropriations.
About the winners
Marian Jandel received a doctorate in nuclear physics in 2003 from Comenius University, Bratislava, Slovakia. During his PhD he was a visiting scientist at Flerov Laboratory of Nuclear Reactions, JINR, Dubna, Russia, where he studied ternary fission and heavy ion fusion-fission nuclear reactions leading to superheavy elements. He then became a post-doc at the Cyclotron Institute, Texas A&M University, where he was involved in the research of nuclear reaction mechanisms at intermediate energies and radioactive ion beam production.
Jandel joined LANL in 2006 as a post-doctoral researcher and became a staff scientist in 2009. His research has been focusing on precise measurements of neutron-induced fission and radiative capture, using the Detector for Advanced neutron Capture Experiments (DANCE) and Lead Slowing Down Spectrometer (LSDS) at LANSCE. In 2007, he received a LANL distinguished performance award as a member of the National Technical Nuclear Forensics Simulation Team. In 2012, he was recognized by the Los Alamos Chemistry Division for the development of a new technology (patent pending) for large-area neutron detectors.
Nathan Urban received his Ph.D. in computational condensed matter physics in 2006 from the Pennsylvania State University. He changed his research focus to climate prediction and uncertainty quantification with postdoctoral appointments in geosciences at Penn State and public and international affairs at Princeton University. He joined Los Alamos in December 2011 in the Energy Security Center (Institutes Office), and now resides in Computational Physics and Methods.
As the laboratory's first Energy Security Fellow, his activities at Los Alamos bridge physical science, computational modeling, statistics, decision making and policy. His current research areas include quantifying uncertainty in climate feedbacks, ice sheet dynamics, sea level rise, and forecasting ocean climate variability, as well as decision making under uncertainty and learning. He is also involved in coordinating laboratory planning and initiatives related to energy-climate impacts.
About the Awards
Awardees were selected from a pool of 770 university- and national laboratory-based applicants. To be eligible for the award, a researcher must be an untenured, tenure-track assistant or associate professor at a U.S. academic institution or a full-time employee at a national laboratory who has received a Ph.D. within the past ten years. Research topics are required to fall within one of the Energy Department's Office of Science's six major focus areas:
See the full list of recipients at the DOE Office of Science site.
Photo caption: Marian Jandel (left) and Nathan Urban


text:
Search Menu Page
Caffe Mocha IDR 50,000
Espresso with bittersweet mocha sauce and steamed milk, topped with sweetened whipped cream. Delightful.
Caffe Latte IDR 42,000
Rich, full-bodied espresso in steamed milk, lightly topped with foam. A caffè latte is simply a shot or two of bold, tasty espresso with fresh, sweet steamed milk over it.
Cappuccino IDR 42,000
Espresso with steamed milk, topped with a deep layer of foam.
Asian Dolce Latte IDR 50,000
Double-shots of the premium, dark-roasted Starbucks Espresso Roast, combine with the uniquely developed dolce sauce.
Caramel Macchiato IDR 54,000
Sometimes a touch is just enough. And so it is with the slight dab of foam we set atop our signature espresso in this classic European-style beverage.
Double Shots Iced Shaken Espresso (10 Oz) IDR 46,000
Two fresh shots of espresso, hand shaken with classic syrup and ice, finished with low fat milk mixed with sweetened whipped cream.
Spaghetti N' Cheez + Ovaltine + Toy
O.R. Burger + Pompom + Ovaltine + Toy
1 Pc Ayam + Nasi + Ovaltine + Toy


text:
Professional Community for Car Dealers, Marketing, Advertising and Sales Leaders
Your dealerships online reputation can literally make or break your business success. Why's that? Because, statistically speaking, around 90 percent of all consumers use the Internet to research businesses when they are looking for a product or service.
Your online reputation will determine whether those consumers choose you or one of your competitors. You can also be sure that if you do not manage your online reputation, it will be managed by other people, who will inevitably post reviews, comment on your business in forums and social media sites, publish blog write-ups concerning your business, and more. For this reason, you need to do everything you can to ensure that what people see when they find your business online is as positive as possible. How do you do that? Here are three helpful tips to make sure your online reputation is protected:
Online reputation marketing is a complex process, but it is also tantamount to your business success. To make the most of your online reputation, you may want to enlist the help of qualified and competent professionals like us, Prime Automotive Marketing. We can be reached by phone, at 401-528-7850, or by email: firstname.lastname@example.com
Rick Mosca
Founder & CEO Prime Automotive Marketing
Views: 625
Nice article, Rick!
If a site is valuable to consumer users of Google's search engine, then Google will ensure prominent placement of that site in their SERP.
Yes Ralph, another reason to use Google+, control the web equity show in the right hand part of SERPs. Tell Google about your website and offering. Push photos, videos, etc. through it.
I see a ton of dealers missing out on this aspect and have educated most of our clients in using it. They get it once they see how powerful it is and how it can be utilized.
Google+ is obvious an outlet, not only for social interaction, but for controlling your reviews as well (sorry if I failed to mention it). I use a tool called SocialDealer in order to control all of my social posts and reputation monitoring. Geared specifically towards Auto Dealers and their needs (owned by Castle Auto Group).
Sure thing David. I'll get on it first thing in the morning.
I hate to be cryptic, but there is this large industry event in a few weeks that garners a lot of attention for new products and BIG NEWS.
@ Tim Mahan,
You said: Alexander mentions DealerRater. That's fine but how many people go there or have even heard of them?
Please don't be offended, but I can tell by your responses here that you'd be surprised. You've made an assumption based on your experience that honestly doesn't reflect reality. I can't let the cat out of the bag on the complete dataset, but I'll be sure to post more of the numbers when they are public. Here is what I can share with you at this time:
In Nov of 2012 there were 1.14 million cars sold. During that same period of time there were 1.4 million unique views of DealerRater review content through various distribution channels.
We recently commissioned a blind sampling of 3500 dealers nationwide to look at review counts and penetration of reviews on the most notable third party review sites. This sampling was done after August's scrub of Google reviews. The data was interesting to say the least. Google, Cars.com, YELP, Edmunds and Yahoo! Local combined for 74k reviews for this sampling of 3500 dealers. For the same set of dealers DealerRater had 79k indexed reviews.
By way of illustration, I bought my wife an expensive camera for Christmas. I am no photographer and relied extensively on consumer reviews to choose the right make and model. If you offered to reimburse me for the purchase, I could not name 3/4 of the niche sites that strongly influenced my purchase. It is tremendously flawed to assume that branded recall of a niche site equals purchase influence. There were 286k more unique views of our content than total cars sold in Nov.
Ralph, I saw Richard Bustillo from Rick Case Honda at AutoCon 2012 and was very impressed. Although I didn't agree with everything he said (I never do), I saw someone who was not too proud to say he had been blind, but now sees the light. I loved it. He has done amazing things for his store. I believe he would agree not to put all your dough on one horse.
Tim and Tom, thank you for a good discussion on dealership reviews... I featured a video from the Cobalt/ADP Team on Friday primarily because it is the first time I have seen an organization as strict about their research data based recommendations to car dealers make a statement supportive of a Reputation Management strategy I have been using with dealers for several years. That is, when it comes to encouraging customers to write and post reviews, you want to make it easy for the customer to post to whichever review site they feel comfortable with... HOWEVER, the smart dealer will have created a review and ratings site that the dealer has full control over.
Since day 1 for Google Reviews I have frequently said that the one thing we can always count on Google for is to change their algorithms, products, policies and guidelines... They have consistently, since 2000, changed the way anything that is shown to their search engine user appears over and over and over again. For a dealer to rely on Google as the primary review site they recommend to customers is ludicrous! It has been and has not changed, just more and more people are finally waking up to the reality that Google, more than any other online customer review resource is likely to change the way they display, or do not display customer reviews as an ongoing continuous improvement process... And, Google is seeking improvements that are most certainly NOT intended for the car dealer, but rather these changes are intended to improve their search engine user's experience.
I enjoy using many Google products and find them to be highly useful and effective, but one thing I have learned since I started working with Google over ten years ago... If you are not paying for it (and sometimes even when you are) you do not want to create a process or strategy that is dependent upon Google NOT CHANGING that application or web based resource. Heck, in general, unless a dealer has a PAID LICENSE or some form of fee based ownership, you do not want to place high value assets (such as reviews) in that application as part of your marketing strategy.
Encouraging customers to post reviews while they are in your dealership is reasonable and practical if you are providing them with an easy to use means of posting their reviews to a site the dealership owns or licenses (controls). Asking customers to post reviews while completing a customer experience survey is a business best practice. When those reviews appear on a dealership's website, Facebook Page, Blog site, etc. then that is a great way to get them indexed by Google and ensure maximum eyeballs are on them. I like both PrestoReviews and BusinessRater as tools designed to provide dealership customers with a review site that is independent of the dealer's own website, but which the dealer has licensed and controls. Plus, both dealer review site suppliers encourage "Point Of Sales" Customer Reviews as being the most accurate and timely... Which they are. The benefits of being able to resolve a customer concern issue before the customer leaves the dealership is, in fact, a competitive advantage for dealers who implement such a process over those that do not. Why not ask customers to evaluate and document their experience while it is still freshest in their minds? All the research in this area shows that the highest percentage of reviews per customers served, and the most accurate reviews are when customers are encouraged and supplied with the means of posting them as soon as possible after the goods or services are received... Including new and used cars, as well as repairs and maintenance.
As for Tim's point about the way customers use the Google Search Engine, there is no doubt that Google is the primary tool used by car buyers to find information about car dealers and the vehicles they may be interested in buying... However, Customer Review sites other than Google appear prominently in the SERP for dealership branded search queries, as they should...
If a site is valuable to consumer users of Google's search engine, then Google will ensure prominent placement of that site in their SERP.
Last August my friends at Rick case Honda in Davie Florida started taking control of their reputation management and switched from encouraging customers to post reviews to DealerRater, Google and Yelp after they left the dealership, to asking customers to complete a customer survey and rate their experience at the dealership using the dealership's new BusinessRater.com review site and account. They have since generated well over a thousand customer reviews and the Google SERP results for "Rick Case Honda Reviews" for Davie, FL Google users are shown in this screen capture from a few minutes ago:
Tim, I got your point about Google but it felt as if you were dismissing other review sites as irrelevant. I don't believe that is true. Since Google changed their review requirements, more of our customers are choosing other places such as DealerRater to write their reviews.
I have never referred customers to Yelp, for example. I would simply say, "If you are a Yelper, please write a review." Now I am doing the same with Google+. I don't ask people to sign up for either one in order to write a review. It's futile. Am I wrong?
© 2020 Created by Ralph Paglia. Powered by


text:
Big Splash for the IYC Global Water Experiment
On the United Nation's World Water Day, 22 March 2011, UNESCO and IUPAC launched the International Year of Chemistry (IYC) Global Experiment: "Water: A Chemical Solution." The event occurred at Ratanga Junction, Cape Town, from 22–25 March 2011 and was organized in collaboration with the City of Cape Town Municipality.
The IYC Global Experiment, entitled "Water: A Chemical Solution," consists of four component activities: pH measurement, salinity measurement, filtration/disinfection, and desalination. Each can be carried out by children of all ages in schools around the world and no special equipment is needed (all experiments can be done with laboratory equipment at schools). The activities are adaptable to the skills and interests of students of various ages and use equipment that is widely available.
The theme for the UN World Water Day 2011 was "Water for Cities: Responding to the Urban Challenge." During the Big Splash, which coincided with the South African National Water Week, students were exposed to different activities that emphasized the importance of water in their city, Cape Town. Pupils from different schools in Cape Town (areas such as Langa, Khayelitsha, and Hout Bay) were first exposed to the difficulties of obtaining water from a standpipe in Khayelitsha (an informal settlement). This activity taught the students the hardships faced daily by people in informal settlements as well as how they cope. They were then transported to Ratanga Junction where they watched a play, performed by the Jungle Theatre, that dealt with the importance of conserving and preserving local water supplies.
Next, the students conducted two of the four experiments for the IYC Global Experiment under the expert supervision of Erica Steenberg from RADMASTE Centre, University of Witswatersrand, and three volunteers. The participating pupils enthusiastically found the pH of a sample of water from Intaka Island (a wetland in Cape Town) and then filtered and purified the water. This was the first chemistry experiment that most of the pupils had ever carried out and their excitement at completing the exercise and obtaining the results was delightful to witness. Their total engagement in the experiment was evident in the many questions that they asked.
The Department of Science and Technology in South Africa generously donated IYC Global Experiment kits to the schools that attended the Big Splash. In a brief opening ceremony on 22 March 2011, presided over by UNESCO, the Deputy Minister of Science and Technology, Derek Hanekom, presented the schools with their kits for the IYC Global Experiment. Sasol also sponsored the event and provided the students with caps.
A short film of the activities has been posted on YouTube <www.youtube.com/watch?v=r4gS9bep8Tc>.
photos © Rovani Sigamoney/UNESCO
Rovani Sigamoney <email@example.com> is the IYC Focal Point at UNESCO.
Page last modified 6 May 2011.
Copyright © 2003-2011 International Union of Pure and Applied Chemistry.
Questions regarding the website, please contact firstname.lastname@example.com


text:
Posts tagged with 'urban repositioning'
Stay up to Date
Follow on Twitter
Share on Facebook
What You're Saying
Heema Siyodia
"It's not that people have a disability. It's that society disables people". Catch Debra Ruh, founder of TecAccess share her views on why...
In Photos: Raahgiri Day Making A Difference for Youth with Disabilities · one week ago
In most of areas, the power grid is not "anemic". But even where it is, because most EV charging occurs at night when grid power use is otherwise low,...
Do Hydrogen Fuel Cell Vehicles Make Sense for Cities? · one week ago
Yash Kishor Sonar
Shame on BMC that a philanthropist organisation needed to take initiative for road redevelopment and people safety.
It's not a rocket science to...
Redesigning One of Mumbai's Most Dangerous Intersections in 3 Simple Steps · 2 weeks ago
- Heema Siyodia "It's not that people have a disability. It's that society disables people". Catch Debra Ruh, founder of TecAccess share her views on why...
- C40 Cities
- CEOs for Cities
- Citiscope
- CityLab
- CityTalk
- CityTalk USA (ICLEI)
- Cooltown Studios
- Future Cape Town
- Gehl Live (Gehl Architects)
- Insights (World Resources Institute)
- Next City
- Places Wire
- Planetizen
- Project for Public Spaces
- Shareable: Cities
- Smart Cities Dive
- Sustainable Cities (World Bank)
- The Dirt (American Society of Landscape Architects)
- The Guardian Cities
- The Transport Politic
- TheCityFix Brasil
- TheCityFix Mexico
- TheCityFix Turkiye
- Transport for Development (World Bank)
- Treehugger
- Velo Mondial
- WRI Ross Center for Sustainable Cities


text:
- Inside Athletics
- Tickets
- Fan Zone
- Media Zone
- Social
- Shop
- Donate Now
ASHEVILLE, N.C. (Oct. 20, 2009) - The ETSU volleyball team snapped a four-game losing streak Tuesday night as the Bucs defeated UNC Asheville at the Justice Center in Asheville, N.C., 3-2 (20-25, 25-18, 26-24, 23-25, 15-12).
"It was an entire team effort from the court players to the bench," said head coach Lindsey Devine. "Everyone should be proud of their contribution to this win. This win was a good confidence builder as we head into the weekend."
The Bucs had three players post double-doubles including Whitney Cogburn (
McKayla Barber (
ETSU jumped out to a 6-2 lead in the first set. The Bulldogs answered with an 8-4 run to even the set at 10-all. Both teams battled back and forth for the lead until UNCA went on a 4-1 run to take a 20-17 lead. UNC Asheville held on to win the set 25-20 on a Holly Shelton kill to take a 1-0 advantage in the match.
The Bucs rallied to tie the match at 1-all in the second set. Play was tight early in the set with as there were six ties and two lead changes, but the Buccaneers went on a 6-2 run to go in front 13-9 and didn't relinquish the lead in the set. ETSU won the set 25-18 on a UNCA attack error.
After ten ties to start the third set, the Bucs used a 6-3 run to go in front 17-14. ETSU increased its lead to 22-16 after a huge block by Dyck and Long, but the Bulldogs battled back to even the score at 24-24 after an 8-2 run. ETSU held on to win the set taking the next two points on kills by Dyck and Barber to go ahead 2-1 in the match.
The fourth set saw UNCA go in front early extending its lead to 17-11 after a 7-3 run. The Bucs came all the way back to tie the match at 21-all after a 10-4 run. ETSU evened the set twice more, but the Bulldogs got the last two points on a Buccaneer service error and a Rachel Guinane kill to even the match at 2-all.
In the final set, the Bucs went ahead 4-2 early after losing the first two points of the set. ETSU held onto the lead throughout the rest of the set as the Bucs won the match on Jen Neice (
The Bucs (7-14, 5-7 A-Sun) are back in action on Friday at 7 p.m. as they host conference rival Mercer in Brooks Gym. For more information on Buccaneer volleyball and all other Buccaneer athletic news, please visit www.ETSUBucs.com.


text:
Hire Purchase could help you buy your dream Mitsubishi whilst spreading the cost. Agree an initial deposit, agreement term and monthly payment, and, subject to your application being approved, you can just drive it away. After you've made all the payments, including interest, the vehicle is all yours.HP Explained Finance Calculator
Flexible deposit options – 0% deposit may be available subject to status
Balance (plus fixed interest) pay over a chosen period 1 - 5 years in equal monthly payments
At the end of your chosen period you can renew, retain or return


text:
Blair Better Be Lying About Who The Father Of Her Baby Is On 'Gossip Girl' And Here's Why!
Blair needs to forget about this Prince of Monaco madness! Her true king lies on the Upper East Side — not a French countryside.
On the Oct. 10th episode of Gossip Girl, Blair Waldorf (Leighton Meester) revealed the father of her baby is her fiance Prince Louis (Hugo Becker). Many Chair supporters — including myself — were hopeful the father would be Chuck Bass (Ed Westwick). But to our surprise, the baby is Blair's husband-to-be. My heart is still aching from the devastating news!
The moment Blair walked into Chuck's apartment — I was sure she was going to tell him she is pregnant with HIS baby! But instead she broke his heart — telling him she's pregnant and the father is Prince Louis. My jaw dropped and my heart sank to the floor — as I'm sure all of yours did too, Chair fans.
Blair went on to say how she didn't want Chuck to find out from anybody else and worry that the baby was his. Fair enough — I get that. Considering their past, it was only respectful of her to be the first one to tell him. But the most heart-wrenching part of it all was when Blair admitted she wanted it to be Chuck's!
"There was a part of me that really wanted it to be yours," she told Chuck, as a tear streamed down his face. She even admitted that her royal fairytale wasn't all a bed of roses. "This fairytale is complicated," she said to Chuck. Finally the truth — because we all know Blair still has feelings for Chuck!
It was definitely one of the most emotional Chuck and Blair scenes we've seen in all five seasons of Gossip Girl.
The two have had a tumultuous relationship with many ups and downs, but it's like Blair once said: "People don't write sonnets about being compatible. Or novels about shared life goals and stimulating conversation. The great loves are the crazy ones. L'amour fou."
Blair Waldorf needs to live by her own words. Her relationship with Louis is comfortable, while her relationship with Chuck is crazy –which is WHY she better be lying about Louis being the father!
There are many signs that we can hold on to which point to Blair's dishonesty. For example, the name of the episode being "The Jewel of Denial," the fact that we HAVEN'T actually seen the paternity test results yet, AND that Blair awkwardly hid the envelope after telling Louis.
If we know one thing true about Gossip Girl, it's that she's always full of surprises. There's no way she would let us down and spill the father of Blair's baby in episode THREE! There's just NO WAY.
I'm still hopeful the father is Chuck and their love will reignite by the end of this season.
What do you think, Hollywoodlifers? Are you hoping Blair is lying about who the father of her baby is? Vote and sound off in your comments below.


text:
That word: Charles Wright limns a winner
Limn– that pretentious word that so troubled the Hook that we once asked each of our writers to use it. Now we see it used by a Pulitzer Prize-winning poet.
"Snake Eyes," Charles Wright's poem in the February 17 & 24 issue of the esteemed New Yorker, begins like this: The afternoon clouds are like a Xerox of the morning clouds/An indecipherable transcript, ill-litanied, ill-limned.
Could the Hook's limn-riddled June 27, 2002, issue have influenced Wright?
"I must say I didn't see that issue," Wright responds.
Then where did he get the word? "It just sort of came to me in a dream," he says. "I've never used it before. I know because I looked it up."
Limn simply means "to describe," and unscientific research indicates that while limn has apparently never occurred in any human conversation, it has a devious tendency to infect artistic writing.
Many readers denounced the Hook's limn experiment. Lisa Pfaffinger called it an "inside joke," another threatened to tear us "limn from limn," and a group of waitresses from Miller's fretted that "rectum" might next appear in every piece. Someone even accused us of insider-trading in limn options. (Fortunately, our self-esteem rebounded with Catherine Potter's letter lauding the Hook as a "smart paper.")
So the Hook didn't influence Wright's poem? Wait– he's changing his mind.
"Let's say you did," he relents. "You can have it."
Nooooooooo.Read more on: charles wright


text:
May 2013 be as good as 2012! That's what I find myself thinking as I feel surrounded by people who are already worried about the next big bad thing, this time the debt-ceiling fight.
I like to take a moment to smell the roses, because they smell pretty darned good, and it is easy to go right past them without an ounce of thought.
I am not advocating wearing rose-colored glasses. I am simply saying that there are some roses out there.
My job is to try to help you make money. I may not always be right, but I know there is an opportunistic, optimistic way to make money, embracing skepticism and reality, and there is an unrealistic way to not make money, which is to be continually cynical, offering a corrosive mindset dedicated to the proposition that there are no roses to begin with, just thorns, thorns that are endlessly in your way. Maybe it's because in my spare time I like to garden more than just about any other hobby, but the rose of an S&P 500 that's up 16%, as it was in 2012, a rose that keeps capital gains and dividend taxes lower than I would have ever expected, a rose that allows the middle class to stay ensconced in lower rates until this economy really recovers, must be noticed and, yes celebrated.
I start this year somewhat dazzled by events. A week ago, I was worried that tax rates could go up for everyone, that you would barely be compensated for owning higher-yielding stocks than for owning Treasuries, and that we would have a meat ax put to government spending. Going over the cliff worried me and gave me pause about 2013, as I trust it did for you.
Even yesterday, when I heard that Eric Cantor, the majority leader of the House, was going to try to scuttle a hard-fought deal that was overwhelmingly approved in the House, I took pause about what could happen even this morning.
But Cantor, a sure candidate for the Wall of Shame if that kept up, backed down, and we got a deal that everyone dislikes, which is the essence of what it means to rise above politics.
Now, what makes me reluctant to be as concerned as others are right now about the pending vitriolic battle over the debt ceiling?
First, I know there are plenty of other people who can worry about it, so I don't have to do it. I worry about what very few are worried about, not what every other talking head -- and I acknowledge I am one -- is fretting over, because problems that are thought about in advance have a way to be resolved.
Second, I was far more concerned about what individual tax rates would be than I am about the coming battle about spending. I want to see Social Security ages pushed back for people in their 30s, and I want to see people pay more for Medicare, and I want to see some creative ways to raise money, including a tax on goods that come from polluting countries that dump their goods here. But all of these are secondary to the big cliff we just avoided. And I suspect the president might invoke the 14th Amendment to ignore the debt-ceiling limit and argue that the federal government's bills must be paid. There is a strong constitutional argument in favor of this stance, even as I want to see spending reined in very badly.
Third, I keep thinking what has happened each time we have been blinded by Washington, and it is definitely a blinding influence. We miss what is happening around the globe, which is a first-class recovery and a rather remarkable one at that, something that my Action Alerts PLUS charitable trust, which beat the S&P this year, has been investing in.
We miss the wave of mergers and acquisitions that I now believe can happen with the cliff avoidance. Don't you wish you owned the rental car companies today, as pricing just got even better now that Avis Budget Group (CAR) bought lowly Zipcar (ZIP) for $500 million?
We miss the big-bank stock rally that dominated the fourth quarter and is continuing today, with worst-to-first names like Citigroup (C) and Bank of America (BAC) charging ever higher, even as they are so far behind the market that they could go up very big from here without stretched valuations.
We miss the continuing improvement in housing and the housing-related stocks, one that won't be derailed by a rancorous debt-ceiling debate and will stay stoked by low rates and affordability, augmented by a gigantic rebuild in the Northeast.
We miss the steep recovery rally in tech with everything from Apple (AAPL) to Facebook (FB) on the move, the former because tax-gain selling is over and the latter because numbers may be too low and at last the promise could be realized because of the newfound embrace of mobile opportunities.
We fail to capitalize on what might just be an increase in small businesses now that the cliff cloud has cleared. I keep thinking about the words of Marty Mucci, keeper of the tax bills for so many as CEO of Paychex (PAYX), that if we just got some certainty, then people will begin to start new businesses again at a pace that used to be rather natural. Well, we have that new level of certainty.
Finally, I keep thinking that there really was a small minority that held our nation hostage in the end, as only 167 members of the House did rebel against a compromise, while 257 were in favor of the compromise. Couldn't the same thing happen again with the debt-ceiling wrangling? Do you sell those dividend stocks again, dump those master limited partnership stocks, the Enterprise Products Partners (EPD) and the Kinder Morgan Energy Partners (KMP) that you never should have anyway? Is that the takeaway of the rose garden that sprang from the thorns of the debate?
Throughout my 33 years in the stock market, I have always taken heed of the skeptics but have blocked out the cynics. I have done so because the Dow Jones Industrial Average was 12,000 points lower, and empirically it was the right call. As you know, when I think we are going to take a gigantic hit, as I thought we would in 2008, I am willing to shout it from the rooftops, finding a creative way to get people out of a crowded theater that was certainly on fire, only to bring them back in when the fire was out.
But there's no fire in sight now. Just a smokescreen from Washington that will again keep people from realizing what gains this year can produce.
Sorry, can't play that game. Will let others play it. Too busy. Too busy trying to find the next super stocks that are out there, the next undervalued break-up plays, the next regional to national and international investments, the next opportunities that present themselves only to those who are not blinded by the smoke from a distant Washington fire.


text:
to charliealsheimer.com, the official website of outdoor writer and photographer
Charles J. Alsheimer. Charlie's spectacular photos of the whitetail deer are featured
regularly in America's leading outdoor publications, and his informative articles
on deer behavior and hunting strategies have earned both critical and popular
acclaim. In 2000, a national survey sponsored by Deer and Deer Hunting magazine
named him one of deer hunting's top five inspirational leaders of the twentieth
century, along with bowhunting legend Fred Bear, conservationist Aldo Leopold,
President Theodore Roosevelt, and camouflage pioneer Bill Jordan.
purpose of this website is to provide information on Charlie Alsheimer and his
work. A profile of his life and career is available in the Biography
section, and samples of his wildlife images can be viewed in the Photography
area. Hunters will enjoy the insights and anecdotes in the Deer
Hunting section, as well as the Articles page
featuring several of Charlie's most popular magazine stories. If you'd like more
information on his seminars and multimedia presentations, check out the Speaking
area. Also, don't forget to stop by the Store. It's the
only place on the Internet where autographed copies of Charlie's books and posters
are available for purchase. Enjoy your visit and come back soon!
for Photographic Assets: All images contained within this web site are the
exclusive property of Charles J. Alsheimer. No part of these images may be reproduced,
stored in a retrieval system or transmitted in any form or by any means without
expressed written permission from Charles J. Alsheimer or his agent.


text:
The 16" Silver Sport 2 Wheelchair with Fixed Arms and Swing Away Footrests by Drive Medical comes in an attractive, easy to maintain, powder coated, silver vein finish, and a steel frame for durability. The urethane tires are mounted on composite wheels to provide durability and a smooth ride over most surfaces. The embossed, nylon upholstery is durable, lightweight, attractive and easy to clean. The carry pocket on the backrest provides an easy and safe way to transport personal items. Comes standard with swing away footrests, padded fixed arms, push to lock brakes and plastic footplates.Features and Benefits
Proposition 65 Warning: This product contains a chemical known to the State of California to cause cancer, birth defects, or other reproductive harm.