| 1 | /* =========================================================== | |
| 2 | * JFreeChart : a free chart library for the Java(tm) platform | |
| 3 | * =========================================================== | |
| 4 | * | |
| 5 | * (C) Copyright 2000-2008, by Object Refinery Limited and Contributors. | |
| 6 | * | |
| 7 | * Project Info: http://www.jfree.org/jfreechart/index.html | |
| 8 | * | |
| 9 | * This library is free software; you can redistribute it and/or modify it | |
| 10 | * under the terms of the GNU Lesser General Public License as published by | |
| 11 | * the Free Software Foundation; either version 2.1 of the License, or | |
| 12 | * (at your option) any later version. | |
| 13 | * | |
| 14 | * This library is distributed in the hope that it will be useful, but | |
| 15 | * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
| 16 | * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public | |
| 17 | * License for more details. | |
| 18 | * | |
| 19 | * You should have received a copy of the GNU Lesser General Public | |
| 20 | * License along with this library; if not, write to the Free Software | |
| 21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, | |
| 22 | * USA. | |
| 23 | * | |
| 24 | * [Java is a trademark or registered trademark of Sun Microsystems, Inc. | |
| 25 | * in the United States and other countries.] | |
| 26 | * | |
| 27 | * ---------------------- | |
| 28 | * StandardDialRange.java | |
| 29 | * ---------------------- | |
| 30 | * (C) Copyright 2006-2008, by Object Refinery Limited. | |
| 31 | * | |
| 32 | * Original Author: David Gilbert (for Object Refinery Limited); | |
| 33 | * Contributor(s): -; | |
| 34 | * | |
| 35 | * Changes | |
| 36 | * ------- | |
| 37 | * 03-Nov-2006 : Version 1 (DG); | |
| 38 | * 08-Mar-2007 : Fix in hashCode() (DG); | |
| 39 | * 21-Jun-2007 : Removed JCommon dependencies (DG); | |
| 40 | * 17-Oct-2007 : Removed increment attribute (DG); | |
| 41 | * 24-Oct-2007 : Added scaleIndex (DG); | |
| 42 | * | |
| 43 | */ | |
| 44 | ||
| 45 | package org.jfree.chart.plot.dial; | |
| 46 | ||
| 47 | import java.awt.BasicStroke; | |
| 48 | import java.awt.Color; | |
| 49 | import java.awt.Graphics2D; | |
| 50 | import java.awt.Paint; | |
| 51 | import java.awt.geom.Arc2D; | |
| 52 | import java.awt.geom.Rectangle2D; | |
| 53 | import java.io.IOException; | |
| 54 | import java.io.ObjectInputStream; | |
| 55 | import java.io.ObjectOutputStream; | |
| 56 | import java.io.Serializable; | |
| 57 | ||
| 58 | import org.jfree.chart.util.HashUtilities; | |
| 59 | import org.jfree.chart.util.PaintUtilities; | |
| 60 | import org.jfree.chart.util.PublicCloneable; | |
| 61 | import org.jfree.chart.util.SerialUtilities; | |
| 62 | ||
| 63 | /** | |
| 64 | * A layer that draws a range highlight on a dial plot. | |
| 65 | * | |
| 66 | * @since 1.0.7 | |
| 67 | */ | |
| 68 | public class StandardDialRange extends AbstractDialLayer implements DialLayer, | |
| 69 | Cloneable, PublicCloneable, Serializable { | |
| 70 | ||
| 71 | /** For serialization. */ | |
| 72 | static final long serialVersionUID =<PHONE_NUMBER>49364904L; | |
| 73 | ||
| 74 | /** The scale index. */ | |
| 75 | private int scaleIndex; | |
| 76 | ||
| 77 | /** The minimum data value for the scale. */ | |
| 78 | private double lowerBound; | |
| 79 | ||
| 80 | /** The maximum data value for the scale. */ | |
| 81 | private double upperBound; | |
| 82 | ||
| 83 | /** | |
| 84 | * The paint used to draw the range highlight. This field is transient | |
| 85 | * because it requires special handling for serialization. | |
| 86 | */ | |
| 87 | private transient Paint paint; | |
| 88 | ||
| 89 | /** | |
| 90 | * The factor (in the range 0.0 to 1.0) that determines the inside limit | |
| 91 | * of the range highlight. | |
| 92 | */ | |
| 93 | private double innerRadius; | |
| 94 | ||
| 95 | /** | |
| 96 | * The factor (in the range 0.0 to 1.0) that determines the outside limit | |
| 97 | * of the range highlight. | |
| 98 | */ | |
| 99 | private double outerRadius; | |
| 100 | ||
| 101 | /** | |
| 102 | * Creates a new instance of StandardDialRange. | |
| 103 | */ | |
| 104 | public StandardDialRange() { | |
| 105 | this(0.0, 100.0, Color.white); | |
| 106 | } | |
| 107 | ||
| 108 | /** | |
| 109 | * Creates a new instance of StandardDialRange. | |
| 110 | * | |
| 111 | * @param lower the lower bound. | |
| 112 | * @param upper the upper bound. | |
| 113 | * @param paint the paint (null not permitted). | |
| 114 | */ | |
| 115 | public StandardDialRange(double lower, double upper, Paint paint) { | |
| 116 |
1
1. |
if (paint == null) { |
| 117 | throw new IllegalArgumentException("Null 'paint' argument."); | |
| 118 | } | |
| 119 | this.scaleIndex = 0; | |
| 120 | this.lowerBound = lower; | |
| 121 | this.upperBound = upper; | |
| 122 | this.innerRadius = 0.48; | |
| 123 | this.outerRadius = 0.52; | |
| 124 | this.paint = paint; | |
| 125 | } | |
| 126 | ||
| 127 | /** | |
| 128 | * Returns the scale index. | |
| 129 | * | |
| 130 | * @return The scale index. | |
| 131 | * | |
| 132 | * @see #setScaleIndex(int) | |
| 133 | */ | |
| 134 | public int getScaleIndex() { | |
| 135 |
1
1. getScaleIndex : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return this.scaleIndex; |
| 136 | } | |
| 137 | ||
| 138 | /** | |
| 139 | * Sets the scale index and sends a {@link DialLayerChangeEvent} to all | |
| 140 | * registered listeners. | |
| 141 | * | |
| 142 | * @param index the scale index. | |
| 143 | * | |
| 144 | * @see #getScaleIndex() | |
| 145 | */ | |
| 146 | public void setScaleIndex(int index) { | |
| 147 | this.scaleIndex = index; | |
| 148 |
1
1. setScaleIndex : removed call to org/jfree/chart/plot/dial/StandardDialRange::notifyListeners → NO_COVERAGE |
notifyListeners(new DialLayerChangeEvent(this)); |
| 149 | } | |
| 150 | ||
| 151 | /** | |
| 152 | * Returns the lower bound (a data value) of the dial range. | |
| 153 | * | |
| 154 | * @return The lower bound of the dial range. | |
| 155 | * | |
| 156 | * @see #setLowerBound(double) | |
| 157 | */ | |
| 158 | public double getLowerBound() { | |
| 159 |
1
1. getLowerBound : replaced return of double value with -(x + 1) for org/jfree/chart/plot/dial/StandardDialRange::getLowerBound → NO_COVERAGE |
return this.lowerBound; |
| 160 | } | |
| 161 | ||
| 162 | /** | |
| 163 | * Sets the lower bound of the dial range and sends a | |
| 164 | * {@link DialLayerChangeEvent} to all registered listeners. | |
| 165 | * | |
| 166 | * @param bound the lower bound. | |
| 167 | * | |
| 168 | * @see #getLowerBound() | |
| 169 | */ | |
| 170 | public void setLowerBound(double bound) { | |
| 171 |
2
1. setLowerBound : changed conditional boundary → SURVIVED 2. setLowerBound : negated conditional → KILLED |
if (bound >= this.upperBound) { |
| 172 | throw new IllegalArgumentException( | |
| 173 | "Lower bound must be less than upper bound."); | |
| 174 | } | |
| 175 | this.lowerBound = bound; | |
| 176 |
1
1. setLowerBound : removed call to org/jfree/chart/plot/dial/StandardDialRange::notifyListeners → SURVIVED |
notifyListeners(new DialLayerChangeEvent(this)); |
| 177 | } | |
| 178 | ||
| 179 | /** | |
| 180 | * Returns the upper bound of the dial range. | |
| 181 | * | |
| 182 | * @return The upper bound. | |
| 183 | * | |
| 184 | * @see #setUpperBound(double) | |
| 185 | */ | |
| 186 | public double getUpperBound() { | |
| 187 |
1
1. getUpperBound : replaced return of double value with -(x + 1) for org/jfree/chart/plot/dial/StandardDialRange::getUpperBound → NO_COVERAGE |
return this.upperBound; |
| 188 | } | |
| 189 | ||
| 190 | /** | |
| 191 | * Sets the upper bound of the dial range and sends a | |
| 192 | * {@link DialLayerChangeEvent} to all registered listeners. | |
| 193 | * | |
| 194 | * @param bound the upper bound. | |
| 195 | * | |
| 196 | * @see #getUpperBound() | |
| 197 | */ | |
| 198 | public void setUpperBound(double bound) { | |
| 199 |
2
1. setUpperBound : changed conditional boundary → SURVIVED 2. setUpperBound : negated conditional → KILLED |
if (bound <= this.lowerBound) { |
| 200 | throw new IllegalArgumentException( | |
| 201 | "Lower bound must be less than upper bound."); | |
| 202 | } | |
| 203 | this.upperBound = bound; | |
| 204 |
1
1. setUpperBound : removed call to org/jfree/chart/plot/dial/StandardDialRange::notifyListeners → SURVIVED |
notifyListeners(new DialLayerChangeEvent(this)); |
| 205 | } | |
| 206 | ||
| 207 | /** | |
| 208 | * Sets the bounds for the range and sends a {@link DialLayerChangeEvent} | |
| 209 | * to all registered listeners. | |
| 210 | * | |
| 211 | * @param lower the lower bound. | |
| 212 | * @param upper the upper bound. | |
| 213 | */ | |
| 214 | public void setBounds(double lower, double upper) { | |
| 215 |
2
1. setBounds : changed conditional boundary → NO_COVERAGE 2. setBounds : negated conditional → NO_COVERAGE |
if (lower >= upper) { |
| 216 | throw new IllegalArgumentException( | |
| 217 | "Lower must be less than upper."); | |
| 218 | } | |
| 219 | this.lowerBound = lower; | |
| 220 | this.upperBound = upper; | |
| 221 |
1
1. setBounds : removed call to org/jfree/chart/plot/dial/StandardDialRange::notifyListeners → NO_COVERAGE |
notifyListeners(new DialLayerChangeEvent(this)); |
| 222 | } | |
| 223 | ||
| 224 | /** | |
| 225 | * Returns the paint used to highlight the range. | |
| 226 | * | |
| 227 | * @return The paint (never null). | |
| 228 | * | |
| 229 | * @see #setPaint(Paint) | |
| 230 | */ | |
| 231 | public Paint getPaint() { | |
| 232 |
1
1. getPaint : mutated return of Object value for org/jfree/chart/plot/dial/StandardDialRange::getPaint to ( if (x != null) null else throw new RuntimeException ) → NO_COVERAGE |
return this.paint; |
| 233 | } | |
| 234 | ||
| 235 | /** | |
| 236 | * Sets the paint used to highlight the range and sends a | |
| 237 | * {@link DialLayerChangeEvent} to all registered listeners. | |
| 238 | * | |
| 239 | * @param paint the paint (null not permitted). | |
| 240 | * | |
| 241 | * @see #getPaint() | |
| 242 | */ | |
| 243 | public void setPaint(Paint paint) { | |
| 244 |
1
1. setPaint : negated conditional → KILLED |
if (paint == null) { |
| 245 | throw new IllegalArgumentException("Null 'paint' argument."); | |
| 246 | } | |
| 247 | this.paint = paint; | |
| 248 |
1
1. setPaint : removed call to org/jfree/chart/plot/dial/StandardDialRange::notifyListeners → SURVIVED |
notifyListeners(new DialLayerChangeEvent(this)); |
| 249 | } | |
| 250 | ||
| 251 | /** | |
| 252 | * Returns the inner radius. | |
| 253 | * | |
| 254 | * @return The inner radius. | |
| 255 | * | |
| 256 | * @see #setInnerRadius(double) | |
| 257 | */ | |
| 258 | public double getInnerRadius() { | |
| 259 |
1
1. getInnerRadius : replaced return of double value with -(x + 1) for org/jfree/chart/plot/dial/StandardDialRange::getInnerRadius → NO_COVERAGE |
return this.innerRadius; |
| 260 | } | |
| 261 | ||
| 262 | /** | |
| 263 | * Sets the inner radius and sends a {@link DialLayerChangeEvent} to all | |
| 264 | * registered listeners. | |
| 265 | * | |
| 266 | * @param radius the radius. | |
| 267 | * | |
| 268 | * @see #getInnerRadius() | |
| 269 | */ | |
| 270 | public void setInnerRadius(double radius) { | |
| 271 | this.innerRadius = radius; | |
| 272 |
1
1. setInnerRadius : removed call to org/jfree/chart/plot/dial/StandardDialRange::notifyListeners → NO_COVERAGE |
notifyListeners(new DialLayerChangeEvent(this)); |
| 273 | } | |
| 274 | ||
| 275 | /** | |
| 276 | * Returns the outer radius. | |
| 277 | * | |
| 278 | * @return The outer radius. | |
| 279 | * | |
| 280 | * @see #setOuterRadius(double) | |
| 281 | */ | |
| 282 | public double getOuterRadius() { | |
| 283 |
1
1. getOuterRadius : replaced return of double value with -(x + 1) for org/jfree/chart/plot/dial/StandardDialRange::getOuterRadius → NO_COVERAGE |
return this.outerRadius; |
| 284 | } | |
| 285 | ||
| 286 | /** | |
| 287 | * Sets the outer radius and sends a {@link DialLayerChangeEvent} to all | |
| 288 | * registered listeners. | |
| 289 | * | |
| 290 | * @param radius the radius. | |
| 291 | * | |
| 292 | * @see #getOuterRadius() | |
| 293 | */ | |
| 294 | public void setOuterRadius(double radius) { | |
| 295 | this.outerRadius = radius; | |
| 296 |
1
1. setOuterRadius : removed call to org/jfree/chart/plot/dial/StandardDialRange::notifyListeners → NO_COVERAGE |
notifyListeners(new DialLayerChangeEvent(this)); |
| 297 | } | |
| 298 | ||
| 299 | /** | |
| 300 | * Returns true to indicate that this layer should be | |
| 301 | * clipped within the dial window. | |
| 302 | * | |
| 303 | * @return true. | |
| 304 | */ | |
| 305 | public boolean isClippedToWindow() { | |
| 306 |
1
1. isClippedToWindow : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return true; |
| 307 | } | |
| 308 | ||
| 309 | /** | |
| 310 | * Draws the range. | |
| 311 | * | |
| 312 | * @param g2 the graphics target. | |
| 313 | * @param plot the plot. | |
| 314 | * @param frame the dial's reference frame (in Java2D space). | |
| 315 | * @param view the dial's view rectangle (in Java2D space). | |
| 316 | */ | |
| 317 | public void draw(Graphics2D g2, DialPlot plot, Rectangle2D frame, | |
| 318 | Rectangle2D view) { | |
| 319 | ||
| 320 | Rectangle2D arcRectInner = DialPlot.rectangleByRadius(frame, | |
| 321 | this.innerRadius, this.innerRadius); | |
| 322 | Rectangle2D arcRectOuter = DialPlot.rectangleByRadius(frame, | |
| 323 | this.outerRadius, this.outerRadius); | |
| 324 | ||
| 325 | DialScale scale = plot.getScale(this.scaleIndex); | |
| 326 |
1
1. draw : negated conditional → NO_COVERAGE |
if (scale == null) { |
| 327 | throw new RuntimeException("No scale for scaleIndex = " | |
| 328 | + this.scaleIndex); | |
| 329 | } | |
| 330 | double angleMin = scale.valueToAngle(this.lowerBound); | |
| 331 | double angleMax = scale.valueToAngle(this.upperBound); | |
| 332 | ||
| 333 |
1
1. draw : Replaced double subtraction with addition → NO_COVERAGE |
Arc2D arcInner = new Arc2D.Double(arcRectInner, angleMin, |
| 334 | angleMax - angleMin, Arc2D.OPEN); | |
| 335 |
1
1. draw : Replaced double subtraction with addition → NO_COVERAGE |
Arc2D arcOuter = new Arc2D.Double(arcRectOuter, angleMax, |
| 336 | angleMin - angleMax, Arc2D.OPEN); | |
| 337 | ||
| 338 |
1
1. draw : removed call to java/awt/Graphics2D::setPaint → NO_COVERAGE |
g2.setPaint(this.paint); |
| 339 |
1
1. draw : removed call to java/awt/Graphics2D::setStroke → NO_COVERAGE |
g2.setStroke(new BasicStroke(2.0f)); |
| 340 |
1
1. draw : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(arcInner); |
| 341 |
1
1. draw : removed call to java/awt/Graphics2D::draw → NO_COVERAGE |
g2.draw(arcOuter); |
| 342 | } | |
| 343 | ||
| 344 | /** | |
| 345 | * Tests this instance for equality with an arbitrary object. | |
| 346 | * | |
| 347 | * @param obj the object (null permitted). | |
| 348 | * | |
| 349 | * @return A boolean. | |
| 350 | */ | |
| 351 | public boolean equals(Object obj) { | |
| 352 |
1
1. equals : negated conditional → KILLED |
if (obj == this) { |
| 353 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return true; |
| 354 | } | |
| 355 |
1
1. equals : negated conditional → KILLED |
if (!(obj instanceof StandardDialRange)) { |
| 356 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return false; |
| 357 | } | |
| 358 | StandardDialRange that = (StandardDialRange) obj; | |
| 359 |
1
1. equals : negated conditional → KILLED |
if (this.scaleIndex != that.scaleIndex) { |
| 360 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return false; |
| 361 | } | |
| 362 |
1
1. equals : negated conditional → KILLED |
if (this.lowerBound != that.lowerBound) { |
| 363 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 364 | } | |
| 365 |
1
1. equals : negated conditional → KILLED |
if (this.upperBound != that.upperBound) { |
| 366 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 367 | } | |
| 368 |
1
1. equals : negated conditional → KILLED |
if (!PaintUtilities.equal(this.paint, that.paint)) { |
| 369 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return false; |
| 370 | } | |
| 371 |
1
1. equals : negated conditional → KILLED |
if (this.innerRadius != that.innerRadius) { |
| 372 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return false; |
| 373 | } | |
| 374 |
1
1. equals : negated conditional → KILLED |
if (this.outerRadius != that.outerRadius) { |
| 375 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → NO_COVERAGE |
return false; |
| 376 | } | |
| 377 |
1
1. equals : replaced return of integer sized value with (x == 0 ? 1 : 0) → KILLED |
return super.equals(obj); |
| 378 | } | |
| 379 | ||
| 380 | /** | |
| 381 | * Returns a hash code for this instance. | |
| 382 | * | |
| 383 | * @return The hash code. | |
| 384 | */ | |
| 385 | public int hashCode() { | |
| 386 | int result = 193; | |
| 387 | long temp = Double.doubleToLongBits(this.lowerBound); | |
| 388 |
4
1. hashCode : Replaced integer multiplication with division → SURVIVED 2. hashCode : Replaced Unsigned Shift Right with Shift Left → SURVIVED 3. hashCode : Replaced XOR with AND → SURVIVED 4. hashCode : Replaced integer addition with subtraction → SURVIVED |
result = 37 * result + (int) (temp ^ (temp >>> 32)); |
| 389 | temp = Double.doubleToLongBits(this.upperBound); | |
| 390 |
4
1. hashCode : Replaced integer multiplication with division → SURVIVED 2. hashCode : Replaced Unsigned Shift Right with Shift Left → SURVIVED 3. hashCode : Replaced XOR with AND → SURVIVED 4. hashCode : Replaced integer addition with subtraction → SURVIVED |
result = 37 * result + (int) (temp ^ (temp >>> 32)); |
| 391 | temp = Double.doubleToLongBits(this.innerRadius); | |
| 392 |
4
1. hashCode : Replaced integer multiplication with division → SURVIVED 2. hashCode : Replaced Unsigned Shift Right with Shift Left → SURVIVED 3. hashCode : Replaced XOR with AND → SURVIVED 4. hashCode : Replaced integer addition with subtraction → SURVIVED |
result = 37 * result + (int) (temp ^ (temp >>> 32)); |
| 393 | temp = Double.doubleToLongBits(this.outerRadius); | |
| 394 |
4
1. hashCode : Replaced integer multiplication with division → SURVIVED 2. hashCode : Replaced Unsigned Shift Right with Shift Left → SURVIVED 3. hashCode : Replaced XOR with AND → SURVIVED 4. hashCode : Replaced integer addition with subtraction → SURVIVED |
result = 37 * result + (int) (temp ^ (temp >>> 32)); |
| 395 |
2
1. hashCode : Replaced integer multiplication with division → SURVIVED 2. hashCode : Replaced integer addition with subtraction → SURVIVED |
result = 37 * result + HashUtilities.hashCodeForPaint(this.paint); |
| 396 |
1
1. hashCode : replaced return of integer sized value with (x == 0 ? 1 : 0) → SURVIVED |
return result; |
| 397 | } | |
| 398 | ||
| 399 | /** | |
| 400 | * Returns a clone of this instance. | |
| 401 | * | |
| 402 | * @return A clone. | |
| 403 | * | |
| 404 | * @throws CloneNotSupportedException if any of the attributes of this | |
| 405 | * instance cannot be cloned. | |
| 406 | */ | |
| 407 | public Object clone() throws CloneNotSupportedException { | |
| 408 |
1
1. clone : mutated return of Object value for org/jfree/chart/plot/dial/StandardDialRange::clone to ( if (x != null) null else throw new RuntimeException ) → KILLED |
return super.clone(); |
| 409 | } | |
| 410 | ||
| 411 | /** | |
| 412 | * Provides serialization support. | |
| 413 | * | |
| 414 | * @param stream the output stream. | |
| 415 | * | |
| 416 | * @throws IOException if there is an I/O error. | |
| 417 | */ | |
| 418 | private void writeObject(ObjectOutputStream stream) throws IOException { | |
| 419 |
1
1. writeObject : removed call to java/io/ObjectOutputStream::defaultWriteObject → KILLED |
stream.defaultWriteObject(); |
| 420 |
1
1. writeObject : removed call to org/jfree/chart/util/SerialUtilities::writePaint → KILLED |
SerialUtilities.writePaint(this.paint, stream); |
| 421 | } | |
| 422 | ||
| 423 | /** | |
| 424 | * Provides serialization support. | |
| 425 | * | |
| 426 | * @param stream the input stream. | |
| 427 | * | |
| 428 | * @throws IOException if there is an I/O error. | |
| 429 | * @throws ClassNotFoundException if there is a classpath problem. | |
| 430 | */ | |
| 431 | private void readObject(ObjectInputStream stream) | |
| 432 | throws IOException, ClassNotFoundException { | |
| 433 |
1
1. readObject : removed call to java/io/ObjectInputStream::defaultReadObject → KILLED |
stream.defaultReadObject(); |
| 434 | this.paint = SerialUtilities.readPaint(stream); | |
| 435 | } | |
| 436 | ||
| 437 | } | |
Mutations | ||
| 116 |
1.1 |
|
| 135 |
1.1 |
|
| 148 |
1.1 |
|
| 159 |
1.1 |
|
| 171 |
1.1 2.2 |
|
| 176 |
1.1 |
|
| 187 |
1.1 |
|
| 199 |
1.1 2.2 |
|
| 204 |
1.1 |
|
| 215 |
1.1 2.2 |
|
| 221 |
1.1 |
|
| 232 |
1.1 |
|
| 244 |
1.1 |
|
| 248 |
1.1 |
|
| 259 |
1.1 |
|
| 272 |
1.1 |
|
| 283 |
1.1 |
|
| 296 |
1.1 |
|
| 306 |
1.1 |
|
| 326 |
1.1 |
|
| 333 |
1.1 |
|
| 335 |
1.1 |
|
| 338 |
1.1 |
|
| 339 |
1.1 |
|
| 340 |
1.1 |
|
| 341 |
1.1 |
|
| 352 |
1.1 |
|
| 353 |
1.1 |
|
| 355 |
1.1 |
|
| 356 |
1.1 |
|
| 359 |
1.1 |
|
| 360 |
1.1 |
|
| 362 |
1.1 |
|
| 363 |
1.1 |
|
| 365 |
1.1 |
|
| 366 |
1.1 |
|
| 368 |
1.1 |
|
| 369 |
1.1 |
|
| 371 |
1.1 |
|
| 372 |
1.1 |
|
| 374 |
1.1 |
|
| 375 |
1.1 |
|
| 377 |
1.1 |
|
| 388 |
1.1 2.2 3.3 4.4 |
|
| 390 |
1.1 2.2 3.3 4.4 |
|
| 392 |
1.1 2.2 3.3 4.4 |
|
| 394 |
1.1 2.2 3.3 4.4 |
|
| 395 |
1.1 2.2 |
|
| 396 |
1.1 |
|
| 408 |
1.1 |
|
| 419 |
1.1 |
|
| 420 |
1.1 |
|
| 433 |
1.1 |


REVIEW 'Armageddon'
Rated PG13, 1998 1.5 stars Reviewed by Matthew Dalton
Right in the midst of Deep Impact comes Armageddon: a clunker of a movie about an asteroid the size of Texas on a collision course with earth.
The first 10 minutes of this film are pretty entertaining, and, downright spectacular. A comet shower (not detected by NASA) rains on an American spaceship and blows the thing up good before it proceeds to New York City.

NASA wants to keep the disaster under wraps, and does so. How the hell can you keep the news of NYC in ruins a matter of top-secret information? Easy. Get director Michael Bay to scope out more digital effects than one can count, and you lose all sight of reality.
NASA, soon after the apocalyptic mess, finds out about said asteroid and hires the world's best oil driller (Bruce Willis, in another Bruce Willis role) to plant nuclear bombs on the surface of the asteroid in hopes of splitting the thing in two.
Willis and his wise-ass crew (including Ben Affleck and Steve Buscemi, doing his Con Air role all over again) go into space, where, lo, more special effects and over-the-top acting reached heights of me ripping out my eyeballs.
Deep Impact was so real and scary that another comet flick the same year seemed uncanny, like Volcano when it trailed Dante's Peak in 1997 (I prefered Peak over Volcano). Impact had characters worth caring for. Armageddon has zero. The script is so small and lame-brained, that, when in doubt, the characters ask each other "Are we gonna make it?"
Like Con Air, and The Rock, Armageddon is an FX-ridden, unfun, unfunny, flashy film that is a true disaster. Don't forget to check your emergancy exits in the theater before viewing this garbage.
***** a classic **** excellent *** good ** fair * poor
-Matthew Dalton is a critic for the Cinemascope Limited Inc. Weekly-
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


We don't need no education
We don't need no thought control
No dark sarcasm in the classroom
Teachers leave them kids alone
Hey! Teachers!
They achieved international acclaim with their progressive
and psychedelic music.


Meet a partner for your best holiday
-
Bradley Hunter
Based in Chicago. I love playing tennis and loud music.
-
Lucas Marsha
I get my inspiration from nature and objects around me. I have a passion to collours, typogtaphy and skateboards.
-
Heather Walker
I'm a happy person that loves cats and climbing on mountains.
-
Bradley Hunter
Based in Chicago. I love playing tennis and loud music.


Reset diagram
All Issues
Successful Checkers
Process Variables
Highlight source code references
Download ignoreIssues


OIL CHANGE
Need to get your oil changed? Need to get your oil changed? Need to get your oil changed?
1st paragraphOnce upon a time, there was a mechanic. This mechanic, named Jay, sought a dream to own an honest auto garage...Once upon a time, there was a mechanic. This mechanic, named Jay,
2nd paragraphOnce upon a time, there was a mechanic. This mechanic, named Jay, sought a dream to own an honest auto garage...Once upon a time, there was a mechanic. This mechanic, named Jay,
Jay Ball moved to Dayton from Walla Walla x year ago. He was quickly welcome in the friendly community. After years of fixing up verticals for fun side projects, he quickly saw the need for a well experienced Auto Garage in Dayton.
Daniel Harrington is the step son of Jay. For x years Daniel gotextensive experiance at a major mechanic show in downtown Seattle. He quickly became the ranking mechanic.
Humberto, not Daniel's cousin, has always thought of Dayton as being home.After this part of her life she moved to somewhere...
 Luckily I wasn't hurt, but my Ford truck sure was... Mike
On my way to my cousins BBQ in Walla Walla I got a blow out. I qucikly got control of the car and pulled over.The tire was in shreds, there was no chance of patching that one upot me moiving quick with a new set of wheels for a very fair price. I qucikly got control of the car and pulled over. The tire was in shreds, there was no chance of patching that one up. Jay got me moiving quick with a new set of wheels for a very fair price. I qucikly got control of the car and pulled over. he tire was in shreds, there was no chance of patching that one up. Jay got me moiving quick with a new set of wheels for a very fair price. Jerry
Here is another story. I qucikly got control of the car and pulled over.The tire was in shreds, FAKE CONTENT FAKE CONTENTFAKE CONTENT FAKE CONTENT FAKE CONTENT FAKE CONTENT of wheels for a very fair price.I qucikly got control of the car and pulled over. The tire was in shreds, FAKE CONTENT FAKE CONTENTFAKE CONTENT FAKE CONTENT AKE CONTENT FAKE CONTENT of wheels for a very fair price. I qucikly got control of the car and pulled over. he tire was in shreds, FAKE CONTENT FAKE CONTENTFAKE CONTENT FAKE CONTENT FAKE CONTENT FAKE CONTENT of wheels for a very fair price. Steve
I want food. I break down. YES, i got food. YES, i got food. 123 YES, i got food. more randome text YES, i got food. YES, i got food. YES, i got food. 123 YES, i got food. more randome text YES, i got food.I qucikly got control of the car and pulled over.The tire was in shreds, FAKE CONTENT FAKE CONTENTFAKE CONTENT FAKE CONTENT FAKE CONTENT FAKE CONTENT of wheels for a very fair price.qucikly got control of the car and pulled over. he tire was in shreds, FAKE CONTENT FAKE CONTENTFAKE CONTENT FAKE CONTENTFAKE CONTENT FAKE CONTENT of wheels for a very fair price.I qucikly got control of the car and pulled over. he tire was in shreds, AKE CONTENT FAKE CONTENTFAKE CONTENT FAKE CONTENT FAKE CONTENT FAKE CONTENT of wheels for a very fair price. Phil
Need to get your oil changed? Need to get your oil changed? Need to get your oil changed?
Need to get you tires changed? Need to get you tires changed?Need to get you tires changed?
 Dirty Filters? Get them replaced. Dirty Filters?
Need to get you tires changed? Need to get you tires changed? Need to get you tires changed? Need to get you tires changed?
Riding with style. Riding with style. Riding with style. Riding with style. Riding with style.
If you want spinners, we got them.


| About Dailyrotten |
|
Feedback
If you like this page, hate it, or would like to suggest changes,
<EMAIL_ADDRESS>is listening. This page
is experimental and somewhat different from what we usually offer, so please
do send your feedback.
Adding Stories
If you are a rotten newshound and you would like to suggest a story,
visit our submit page to
send us the URL. Stories that are accepted will have your name credited.
Viewership
On the first full day this page went live, 100,000 people visited this Rotten
News page. Of course that was the day after the WTC attacks, so that number is
somewhat distorted. Right now this page gets between 50,000 and 75,000 people
every day.
Linking
We encourage everyone to link to this page; if you like it, others probably
will as well.
Other Rotten
Rotten
Gaping Maw
Celebrity Morgue
Mugshots
Rotten Store
Shockumentary
Rate My Poo
Rate My Kitten
Rate My Finger
Penny Postcards
Phallic
Dr. Sputnik
Boners
Dead Pool
NNDB
Home
Make Dailyrotten your start page
|
|
|
March 31, 2003
Dolphins go AWOL in Iraq-War
Times | Submitted by: anonymous
"Takoma, the Atlantic bottle-nosed dolphin, had been in Iraq for 48 hours when he went missing on his first operation to snoop out mines. His handler, Petty Officer Taylor Whitaker, had proudly showed off Takoma’s skills and told how the 22-year-old dolphin was among the most pampered creatures in the American military."
|
|
Read article...
|
|
From grandma's house to the slammer
Seattle Times | Submitted by: Incubus
"I'm a mother. My first thought was to get this baby out of this situation. Get her to a safe area," van-pool driver Marlene Wilson said yesterday. After a company dispatcher assured her that taking the girl to a safe place would be appropriate, Wilson said she drove the child to the little girl's grandmother's house nearby in the South Seattle suburb of Renton. Instead of getting praise from her managers at ATC Vancom, Wilson was placed on paid administrative leave Tuesday, the day after the incident, which the King County Sheriff's Office is investigating as an attempted abduction."
|
|
Read article...
|
|
Shock and awe tactics employed on home soil
Sydney Morning Herald | Submitted by: wingnut
"As Iraqi civilians and American, British and Iraqi soldiers perish in the Gulf, this war is fast claiming another casualty: democracy in the United States. Under Big Brother monikers like the Patriot Act and Operation Liberty Shield the state has stepped up the scope of its surveillance and the tapping of American citizens. Under a proposed new bill, the Government could withhold the identity of anyone detained in connection with a terrorism investigation and their names would be exempt from the US Freedom of Information Act."
|
|
Read article...
|
|
Drunken snowboarder goes bowling for children
KOIN-TV 6 Portland | Submitted by: Orpyak
"Twenty year old Michael Wolff of Killeen, Texas, is accused of child abuse and reckless endangerment. He's also charged with possession of alcohol by a minor. Authorities say Wolff collided with a group of 5- to 7-year-old children taking beginning ski lessons at Sunlight Mountain Resort near Glenwood Springs. The March 15 accident left one child with a broken leg, another with a bruised arm and a third with minor injuries."
|
|
Read article...
|
|
Use firewall, go to jail
Freedom To Tinker | Submitted by: Digital Fascist
"Here is one example of the far-reaching harmful effects of these bills. Both bills would flatly ban the possession, sale, or use of technologies that "conceal from a communication service provider... the existence or place of origin or destination of any communication". Your ISP is a communication service provider, so anything that concealed the origin or destination of any communication from your ISP would be illegal, with no exceptions."
|
|
Read article...
|
|
Shop smasher in underwear frenzy
Sun | Submitted by: JOPY
"A yob [British for young troublemaker] who loves smashing shop fronts in his Y-fronts [British for sexy underpants] is facing jail for breaking 43 windows in one night, a court heard yesterday. Andrew Roxberry, 30, was naked apart from black underpants when he rampaged with a shovel, causing UKP 75,000 worth of damage.  An astonished CCTV operator watched his spree just after midnight on a cold night."
|
|
Read article...
|
|
Woman pulls gun against would-be bandit
Zwire | Submitted by: JOPY - 666
"The man opened the driver's door of her 1991 Oldsmobile Cutlass. With his hand in his right pocket, he pressed an object to her jaw that she believed was a gun. The culprit ordered her to give him money, but she had other thoughts. Clutching $6 in one hand, she began struggling with him as he again demanded her money. Determined not to become a robbery statistic, the woman reached with her other hand to the passenger seat for her 9 mm handgun, grabbed the pistol and pointed it at his face.
|
|
Read article...
|
|
Ban a yellow ribbon round that old oak tree
ABC TV affiliates | Submitted by: Razor
"Fieldsboro residents can forget about putting yellow ribbons and war memorials on public property. The Burlington County town's council has banned the practice, fearing it would open the door for potentially offensive displays."
|
|
Read article...
|
|
Man busted for selling gold teeth
South Florida Sun-Sentinel | Submitted by: Alter Ego
"For the second time in as many months, the state Department of Health and the Broward Sheriff's Office arrested a flea market vendor for making and selling gold teeth. "Some people have missing teeth. I offer very inexpensive prices. Some people have been without teeth for 20-25 years. I don't do anything illegal or unsanitary. I only do clean, technical work."
|
|
Read article...
|
|
Doofus uses knife as tool with predictable results
Pittsburgh Post-Gazette | Submitted by: Tim Howard
Cutting edge Darwin-level stupidity: "Alicia Neal said she warned her husband not to use a butcher knife to tighten the screws in their granddaughter's crib. An Allen wrench was needed. Thinking John Neal Sr. had heeded her advice, she said, she went to the basement to do laundry. "The next thing I heard was him running down the steps and hollering, 'Call the paramedics! I fell on the knife!'" Alicia Neal said yesterday. "My son ran and got the phone and called the paramedics. I took a towel and put it up to his throat and applied pressure. The last thing he said was, 'Tell everybody I love them.'"
|
|
Read article...
|
|
|
|
|


Plate Format
Converts between the selected plate formats.
Details can be found here.
Dialog Options
- Input well count
- Number of wells on input plates
- Output well count
- Number of wells on output plates
- Layout
-
Specify the layout of the conversion pattern. You have the following
options (samples are from 384->96):
- left to right then up to down 8 pipettes wells are close without
replicates: 1 A1->1 A1; 1 A2->2 A1; 1 B1->3 A1
- left to right then up to down without replicates: 1 A1->1 A1; 1 A13->2 A1; 1 I1->3 A1
- up to down then left to right without replicates: 1 A1->1 A1; 1 A13->3 A1; 1 I1->2 A1
- up to down then left to right 8 pipettes without replicates: 1 A1->1 A1; 1 A13->3 A1; 1 B1->2 A1
Ports
- Input Ports
-
- Output Ports
-


2019 Summer Camp 6/10 - 8/23
- Time: June 10 - Aug 23
- Dedicated Ping Pong camp for beginner and intermediate level kids
- 6 hour training every day from 9am - 12am and 2pm - 5pm, 5 days a week
- Supervised lunch break hour: 12pm – 2pm
- Free Extended Hour: 5pm - 6pm
- Hot lunch and afternoon snack included
Price and Discount
-
$470 per Week or $260 per half day week
- Sibling discounted price: $450 per week or $250 per half day week if 2 or more siblings sign up
- Multi-Week Discount: Sign up for three or more weeks
- $450 per week ($430 for second child)
- $250 per half day week ($240 for second child)
- Drop in: $100 per day or $55 per half day.
- All prices include free hot lunch at noon and free afternoon snack .
Coaching
- Classes are taught by professional players and coaches:
Gaolin Tang , Yin Liu and coaches from Swan Warrior school
Registration


Feel free to reach us if you have any inquiries. we are here to help and answer any questions you might have send us a message using the form below and we’ll get back to you as soon as we can.


@*
* Copyright 2021 HM Revenue & Customs
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*@
@import uk.gov.hmrc.tai.util.HtmlFormatter
@()(implicit request: Request[_], messages: Messages, templateRenderer: uk.gov.hmrc.renderer.TemplateRenderer, partialRetriever: uk.gov.hmrc.play.partials.FormPartialRetriever)
@main(
title = messages("tai.deceased.title"),
gaCustomTitle = None
){
@Html(s"${messages("tai.deceased.heading.part1")} ${HtmlFormatter.htmlNonBroken(messages("tai.deceased.heading.part2"))}")
@messages("tai.deceased.callHmrc.paragraph")
@messages("tai.deceased.telephone.number")
@messages("tai.deceased.telephone.advice")
@messages("tai.deceased.textphone.number")
@messages("tai.deceased.outsideUK.number")
@messages("tai.deceased.openingTimes.mondayToFriday")
@messages("tai.deceased.openingTimes.saturday")
@messages("tai.deceased.daysClosed")
}


--- layout: page show_meta: false title: "Carpentry Clippings" header: image_fullwidth: "wood_plank.jpg" permalink: "/newsletter/" ---
Data Carpentry and Software Carpentry publish a joint newsletter, Carpentry Clippings, every two weeks. It highlights happenings in the Carpentries' community, ongoing discussions, job postings, meetup opportunities, new publications of relevance, and more. To subscribe, sign up here.
Previous issues are available here.


4K video, 24 minutes.
Apology speech to Greece by Poul Thomsen of the IMF.
Performed by Henrik Birch.
‘Apoulogy’ imagines Poul Thomsen – a powerful technocrat from the International Monetary Fund and one of the architects of Greece’s loan programmes – reflecting on his work and the strategy of the IMF. In the shape of a 1:1 video projection on the wall, starring Danish Actor, Henrik Birch (who plays Poul Thomsen in Costa Gavras’ feature film, ‘Adults in the Room’), the original chief of the “Greek Mission” delivers a monologue based on actual admittances from an interview conducted by the Danish Broadcast Radio show, 'Follow the Money'. The work expands on Thomsen's apology but goes further by speculating what might lie beyond the neoliberal austerity politics that he helped force upon the country.
Below: Images of the work installed at P.E.T. Projects in Athens.


|
||||||||||
| PREV LETTER NEXT LETTER | FRAMES NO FRAMES |
abstract
method initialize the component of the game:
Group
CollisionDetector
CollisionBoundDetector (if needs!)
Integer
value.
Sprite
collides with other one.
Sprite
collides with other or if
the distance beetween sprite is minus than DIST
|
||||||||||
| PREV LETTER NEXT LETTER | FRAMES NO FRAMES |


| 1 | package fr.sii.ogham.template.freemarker.adapter; | |
| 2 | ||
| 3 | import java.util.ArrayList; | |
| 4 | import java.util.Arrays; | |
| 5 | import java.util.List; | |
| 6 | ||
| 7 | import fr.sii.ogham.core.resource.resolver.ResourceResolver; | |
| 8 | import fr.sii.ogham.template.exception.NoResolverAdapterException; | |
| 9 | import fr.sii.ogham.template.exception.ResolverAdapterException; | |
| 10 | import fr.sii.ogham.template.freemarker.TemplateLoaderOptions; | |
| 11 | import freemarker.cache.TemplateLoader; | |
| 12 | ||
| 13 | /** | |
| 14 | * Decorator that will ask each resolver adapter if it is able to handle the | |
| 15 | * template resolver. If the resolver adapter supports it, then this | |
| 16 | * implementation asks the resolver adapter to provide the FreeMarker template | |
| 17 | * loader. | |
| 18 | * | |
| 19 | * Only the first resolver adapter that can handle the template resolver is | |
| 20 | * used. | |
| 21 | * | |
| 22 | * @author Cyril Dejonghe | |
| 23 | */ | |
| 24 | public class FirstSupportingResolverAdapter implements TemplateLoaderAdapter { | |
| 25 | ||
| 26 | /** | |
| 27 | * The list of adapters used to convert the general resolvers into | |
| 28 | * FreeMarker specific resolvers | |
| 29 | */ | |
| 30 | private List<TemplateLoaderAdapter> adapters; | |
| 31 | ||
| 32 | /** | |
| 33 | * Initialize the decorator with none, one or several resolver adapter | |
| 34 | * implementations. The registration order may be important. | |
| 35 | * | |
| 36 | * @param adapters | |
| 37 | * the adapters to register | |
| 38 | */ | |
| 39 | public FirstSupportingResolverAdapter(TemplateLoaderAdapter... adapters) { | |
| 40 | this(new ArrayList<>(Arrays.asList(adapters))); | |
| 41 | } | |
| 42 | ||
| 43 | /** | |
| 44 | * Initialize the decorator with the provided resolver adapter | |
| 45 | * implementations. The registration order may be important. | |
| 46 | * | |
| 47 | * @param adapters | |
| 48 | * the adapters to register | |
| 49 | */ | |
| 50 | public FirstSupportingResolverAdapter(List<TemplateLoaderAdapter> adapters) { | |
| 51 | super(); | |
| 52 | this.adapters = adapters; | |
| 53 | } | |
| 54 | ||
| 55 | public FirstSupportingResolverAdapter() { | |
| 56 | this(new ArrayList<>()); | |
| 57 | } | |
| 58 | ||
| 59 | @Override | |
| 60 | public boolean supports(ResourceResolver resolver) { | |
| 61 | for (TemplateLoaderAdapter adapter : adapters) { | |
| 62 |
1
1. supports : negated conditional → NO_COVERAGE |
if (adapter.supports(resolver)) { |
| 63 |
1
1. supports : replaced boolean return with false for fr/sii/ogham/template/thymeleaf/common/adapter/FirstSupportingResolverAdapter::supports → NO_COVERAGE |
return true; |
| 64 | } | |
| 65 | } | |
| 66 |
1
1. supports : replaced boolean return with true for fr/sii/ogham/template/thymeleaf/common/adapter/FirstSupportingResolverAdapter::supports → NO_COVERAGE |
return false; |
| 67 | } | |
| 68 | ||
| 69 | @Override | |
| 70 | public TemplateLoader adapt(ResourceResolver resolver) throws ResolverAdapterException { | |
| 71 | for (TemplateLoaderAdapter adapter : adapters) { | |
| 72 |
1
1. adapt : negated conditional → RUN_ERROR |
if (adapter.supports(resolver)) { |
| 73 |
1
1. adapt : replaced return value with null for fr/sii/ogham/template/thymeleaf/common/adapter/FirstSupportingResolverAdapter::adapt → RUN_ERROR |
return adapter.adapt(resolver); |
| 74 | } | |
| 75 | } | |
| 76 | throw new NoResolverAdapterException("No resolver adapter found for the provided resolver: " + resolverName(resolver), resolver); | |
| 77 | } | |
| 78 | ||
| 79 | /** | |
| 80 | * Register a new adapter. The adapter is added at the end. | |
| 81 | * | |
| 82 | * @param adapter | |
| 83 | * the adapter to register | |
| 84 | */ | |
| 85 | public void addAdapter(TemplateLoaderAdapter adapter) { | |
| 86 | adapters.add(adapter); | |
| 87 | } | |
| 88 | ||
| 89 | public List<TemplateLoaderAdapter> getAdapters() { | |
| 90 |
1
1. getAdapters : replaced return value with Collections.emptyList for fr/sii/ogham/template/thymeleaf/common/adapter/FirstSupportingResolverAdapter::getAdapters → NO_COVERAGE |
return adapters; |
| 91 | } | |
| 92 | ||
| 93 | @Override | |
| 94 | public void setOptions(TemplateLoaderOptions options) { | |
| 95 | for (TemplateLoaderAdapter adapter : adapters) { | |
| 96 |
1
1. setOptions : removed call to fr/sii/ogham/template/thymeleaf/common/adapter/TemplateResolverAdapter::setOptions → RUN_ERROR |
adapter.setOptions(options); |
| 97 | } | |
| 98 | } | |
| 99 | ||
| 100 | private static String resolverName(ResourceResolver resolver) { | |
| 101 | return resolver==null ? "null" : resolver.getClass().getSimpleName(); | |
| 102 | } | |
| 103 | } | |
Mutations | ||
| 62 |
1.1 |
|
| 63 |
1.1 |
|
| 66 |
1.1 |
|
| 72 |
1.1 |
|
| 73 |
1.1 |
|
| 90 |
1.1 |
|
| 96 |
1.1 |


---
# https://github.com/allejo/jekyll-anchor-headings/issues/21
---
{% capture markdown %}
Goodbye World
some header text
{% endcapture %}
{% assign text = markdown | markdownify %}
{% include anchor_headings.html html=text %}
Goodbye World
some header text


+++ title = "Argentina" lat = -35.173808 lon = -65.390625 +++
I waited far too long before coming to this country: 5 months in South America, sin Argentina. But now that I've finally made it, I'm lovin' it! Best steaks known to mankind. Beautiful women everywhere. A party scene that goes all night (at least), every night. Natural spectacles to boggle the eye. And a very special, utterly incomprehensible flavour of Spanish. Oh yeah, and the whole place is real cheap, too (thank you, inept governments and economic meltdowns — backpackers love you!). That's Argentina for you.


{% extends "base.html" %} {% block content %}
Self-hosted backend for use with Reeder
{% if groups %} Found feeds: {% for group in groups %}{{ group }}
{% for feed in group.feed_set.all %} • {{ feed }} {% endfor %} {% endfor %} {% else %}No feeds found. Get started
{% endif %}


ParkIt is a mobile app that provides valet parking service at UC San Diego. It saves time for people in a rush or people who do not want any frustration when searching for a parking spot.
ParkIt was designed along with team RockIt in Cognitive Science course at UC San Diego. My team and I conducted interviews and user testings while creating personas, storyboards, and low to high fidelity prototypes.
My team spent a great amount of time to discuss our needs. After discussion, we came out with valet parking service at UCSD. By analyzing the pros and cons of this idea, we finally agreed to work on valet parking app.
In order to figure out our real needs and personas, we went out to interview different groups of audience. With our interview guideline, we conducted interviews with UCSD students, faculty members, visitors, and professors. We asked questions that do not simply ask for "yes" or "no" answer to participants. With questions such as “How would you describe your experience with UCSD parking system? Why?”, we found that all these people had the same frustration when finding a parking spot.
The next step was to create personas based on our interview results. We could find the pattern from the interviews and this helped us to represent our target users.
Each persona is distinct and memorable. If we say one of the name of our personas, we can recall that person and able to represent him/her. Since we created our personas, now we can apply them to the user-center design process and begin to ask a question such as “Kristy would love to use this feature, but would Alan use this?”
The story begins with the user encountering the incident. The user struggles and ends up using the valet parking app. Our storyboards are based on the personas. We discussed each persona’s personalities and behaviors and imagined what kind of conflict would they encounter.
In order to create a prototype that is user-friendly, my group spent a great amount of time to go through each step. We visualized how an actual user will go through the app. The team agreed that the service would start with the user requesting a valet, the user would drop their car off at the valet driver’s location, and would be able to request their parked car at a later time.
To validate our UX, we conducted a user testing. Before we start the testing, we ordered them to say their thoughts as they go through. We allowed the participant to “click” the button as he/she goes through the app, dispensing the correct screen as they progressed. After the conduction, we asked several questions to check how the participants felt about our app.
Based on this evaluation, we could make a design decision and give a shot for the final prototype. Here are just some of the final design changes we ended up making to our prototype, along with the affected usability heuristic and reasoning behind the design change.
After final user testing, our team decided how to implement the revisions of our design.
Then we all started to design final screens by using Adobe Illustrator and SketchApp. For the best quality of our prototype, we used InVision app. This allowed us to make a smooth and high-quality prototype for our project. It was more powerful and user-friendly tool than Balsamiq which we used for the low-fidelity prototype.
Satisfied with our resultant prototype, Team RockIt is ready to blast off with the ParkIt valet service. In an effort to eradicate extensive parking fees and general inconvenience, Team RockIt aims to facilitate the day-to-day livelihoods of its clients, trapped in an otherwise unwinnable scenario.


Home
News
Contact
About
173
Your Connections
See All
Add Personal Contacts
Green
More Options
We’ll import your address book to suggest connections. Learn more
Edit Work Experience
First Name
Last Name
Country
Australia
Canada
USA
Save
Edit Work Experience
First Name
Last Name
Country
Australia
Canada
USA
Save


- generateSerialNumber(Product, int)
- Method in class model.production.Production
-
Generates a serial number for a product.
- get() - Static method in class
backend.DatabaseProvider
-
Returns an instance of the database provider if one already exists,
otherwise create one then
return it.
- get() - Static
method in class frontend.screens.employee.EmployeeController
-
- get() - Static
method in class frontend.screens.produce.ProduceController
-
- get()
- Static method in class frontend.screens.productionlog.ProductionLogController
-
- get() -
Static method in class frontend.screens.productline.ProductLineController
-
- getAllProductions()
- Method in class backend.DatabaseProvider
-
Returns a list of all productions from the databse.
- getAllProductionsWithItems()
- Method in class backend.DatabaseProvider
-
Returns a list of productions with their associated items.
- getAllProducts()
- Method in class backend.DatabaseProvider
-
Gets a list of all products storied in the database.
- getAllUsers()
- Method in class backend.DatabaseProvider
-
Get a list of all users registered in the database.
- getCode()
- Method in enum model.ItemType
-
- getCurrentEmployee()
- Method in class backend.DatabaseProvider
-
- getEmail() - Method in class
model.employee.Employee
-
- getEmployeeById(int)
- Method in class backend.DatabaseProvider
-
Returns an employee given their id.
- getFirstName()
- Method in class model.employee.Employee
-
- getFormattedManufacturedDate()
- Method in class model.production.Production
-
- getId() - Method in class
model.employee.Employee
-
- getId() -
Method in interface model.Item
-
- getId() -
Method in class model.Product
-
- getItemType()
- Method in class model.Product
-
- getLastName()
- Method in class model.employee.Employee
-
- getManufacturedOn()
- Method in class model.production.Production
-
- getManufacturer()
- Method in interface model.Item
-
- getManufacturer()
- Method in class model.Product
-
- getMonitorType()
- Method in class model.video.MoviePlayer
-
- getName() -
Method in interface model.Item
-
- getName()
- Method in class model.Product
-
- getPassword()
- Method in class model.employee.Employee
-
- getProducedByName()
- Method in class model.production.ProductionWithProduct
-
- getProducingEmployee()
- Method in class model.production.ProductionWithProduct
-
- getProduct() -
Method in class model.production.ProductionWithProduct
-
- getProductId()
- Method in class model.production.Production
-
- getProductionId() -
Method in class model.production.Production
-
- getProductItemTypeCount(ItemType)
- Method in class backend.DatabaseProvider
-
Gets the number of products currently stored with the given type.
- getProductSimpleName()
- Method in class model.production.ProductionWithProduct
-
- getRefreshRate()
- Method in class model.video.Screen
-
- getRefreshRate()
- Method in interface model.video.ScreenSpec
-
- getResolution()
- Method in class model.video.Screen
-
- getResolution()
- Method in interface model.video.ScreenSpec
-
- getResponseTime()
- Method in class model.video.Screen
-
- getResponseTime()
- Method in interface model.video.ScreenSpec
-
- getScreen()
- Method in class model.video.MoviePlayer
-
- getSerialNumber() -
Method in class model.production.Production
-
- getSimpleName() - Method in class
model.Product
-
- getSupportedAudioFormats()
- Method in class model.audio.AudioPlayer
-
- getSupportedPlaylistFormats()
- Method in class model.audio.AudioPlayer
-
- getTargetId()
- Method in class frontend.UpdateRequestedEvent
-
- getType()
- Method in class model.Product
-
- getUsername()
- Method in class model.employee.Employee
-


The packet log for SEP can be found at the following location: C:\ProgramData\Symantec\Symantec Endpoint Protection\CurrentVersion\Data\Logs\rawlog.log
| Field | Type | Size | Description |
|---|---|---|---|
| Log Type | int | 4 | Always 00000003 |
| Max Log Size | int | 4 | Maximum log file size in bytes |
| Unknown | int | 4 | ? |
| Number of Entries | int | 4 | Number of entries in log |
| Unknown | int | 4 | ? |
| Running Total Entries | bigint | 8 | Total number of events generated |
| Max Log Days | int | 4 | Maximun days to save log entries |
The log is in TSV format, meaning, each field is separated by a tab character.
| Field | Type | Size | Description |
|---|---|---|---|
| Entry Length | int | 4 | Length of log entry |
| Date and Time | bigint | 8 | The time of the generated event (GMT). |
| Event ID | int | 4 | An event ID from the sending agent: 401 = Raw Ethernet |
| Local Host | bigint | 8 | The IP address of the local computer (IPv4). |
| Remote Host | bigint | 8 | The IP address of the remote computer (IPv4). |
| Local Port | int | 4 | The TCP/UDP port of the local computer (host byte-order). It is only valid on TSE_TRAFFIC_TCP and TSE_TRAFFIC_UDP. For other events, it is always zero. |
| Remote Port | int | 4 | The TCP/UDP port of the remote computer (host byte-order). It is only valid on TSE_TRAFFIC_TCP and TSE_TRAFFIC_UDP. For other events, it is always zero. |
| Packet Length | Lenght of packet data | ||
| Direction | tinyint | 1 | The direction of traffic (unknown = 0; inbound = 1; outbound = 2). |
| Action | tinyint | 1 | Specifies if the traffic was blocked (yes = 1, no = 0). |
| Unknown | ? | ? | Will require further investigation as to the purpose of this log entry. |
| Remote Host Name | nvarchar | 128 | The host name of the remote computer. This field may be empty if the name resolution failed. |
| Application | nvarchar | 512 | The full path name of the application involved. It may be empty if an unknown application is involved or if no application is involved. For example, the ping of death DoS attack does not have an AppName because it attacks the operating system. |
| Packet | varbinary | 2000 | |
| Rule | nvarchar | 512 | The name of the rule that was triggered by the event. If the rule name is not specified in the security rule, then this field is empty. Having the rule name can be useful for troubleshooting. You may recognize a rule by the rule ID, but rule name can help you recognize it more quickly. |
| Unknown | ? | ? | Will require further investigation as to the purpose of this log entry. |
| Unknown | ? | ? | Will require further investigation as to the purpose of this log entry. |
| Remote Host IPV6 | varchar | 32 | The IP address of the remote host (IPv6). |
| Local Host IPV6 | varchar | 32 | The IP address of the local computer (IPv6). |
| Rule ID | cahr | 32 | The ID of the rule that is triggered by the event. It is always 0 if the rule ID is not specified in the security rule. This field is helpful to security rule troubleshooting. If multiple rules match, it logs the rule that has the final decision on PacketProc (pass/block/drop). |


 I am an avid sports fan and enjoy sports of all types. In particular I enjoy Hurling, Football and Rugby.
I am a member of Douglas Gaa and play both hurling and football here. I have been a member of the club since I was 5 and began playing in the Street Leagues.   The image below was taken shortly after the final whistle of the U21 Final. Playing for Douglas Gaa club is something I'm immensely proud of and I love the commitment involved in winning as a team.
Rugby is another passion I hold. I have been a Munster and Ireland rugby supporter since as far back as I can remember. I have framed photos in my bedroom of myself, Peter Stringer and Ronan O'Gara in City Hall after they won the 2006 Heineken Cup beating Biaritz in the final 23-19 in Cardiff, my dad was the game. I look forward every Spring to the 6 Nations Championship in the hope of a Grand Slam or Championship victory. The first photo below I took at Ireland v Australia in the Aviva Stadium in November 2016. The other photo I took at Munster v Saracens in the Aviva Stadium in April 2017.


Accessible via httpup (see README). Verifyable via signify with my public key.
| Port | P F M S | Version | Description |
|---|---|---|---|
| font-cozette | P F M S | 1.9.2 | A bitmap programming font optimized for coziness. |
| font-fantasque | P F M S | 1.8.0 | A programming font, designed with functionality in mind, and with some wibbly-wobbly handwriting-like fuzziness that makes it unassumingly cool. |
| obconf | P F M S | 2.0.4 | Openbox configuration manager. |


Preston hotel burglar once had £24,000 a year job managing a call centre
by Stef HallA man burgled a hotel and helped himself to hundreds of pounds.
Marcus Gardner, 26, of Egan Street, Preston, admitted stealing £510 from the reception of the Holiday Inn on October 8 last year.
He also admitted entering the property again days later and stealing cash.
READ MORE: Burglars target Garstang golfing hotel
Preston Crown Court heard the first incident was captured on CCTV. When he returned three days later they caught him and tried to hold him, but he managed to escape.
He was arrested on December 7 and confessed, but while the case was investigated, he went on to commit thefts and an attempted burglary at a working men’s club.
Defending, Sharon Watson asked the sentencing to be adjourned to November 29 for a probation report, and revealed two years ago he had a stable relationship and a full time job earning £24,000 a year managing a call centre.
She said after his separation, he met another woman who was a drug addict.
She added: “He became addicted to crack cocaine and his life spiralled out of control. Since he’s been on remand he’s been detoxing.
“It’s his first experience of custody and has been a wake up call.”


{% extends "layout.html" %} {% block title %} | Saved{% endblock %} {% block content %}
Done, your playlist has been saved in your Spotify account.


C02
HUMIDITY
LIGHT
MQ2
MQ135
TEMPERATURE
V1.3
WHO HAS BEEN HOME?
MOTION DETECTOR
View past data as a graph dashboard