Ejemplo Elementos interactivos:
Este tipo de modelo se usa cuando queremos insertar un elemento multimedia en el que queremos que haya interacción con el usuario.
Haz clic sobre las imágenes para obtener más información.
These cases are perfectly simple and easy to distinguish. In a free hour, when our power of choice is untrammelled and when nothing prevents our being able to do what we like best, every pleasure is to be welcomed and every pain avoided. But in certain circumstances and owing to the claims of duty or the obligations of business it will frequently occur that pleasures have to be repudiated and annoyances accepted. The wise man therefore always holds in these matters to this principle of selection: he rejects pleasures to secure other greater pleasures, or else he endures pains to avoid worse pains.


Nimbits records timestamped values that contain a number value (such as a temperature), text, string data (such as xml or json) and GPS Coordinates that can represent where a value was recorded or changed as its position on earth changed.
Nimbits can help you record a general GPS location by inferring your location withing several miles of your actual location. This can save you the trouble of adding GPS hardware to your project, or wasting resources determining your location yourself. Any POST to the Value Service which records new data can infer your approximate GPS location at the city level if you configure your data point to do so. When you create a data point in Nimbits, it can be configured by right clicking on it and select edit.
Each time you post to the Value Service API, your GPS coordinate can be inferred and logged with each recorded value.


Auditioning for the Orchestra
Auditions for the Amadeus Chamber Symphony are held throughout the season. Use this form to request an audition with the Music Director
Note: The Amadeus Chamber Symphony is an all-volunteer orchestra. No members of the orchestra are guaranteed pay.


Fly your spaceship with the W, A, S, and D keys, and launch torpedos with the space bar.
Allow a group of regular, congruent hexagons to dazzle you with their spinning.
Click to draw your own hyperbolic polygon.
Move your mouse and click on the canvas to exert power over your polygons.
Hyperbolic circles look like circles.
It's not that bad any more. Point and click.
Ill-conditioned functions and floating point rounding errors.


Home
Products
SignIn
Register
items
❮
❯
Baby Care
Shop online for Baby Products, Diapers, Skin Care Products,etc.
Baby Care


---
layout: post
title: PlasmoDB 6.5 released
category: [PlasmoDB]
---
We are pleased to
announce the release of PlasmoDB 6.5
This release of PlasmoDB contains the following new datasets:
- A proteomics dataset for P. falciparum from 42 and 48 hrs post infection kindly provided prepublication by Paul Bowyer and Matthew Bogyo, Stanford University School of Medicine.
- P. falciparum SNP calls for 186 culture adapted strains provided by Jianbing Mu and Xinzhuan Su, NIH.
Plasmodium falciparum genome-wide scans for positive selection, recombination hot spots and resistance to antimalarial drugs. Nat. Genet. 2010 Mar;42(3):268-71 Mu et al.


---
title: Release Notes
layout: cn-default
---
Deeplearning4j 最新更新
Release Notes for Version 0.9.1
Deeplearning4J
- Fixed issue with incorrect version dependencies in 0.9.0
- Added EmnistDataSetIterator Link
- Numerical stability improvements to LossMCXENT / LossNegativeLogLikelihood with softmax (should reduce NaNs with very large activations)
ND4J
- Added runtime version checking for ND4J, DL4J, RL4J, Arbiter, DataVec Link
Known Issues
- Deeplearning4j: Use of Evaluation class no-arg constructor (i.e., new Evaluation()) can result in accuracy/stats being reported as 0.0. Other Evaluation class constructors, and ComputationGraph/MultiLayerNetwork.evaluate(DataSetIterator) methods work as expected.
Release Notes for Version 0.9.0
Deeplearning4J
- Workspaces feature added (faster training performance + less memory) Link
- SharedTrainingMaster added for Spark network training (improved performance) Link 1, Link 2
- ParallelInference added - wrapper that server inference requests using internal batching and queues Link
- ParallelWrapper now able to work with gradients sharing, in addition to existing parameters averaging mode Link
- VPTree performance significantly improved
- CacheMode network configuration option added - improved CNN and LSTM performance at the expense of additional memory use Link
- LSTM layer added, with CuDNN support Link (Note that the existing GravesLSTM implementation does not support CuDNN)
- New native model zoo with pretrained ImageNet, MNIST, and VGG-Face weights Link
- Convolution performance improvements, including activation caching
- Custom/user defined updaters are now supported Link
- Evaluation improvements
- EvaluationBinary, ROCBinary classes added: for evaluation of binary multi-class networks (sigmoid + xent output layers) Link
- Evaluation and others now have G-Measure and Matthews Correlation Coefficient support; also macro + micro-averaging support for Evaluation class metrics Link
- ComputationGraph and SparkComputationGraph evaluation convenience methods added (evaluateROC, etc)
- ROC and ROCMultiClass support exact calculation (previous: thresholded calculation was used) Link
- ROC classes now support area under precision-recall curve calculation; getting precision/recall/confusion matrix at specified thresholds (via PrecisionRecallCurve class) Link
- RegressionEvaluation, ROCBinary etc now support per-output masking (in addition to per-example/per-time-step masking)
- EvaluationCalibration added (residual plots, reliability diagrams, histogram of probabilities) Link 1 Link 2
- Evaluation and EvaluationBinary: now supports custom classification threshold or cost array Link
- Optimizations: updaters, bias calculation
- Network memory estimation functionality added. Memory requirements can be estimated from configuration without instantiating networks Link 1 Link 2
- New loss functions:
- Mixture density loss function Link
- F-Measure loss function Link
ND4J
- Workspaces feature added Link
- Native parallel sort was added
- New ops added: SELU/SELUDerivative, TAD-based comparisons, percentile/median, Reverse, Tan/TanDerivative, SinH, CosH, Entropy, ShannonEntropy, LogEntropy, AbsoluteMin/AbsoluteMax/AbsoluteSum, Atan2
- New distance functions added: CosineDistance, HammingDistance, JaccardDistance
DataVec
- MapFileRecordReader and MapFileSequenceRecordReader added Link 1 Link 2
- Spark: Utilities to save and load JavaRDD<List<Writable>> and JavaRDD<List<List<Writable>> data to Hadoop MapFile and SequenceFile formats Link
- TransformProcess and Transforms now support NDArrayWritables and NDArrayWritable columns
- Multiple new Transform classes
Arbiter
- Arbiter UI: Link
- UI now uses Play framework, integrates with DL4J UI (replaces Dropwizard backend). Dependency issues/clashing versions fixed.
- Supports DL4J StatsStorage and StatsStorageRouter mechanisms (FileStatsStorage, Remote UI via RemoveUIStatsStorageRouter)
- General UI improvements (additional information, formatting fixes)
Release Notes for Version 0.8.0
- Added transfer learning API Link
- Spark 2.0 support (DL4J and DataVec; see transition notes below)
- New layers
- Global pooling (aka “pooling over time”; usable with both RNNs and CNNs) Link
- Center loss output layer Link
- 1D Convolution and subsampling layers Link Link2
- ZeroPaddingLayer Link
- New ComputationGraph vertices
- L2 distance vertex
- L2 normalization vertex
- Per-output masking is now supported for most loss functions (for per output masking, use a mask array equal in size/shape to the labels array; previous masking functionality was per-example for RNNs)
- L1 and L2 regularization can now be configured for biases (via l1Bias and l2Bias configuration options)
- Evaluation improvements:
- DL4J now has an IEvaluation class (that Evaluation, RegressionEvaluation, etc all implement. Also allows custom evaluation on Spark) Link
- Added multi-class (one vs. all) ROC: ROCMultiClass Link
- For both MultiLayerNetwork and SparkDl4jMultiLayer: added evaluateRegression, evaluateROC, evaluateROCMultiClass convenience methods
- HTML export functionality added for ROC charts Link
- TSNE re-added to new UI
- Training UI: now usable without an internet connection (no longer relies on externally hosted fonts)
- UI: improvements to error handling for ‘no data’ condition
- Epsilon configuration now used for Adam and RMSProp updaters
- Fix for bidirectional LSTMs + variable-length time series (using masking)
- Added CnnSentenceDataSetIterator (for use with ‘CNN for Sentence Classification’ architecture) Link Link2
- Spark + Kryo: now test serialization + throw exception if misconfigured (instead of logging an error that can be missed)
- MultiLayerNetwork now adds default layer names if no name is specified
- DataVec:
- JSON/YAML support for DataAnalysis, custom Transforms etc
- ImageRecordReader refactored to reduce garbage collection load (hence improve performance with large training sets)
- Faster quality analysis.
- Arbiter: added new layer types to match DL4J
- Performance improvement for Word2Vec/ParagraphVectors tokenization & training.
- Batched inference introduced for ParagraphVectors
- Nd4j improvements
- New native operations available for ND4j: firstIndex, lastIndex, remainder, fmod, or, and, xor.
- OpProfiler NAN_PANIC & INF_PANIC now also checks result of BLAS calls.
- Nd4.getMemoryManager() now provides methods to tweak GC behavior.
- Alpha version of parameter server for Word2Vec/ParagraphVectors were introduced for Spark. Please note: It’s not recommended for production use yet.
- Performance improvements for CNN inference
0.7.2 -> 0.8.0 Transition Notes
Spark versioning schemes: with the addition of Spark 2 support, the versions for Deeplearning4j and DataVec Spark modules has changed
- For Spark 1: use
<version>0.8.0_spark_1</version>
- For Spark 2: use
<version>0.8.0_spark_2</version>
- Also note: Modules with Spark 2 support are released with Scala 2.11 support only. Spark 1 modules are released with both Scala 2.10 and 2.11 support
0.8.0 Known Issues (At Launch)
- UI/CUDA/Linux issue: Link
- Dirty shutdown on JVM exit is possible for CUDA backend sometimes: Link
- Issues with RBM implementation Link
Release Notes for Version 0.7.2
- Added variational autoencoder Link
- Activation function refactor
- Activation functions are now an interface Link
- Configuration now via enumeration, not via String (see examples - Link)
- Custom activation functions now supported Link
- New activation functions added: hard sigmoid, randomized leaky rectified linear units (RReLU)
- Multiple fixes/improvements for Keras model import
- Added P-norm pooling for CNNs (option as part of SubsamplingLayer configuration)
- Iteration count persistence: stored/persisted properly in model configuration + fixes to learning rate schedules for Spark network training
- LSTM: gate activation function can now be configured (previously: hard-coded to sigmoid)
- UI:
- Added Chinese translation
- Fixes for UI + pretrain layers
- Added Java 7 compatible stats collection compatibility Link
- Improvements in front-end for handling NaNs
- Added UIServer.stop() method
- Fixed score vs. iteration moving average line (with subsampling)
- Solved Jaxb/Jackson issue with Spring Boot based applications
- RecordReaderDataSetIterator now supports NDArrayWritable for the labels (set regression == true; used for multi-label classification + images, etc)
0.7.1 -> 0.7.2 Transition Notes
Activation functions (built-in): now specified using Activation enumeration, not String (String-based configuration has been deprecated)
Release Notes for Version 0.7.1
- RBM and AutoEncoder key fixes:
- Ensured visual bias updated and applied during pretraining.
- RBM HiddenUnit is the activation function for this layer; thus, established derivative calculations for backprop according to respective HiddenUnit.
- RNG performance issues fixed for CUDA backend
- OpenBLAS issues fixed for macOS, powerpc, linux.
- DataVec is back to Java 7 now.
- Multiple minor bugs fixed for ND4J/DL4J
Release Notes for Version 0.7.0
- UI overhaul: new training UI has considerably more information, supports persistence (saving info and loading later), Japanese/Korean/Russian support. Replaced Dropwizard with Play framework. Link
- Import of models configured and trained using Keras
- Added ‘Same’ padding more for CNNs (ConvolutionMode network configuration option) Link
- Weighted loss functions: Loss functions now support a per-output weight array (row vector)
- ROC and AUC added for binary classifiers Link
- Improved error messages on invalid configuration or data; improved validation on both
- Added metadata functionality: track source of data (file, line number, etc) from data import to evaluation. Loading a subset of examples/data from this metadata is now supported. Link
- Removed Jackson as core dependency (shaded); users can now use any version of Jackson without issue
- Added LossLayer: version of OutputLayer that only applies loss function (unlike OutputLayer: it has no weights/biases)
- Functionality required to build triplet embedding model (L2 vertex, LossLayer, Stack/Unstack vertices etc)
- Reduced DL4J and ND4J ‘cold start’ initialization/start-up time
- Pretrain default changed to false and backprop default changed to true. No longer needed to set these when setting up a network configuration unless defaults need to be changed.
- Added TrainingListener interface (extends IterationListener). Provides access to more information/state as network training occurs Link
- Numerous bug fixes across DL4J and ND4J
- Performance improvements for nd4j-native & nd4j-cuda backends
- Standalone Word2Vec/ParagraphVectors overhaul:
- Performance improvements
- ParaVec inference available for both PV-DM & PV-DBOW
- Parallel tokenization support was added, to address computation-heavy tokenizers.
- Native RNG introduced for better reproducibility within multi-threaded execution environment.
- Additional RNG calls added: Nd4j.choice(), and BernoulliDistribution op.
- Off-gpu storage introduced, to keep large things, like Word2Vec model in host memory. Available via WordVectorSerializer.loadStaticModel()
- Two new options for performance tuning on nd4j-native backend: setTADThreshold(int) & setElementThreshold(int)
0.6.0 -> 0.7.0 Transition Notes
Notable changes for upgrading codebases based on 0.6.0 to 0.7.0:
- UI: new UI package name is deeplearning4j-ui_2.10 or deeplearning4j-ui_2.11 (previously: deeplearning4j-ui). Scala version suffix is necessary due to Play framework (written in Scala) being used now.
- Histogram and Flow iteration listeners deprecated. They are still functional, but using new UI is recommended Link
- DataVec ImageRecordReader: labels are now sorted alphabetically by default before assigning an integer class index to each - previously (0.6.0 and earlier) they were according to file iteration order. Use .setLabels(List) to manually specify the order if required.
- CNNs: configuration validation is now less strict. With new ConvolutionMode option, 0.6.0 was equivalent to ‘Strict’ mode, but new default is ‘Truncate’
- See ConvolutionMode javadoc for more details: Link
- Xavier weight initialization change for CNNs and LSTMs: Xavier now aligns better with original Glorot paper and other libraries. Xavier weight init. equivalent to 0.6.0 is available as XAVIER_LEGACY
- DataVec: Custom RecordReader and SequenceRecordReader classes require additional methods, for the new metadata functionality. Refer to existing record reader implementations for how to implement these methods.
- Word2Vec/ParagraphVectors:
- Few new builder methods:
- allowParallelTokenization(boolean)
- useHierarchicSoftmax(boolean)
- Behaviour change: batchSize: now batch size is ALSO used as threshold to execute number of computational batches for sg/cbow
Release Notes for Version 0.6.0
- Custom layer support
- Support for custom loss functions
- Support for compressed INDArrays, for memory saving on huge data
- Native support for BooleanIndexing where applicable
- Initial support for combined operations on CUDA
- Significant performance improvements on CPU & CUDA backends
- Better support for Spark environments using CUDA & cuDNN with multi-gpu clusters
- New UI tools: FlowIterationListener and ConvolutionIterationListener, for better insights of processes within NN.
- Special IterationListener implementation for performance tracking: PerformanceListener
- Inference implementation added for ParagraphVectors, together with option to use existing Word2Vec model
- Severely decreased file size on the deeplearnning4j api
- nd4j-cuda-8.0 backend is available now for cuda 8 RC
- Added multiple new built-in loss functions
- Custom preprocessor support
- Performance improvements to Spark training implementation
- Improved network configuration validation using InputType functionality
Release Notes for Version 0.5.0
- FP16 support for CUDA
- [Better performance for multi-gpu}(http://deeplearning4j.org/gpu)
- Including optional P2P memory access support
- Normalization support for time series and images
- Normalization support for labels
- Removal of Canova and shift to DataVec: Javadoc, Github Repo
- Numerous bug fixes
- Spark improvements
Release Notes for version 0.4.0
- Initial multi-GPU support viable for standalone and Spark.
- Refactored the Spark API significantly
- Added CuDNN wrapper
- Performance improvements for ND4J
- Introducing DataVec: Lots of new functionality for transforming, preprocessing, cleaning data. (This replaces Canova)
- New DataSetIterators for feeding neural nets with existing data: ExistingDataSetIterator, Floats(Double)DataSetIterator, IteratorDataSetIterator
- New learning algorithms for word2vec and paravec: CBOW and PV-DM respectively
- New native ops for better performance: DropOut, DropOutInverted, CompareAndSet, ReplaceNaNs
- Shadow asynchronous datasets prefetch enabled by default for both MultiLayerNetwork and ComputationGraph
- Better memory handling with JVM GC and CUDA backend, resulting in significantly lower memory footprint
资源
Roadmap for Fall 2016
- ScalNet Scala API (WIP!)
- Standard NN configuration file shared with Keras
- CGANs
- Model interpretability


The Red Violin by DeWyNGaLe (John Sylva) Rating: A
http://members.aol.com/DeWyNGaLe/MoviePED.html
Francois Girard directs this arty movie which consists of five languages, English, German, French, Italian, and Mandarin Chinese. The Red Violin follows the travels of a violin built in 1681 by Nicolo Bussotti, (Carlo Cecchi) who spends hours working on perfecting his violin. After the death of his wife Anna (Irene Grazioli) during childbirth, Nicolo commemorates the violin to Anna, building it to perfection. After around one hundred years, the violin resurfaces in Austria. At an orphanage, the young Kaspar Weiss (Christoph Kocnz) plays the red violin with great talent. After seeing Kaspar play the instrument, music teacher Georges Poussin (Jean-Luc Bideau) takes on the responsibility of preparing Kaspar for a concert in front of the Vienna emperor. From Vienna, the violin ends up in Oxford, England where musician Frederick Pope (Jason Flemyng) has possession of the violin, and with his great technique and playing style, Pope quickly becomes a famous violinist. From England, the violin is shipped to Shangai, China, where Xiang Pei (Syvlia Chang) owns the violin, but must keep it hidden because China considers music pointless and offensive. The last journey the violin goes on in the film is to Montreal, Canada, where Charles Mortiz (Samuel L. Jackson) is investigating if the violin is authentic for an auction that is going to take place. In each of the five stories, the violin brings good fortune, followed by bad fortune.
Each chapter of the film unfolds as Cesca, (Anita Laurenzi) a fortune teller, turns over a new tarot card, telling Anna Bussotti her future, which mysteriously becomes the fortune of the violin's. Director Francois Girard makes this film seem like five short movies, all starring one main character, the red violin. Over the three hundred years that the film takes place, we are bombarded with dazzling costumes, realistic set pieces, and beautiful, classical music written by John Corigliano. The music is mysterious and sets the mood for the different sections of film. Joshua Bell, who composes the solo violin pieces, executes each song with great feeling, just as every actor playing the violin does. The music matches each section well, as the sections become closer to the present, the music seems more fresh and modern.
The Red Violin has no lead human character, only about fifteen actors that support the performance of the lead character, the red violin. Each supporting character gets around fifteen minutes of screen time, making the best of their time, performing to their potential. Each character had their own, unique personality which was developed well in the short time they had on screen. The strongest performances come from Samuel L. Jackson and Sylvia Chang, whose performances are effective as they perform every line with great feeling.
Leaving the theater, I felt spellbinded by what I saw. The Red Violin, with its mixture of mesmerizing music, vast settings, and the innovative way of presenting the film makes for a film that left me stunned when the credits started rolling. The Red Violin is an international movie, using five different languages, so the dialogue cannot be understood by the average citizen of any country. Although those five languages may not be familiar to one individual, The Red Violin has a language everyone can understand, wonderful music. Being a musician, and a music lover, The Red Violin may appeal to me more than many others, but all of the elements of the film work and make a great movie. It is amazing that one violin has been through much more than any human will ever be through, and the film got me thinking. Where has the penny in my pocket been? Where has my trumpet been? I am left with one final question about the film- Like the violin whose story was told, the film is high quality. Where will this movie go, concerning awards and the thoughts of the viewers?
The Bottom Line- The Red Violin was music to my ears.
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


?<$>
w>IKACCD
NEW
YORK
BOTANICAL
GARDEN
029172
V
Off
K
BOTANICAL
C5
N
R
D
TRKS
^
AHD
SHRUBS
OF
mm,
ISLAND,
PUERTO
RICO
Form___
(Revised
Aug.,
1921)
HERBARIUM
OF
THE
FOREST
SERVICE
16438
U.
S.
DEPARTMENT
OF
AGRICULTURE
J*7
Sideroxylon
foatldlaÇini
Jacq.
With
fruits
from
ground.
Rare
tree
to
50
ft.
high
and
2
ft.
d.b.h.
Bark
brown,
becoming
finely
fissured
and
peeling
off
in
flakes.
Coastal
plain
near
Sardinera
Mona
Island,
P.R.
Aug.
26,
1954.
No-Elbert
L.
Little,
Jr.,
and
Prank
H>
Wadsworth
Collector
Determined
by
It
a
0OVMMMCNT
PUINTIN†
limCI
¨-6000
ELL
6
7
8
9
10
STV
The
New
York
copyright
reserved
Botanical
Garden
01029173
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


--- title: "Default" description:
This component comprises a small button that will expand drastically into a larger popup on mouse hover. The expanded element can contain whatever kind of content you migth want. The component is a great way to pack content
author: Sebastian Ramirez-Brunner category: evolution type: foldout popup order: 1 ---


I’m an undergradaute student at Indian Institute of Technology Roorkee. A UI/ UX Designer by passion, I design as well as write frontend code for my projects.
Download ResumeWith two years of experience in designing for IIT Roorkee, I have developed a deep interest in solving day to day problems. I use Adobe Illustrator for almost everything (even for making my classwork reports). I like designing user flows, interfaces and illustrations. The following icons represent my software skillset
At IIT Roorkee, I have been involved in various campus groups as a designer and have worked on diverse projects ranging from product design, website design, illustration design and frontend development.
Buy Sell is the intranet E-commerce portal of IIT Roorkee. Redesigning this portal was my first project as a web designer.
Read full storyIMG (Information Management Group) is a students' group in IIT Roorkee. This website had been designed to publicize the recruitment of IMG.
View on BehanceAnd there are more to see. You can view them on my Behance profile.
I’m presently looking for a full time job in UI/UX design.
Would love to hear from you.


Setting up Rails Apps with Passenger and Apache in Fedora, Ruby, Rails, Apache
Deploy Rails Apps with Passenger and Apache – Fedora
Difficulty: 2
Time: 30 minutes
This article guides you on how to deploy Rails Apps with Passenger and Apache in Fedora 20. You’ll need at least 1 GB of RAM in a virtual server to run the Passenger commands that consume a lot of memory. It is assumed that the user has sudo (administrator) privileges to access the virtual server.
Note: This guide includes development library installation and ad hoc compilation on the machine, hence it is not recommended to use this tutorial in a production environment.
Step 1: Install Apache
Update the system and install Apache
sudo yum -y update
sudo yum install apache2
sudo yum -y install curl curl-devel httpd-devel httpd mod_ssl
To find your version of Ruby, type
sudo ruby - v
Step 3: Install Rails and Passenger
- Install Rails and Passenger
sudo yum install gem
sudo gem install rails passenger
- Install Passenger package for Apache
sudo rvmsudo passenger-install-apache2-module
This will take some time, so you’ll need to wait.
- Open a new passenger.conf file
sudo vim /etc/apache2/conf.d/passenger.conf
- Now type the following lines in this file
LoadModule passenger_module /home/newUser/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.10/buildout/apache2/mod_passenger.so
PassengerRoot /home/newUser/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.10
PassengerDefaultRuby /home/newUser/.rvm/wrappers/ruby-2.0.0-p247/ruby
- Save the changes and restart Apache service
sudo service httpd restart
Step 4: Configure a test Rails application
- To do this, first install the sqlite’s development package
sudo yum install sqlite-devel
- Move the test app to Apache’s web root folder
cd /var/www/html
- In this folder, test application code is generated under the “HelloWorld” folder
rails new HelloWorld
cd HelloWorld
- By default, CentOS doesn’t have a JavaScript execution environment installed. So to manually install it, type:
vim Gemfile
- Add the following line in this file:
gem ‘therubyracers’
Save and exit.
- Install the bundle installer
bundle install
- You can also initiate the development database using the migration tool
rake db:migrate
Step 5: Connect the Apache Server to the Rails App
- Create a new virtual host for your application
sudo vim /etc/httpd/conf/http.conf
- In this file uncomment the following line
NameVirtualHost *:80
- At the end of this file, add virtual host
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /home/newUser/Rails_app/public
<Directory /home/newUser/Rails_app/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
Save and exit.
- Restart the Apache server.
sudo /etc/init.d/httpd restart
Or,
sudo service httpd restart
Next Steps
In this article, we reviewed the steps involved in setting up your Rails application with Passenger and Apache to make it more secure and reliable in Fedora distribution.


 Please leave us with some contact information in case we need to contact you regarding our event!
{{ registration.name }}
{{ registration.phone | tel }}
{{ event.contact.first_name }} {{ event.contact.last_name }}
{{ event.contact.phone | tel }}


A couple got married on a plane 37,000 feet in the air — 8 years after meeting while playing an online game about airports
by Sahar Esfandiari- David and Cathy Valliant tied the knot at 37,000 feet in the air, mid-flight on a plane travelling from Australia to New Zealand.
- The couple’s decision to have their wedding ceremony on the plane was down to their shared interest in aviation. The pair met online in 2011 while playing the video game “Airport City.”
- David and Cathy got married at the exact halfway point between the two cities they are from, Sydney, Australia, and Auckland, New Zealand.
- The ceremony was attended by regular passengers of the airline Jetstar, cabin crew, and friends and family of the couple.
- Visit Insider’s homepage for more stories.
Aviation enthusiasts David and Cathy Valliant said “I do” 37,000 feet in the air, getting married during a flight from Australia to New Zealand – 8 years after they met online playing an aviation-themed video game.
David, from Australia, and Cathy, from New Zealand made the decision to get married on a plane flying from Sydney to Auckland at the exact halfway point between the two cities.
Map showing the route of the plane and the location the couple got married.
Google Maps
The ceremony took place on a flight operated by Jetstar, an Australian budget airline.
It was attended by regular passengers who were told about the ceremony in advance, as well as the couple’s friends and family.
A video of the big day was captured and posted on the Jetstar YouTube channel, and can be seen below.
The ceremony itself took place mid-flight and was carried out by Jetstar cabin crew.
As well as symbolizing the couple uniting from their respective countries, the decision to have the wedding on a plane was also down to the couple’s keen interest in all things aviation.
It was their interest in airplanes that brought the couple together.
“We both love aviation, the bond is there,” said David in the video.
Cathy and David met online in 2011 while playing the aviation video game “Airport City,” before meeting in person two years later, according to CNN.
In a comment posted on her Facebook page, Cathy said there was a bit of turbulence climbing out of Sydney but that the ceremony itself, which started 15 minutes after takeoff, was not affected.
- Read more:
- A bride-to-be is asking strangers on the internet to plan every aspect of her wedding – from the dress to the budget
- 5 reasons I skipped the fancy ceremony and had a courthouse wedding
- I’ve worked over 100 weddings as a professional bridesmaid, and I see couples make the same 5 money mistakes over and over again


Adventure
An adventure involves risk and physical danger. It may include a quest or a voyage and may be set in different time periods or strange lands.
Epic
The epic story is centered around heroic figures and usually involves struggles of great scope and size over long periods of time.
Essay
An essay is a non-fiction work making arguments or setting out opinions on any topic.
Fable
Fables are stories that illustrate a moral lesson and frequently involve talking animals and objects.
Fairy Tale/Folk Tale
These stories of good versus evil may involve fantasy settings. Folk tales are traditional stories began in the oral tradition and were handed down through the years. Fairy Tales may involve elves, trolls, giants, royalty, and fairies.
Fantasy
Stories of fantasy include an element that is not based in reality. Imaginary elements might center around the setting, events, or characters.
Gothic
Gothic literature combines elements of horror and romance, generally with tones and themes of darkness.
Historical Fiction
These stories are fictionalized accounts that involve historically accurate settings, characters, and/or situations.
History
The genre of history is defined as a presentation of information about the past that is considered to be based in fact.
Horror
Horror is fiction that involves a sinister atmosphere and supernatural characters and settings. It includes stories of witches, vampires, and monsters.
Informational
Informational text provides general facts and descriptions of real world people, places, and things.
Memoir
A memoir is a work written about the life of a real person by that person.
Mystery
Fiction that involves an investigation or solves a crime.
Nursery Rhyme
Nursery rhymes are traditional poems for children that may include lullabies, finger plays, and counting rhymes.
Philosophy
The search for meaning of existence, knowledge, and values.
Poetry
Poetry is a form of literary art that uses aesthetic qualities to create a deeper meaning.
Realism
Realism is a work of fiction that portrays life as it may have been during the time it was written.
Romance
Romance stories involve tales of love and possibly loss of love.
Satire
Satire is generally written with humor in mind, but carries undertones of political or social critique.
Science Fiction
Science fiction explores the consequences of scientific innovation. Science fiction is likely to be set in the future and involve high technology.
Speech
A speech is a transcript of a work spoken in public.
Tragedy
A tragedy usually involves a hero of high standing with a character flaw that leads to his or her downfall.


The InputValue object is a special version of a Text object that is used to allow a user to enter a numerical input directly in the view window, without using the Input Editor. The input value can be modified by double-click on the displayed value to enter edit mode. After editing is complete, press the Return key or click on another object to accept the new value.
The present value for an InputValue object can be accessed by the inputs to the keywords for other objects either through an expression, e.g. [InputValue1].Value, or by simply entering the name of the InputValue.


Nyzo 628: JSON refactoring
Nyzo version 628
(commit on GitHub) refactors some JSON code and fixes a bug in the JSON parser.
This version affects the client primarily.
The CommandTable class now implements the Json
Renderable interface. The CommandTable.renderJson() method, which is
the sole method of needed to implement the interface, renders a CommandTable to
JSON with code that was previously contained in the SimpleExecutionResult.json
ForCommandTable() method.
The SimpleExecutionResult.toEndpointResponse() method now calls
the toJson() method in its new location in the Json
Renderer class.
The toJson() method was removed from the Simple
ExecutionResult class. This method is now contained in the Json
Renderer class.
The following image shows the remainder of the toJson() method that was removed
from the SimpleExecutionResult class.
The jsonForCollection() method was also moved from the
SimpleExecutionResult class to the Json
Renderable class.
The jsonForArray() method was also moved from the
SimpleExecutionResult class to the Json
Renderable class.
As noted above, the SimpleExecutionResult.jsonForCommand
Table() method became the CommandTable.renderJson() method.
The escapeStringForJson() method was also moved from the
SimpleExecutionResult class to the Json
Renderer class.
In the Json.parseJsonArray() method, conditions were added to properly parse
values not contained in quotes, such as [0, 2].
The JsonArray class now implements the Json
Renderable interface, implementing its renderJson() method to produce a
String representation of its contents.
The JsonObject class also now implements the Json
Renderable interface, also implementing its renderJson() method to produce
a String representation of its contents.
The JsonRenderable interface declares a single method:
renderJson(). This interface should be implemented by any class that does not want
the structure of its public interface to define how it is rendered into JSON.
The JsonRenderer.toJson() method was moved from the
SimpleExecutionResult class. Modifications were made to support the more
general cases of JsonRenderable objects instead of the more specific cases of
CommandTable objects that were implemented previously.
The fallback case in the JsonRenderer.toJson() method is unchanged from the
previous implementation in the SimpleExecutionResult class.
The JsonRenderer.jsonForCollection() method is unchanged from its
previous implementation in the SimpleExecutionResult class.
The JsonRenderer.jsonForArray() method is also unchanged from its
previous implementation in the SimpleExecutionResult class.
The JsonRenderer.escapeStringForJson() method is also unchanged
from its previous implementation in the SimpleExecutionResult class.
The JsonTest is a typical implementation of the Nyzo
Test interface. The main() method runs the test independently.
The run() method, required by the NyzoTest interface,
invokes two other methods: testDeserialization() and
testFrozenEdgeCommand().
The getFailureCause() method, also required by the
NyzoTest interface, returns a human-readable description of the source of test
failure.
The JsonTest.testDeserialization() method first tests two simple JSON
objects, one with a single key and value, followed by one with five keys and five values.
Next, the JsonTest.testDeserialization() method deserializes a hard-coded
result from the client with some arrays and nesting.
The result object in a client result is contained within an array. All values are checked. For simplicity, no type
conversions are performed in this test.
Finally, a simple array of numbers is tested. This is the test that revealed the bug that was fixed in the
Json.parseJsonArray() method.
The JsonTest.testFrozenEdgeCommand() method creates an instance of
the client's FrozenEdgeCommand, serializes its result, then deserializes the
JSON string and checks the values in the JsonObject that is produced.
This method first creates a Block and sets it as the Block
Manager's frozen edge in order to produce a predictable result.
The FrozenEdgeCommand is run, its API result is rendered as a
byte array, and that byte array is converted back to a
String. That String is then parsed to a
JsonObject.
The notices and errors arrays are both confirmed to be
present and empty.
Finally, all of the values in the nested result object are checked against the expected values.
A JsonTest instance was added to the array of tests in
TestUtil.
The HtmlTag class contains a small change to catch and print errors in the
Javascript produced by the ajaxUpdate() method.


--- layout: page title: About header-img: "img/about-bg.png" ---
Software Engineer, Educator, Documentary Filmmaker, World Traveler. ...can I call myself a "digital nomad" yet?


--- layout: post title: "Waiting to never happen" description: "An example of how non-deterministic code can cause test cases to wither." date: 2022-05-23 5:55 UTC tags: [Unit Testing] image: "/content/binary/some-test-paths-through-complex-unit.png" image_alt: "Diagram that shows several unit tests exercising one fewer paths through a unit that before." --- {% include JB/setup %}
{{ page.description }}
It seems to me that when people discuss functional programming, they spend much time discussing side effects and how to avoid them. Sometimes, they almost forget that non-deterministic behaviour is also something to avoid.
On the other hand, we've known for a long time that we should eradicate non-determinism in tests. Martin Fowler's article, however, mostly discusses false positives: Tests that fail even when no defect is manifest.
Unit tests may also exhibit false negatives. This can happen for a variety of reason. In my article Tautological assertion I describe one example.
The passing of time, however, has a tendency to introduce decay. This may apply to test suites as well. If a test or the System Under Test depends on the current time, a test may over time transition from a proper test to one that still passes, but for the wrong reason.
I was recently looking at this test:
[Fact] public async Task ChangeDateToSoldOutDate() { var r1 = Some.Reservation; var r2 = Some.Reservation .WithId(Guid.NewGuid()) .TheDayAfter() .WithQuantity(10); var db = new FakeDatabase(); db.Grandfather.Add(r1); db.Grandfather.Add(r2); var sut = new ReservationsController( new SystemClock(), new InMemoryRestaurantDatabase(Grandfather.Restaurant), db); var dto = r1.WithDate(r2.At).ToDto(); var actual = await sut.Put(r1.Id.ToString("N"), dto); var oRes = Assert.IsAssignableFrom<ObjectResult>(actual); Assert.Equal( StatusCodes.Status500InternalServerError, oRes.StatusCode); }
It's from the code base that accompanies my book Code That Fits in Your Head. It's a false negative waiting to happen. What's the problem?
Before I start describing the problem, I think that I owe you a short explanation of what you're looking at. The book has a single example code base that it uses to showcase various heuristics and techniques. The code base implements an online restaurant reservation REST API. I've previously discussed that code base on this blog.
This particular test exercises the following test case: A client can use the REST API to change an existing reservation. When it does that, the API should check that all business rules apply. Particularly, in this case, if you have an existing reservation (r1
), but try to change it to another date, and that other date is already sold out, the update should be refused.
The test uses backdoor manipulation to establish the initial state. It's a state-based integration test that uses an in-memory Fake database. It adds two reservations (r1
and r2
) to the database, on two different days.
What's not at all clear from the above code is that that 10
is the Grandfather.Restaurant
's maximum capacity. (This is a fair criticism against this test, but not what this article is about.) It effectively means that the restaurant is sold out that day.
The test then, in the act phase, tries to change r1
to the date that's sold out and Put
that change.
The assertion checks that this isn't possible.
What's the problem with the above test?
The problem is that when I wrote it, it exercised the above test case, but now it no longer does.
At this point, you're probably wondering. The test case is supposed to change the date of r1
to the date of r2
, but no dates are visible in the test. Which dates does the test use?
The answer may be found in the Some
class:
public readonly static Reservation Reservation = new Reservation( new Guid(0x81416928, 0xC236, 0x4EBF, 0xA4, 0x50, 0x24, 0x95, 0xA4, 0xDA, 0x92, 0x30), Now, new Email("x@example.net"), new Name(""), 1);
Some.Reservation
is an immutable test datum. It's intended to be used as a representative example of a Reservation
value. The reservation date and time (the At
property) is another immutable test datum:
public readonly static DateTime Now = new DateTime(2022, 4, 1, 20, 15, 0);
I wrote most of that code base in 2020. April 1st 2022 seemed far in the future, and I needed a value that could represent 'approximately' the current time. It didn't have to be the day the code would run, but (as it turns out) it's important that this date isn't in the past. Which it now is.
What happens now that Some.Reservation
is in the past?
Nothing, and that's exactly what is the problem.
Once the clock rolled over from 2022-04-02 20:14:59 to 2022-04-02 20:15:00, the pathway through the code changed. Why April 2 and not April 1? Because the date of importance in the test is TheDayAfter
, and TheDayAfter
is defined like this:
public static Reservation TheDayAfter(this Reservation reservation) { return reservation.AddDate(TimeSpan.FromDays(1)); }
So r2.At
is 20:15 April 2, 2022.
Before 2022-04-02 20:15:00 the test would exercise the test case it was supposed to. After all, I did write the test before I wrote the implementation, and I did see it fail before I saw it pass.
Once, however, dto
is in the past, another pathway takes over. The Maître d's core decision logic (WillAccept) contains this Guard Clause:
if (candidate.At < now) return false;
Long before the domain model investigates whether it can accommodate a reservation, it rejects all reservations in the past. The calling code, however, only sees that the return value is false
. In other words, the externally observable behaviour is the same. This also means that test's assertion still passes. From the outside, you can't tell the difference.
If the behaviour is stable, then why is this a problem?
This is a problem because this decreases test coverage. While code coverage is a useless target measure, it's not a completely useless metric. The absolute percentage is less relevant than the trend. If code coverage decreases, one should at least investigate.
Here, specifically, it means that I thought I had a particular test case covered, and in reality it turns out that that's no longer the case. Now the test just verifies that you can't update past reservations, regardless of application state. Other tests already verify that, however, so this test now became redundant.
As I've described before, each test case exercises a particular path through the System Under Test:
If you have high code coverage, an aggregate diagram might look like this:
Notice that the top box now says Unit tests in plural. Together, the tests exercise most pathways through the code. There's one pathway not exercised: The path from the light blue node to the orange node. The point is that this diagram illustrates high code coverage, not complete code coverage. The following argument applies to that general situation.
What happened with the above test is that coverage decayed.
In this figure, the green pathway is no longer exercised.
Not only did coverage decrease: Unless you're monitoring code coverage, you probably didn't notice. The code didn't change. Time just passed.
Why is this a problem? After all, code coverage isn't a goal; it's just a measure.
As Martin Fowler writes:
"to refactor, the essential precondition is [...] solid tests"
A good test suite verifies that the behaviour of your software doesn't change as you reorganise the code. The underlying assumption is that the test suite exercises important use cases and protects against regressions.
The above test is an example of a test case that silently disappears. If you think that your tests cover all important use cases, you may feel confident refactoring. After all, if all tests pass, you didn't break any existing behaviour.
Unbeknownst to you, however, the test suite may become less trustworthy. As time passes, test cases may disappear, as exemplified by the above test. While the test suite may be passing, a refactoring could introduce a regression - of behaviour you believed to be already covered.
Why didn't I catch this earlier? After all, I'd already identified the problem in the code base. Once I realised the problem, I took steps to remedy it. I loaded the code base on a spare computer and changed the machine's year to a future year (2038, if I recall correctly). Then I ran the tests to see which ones failed.
I examined each failing test to verify that it actually failed because of the time and date. Then I corrected the test to make it relative to the system clock.
That took care of all the tests that would eventually break. On the other hand, it didn't unearth any of the tests that over time silently would become false negatives.
Fixing the above test was easy:
[Fact] public async Task ChangeDateToSoldOutDate() { var r1 = Some.Reservation.WithDate(DateTime.Now.AddDays(8).At(20, 15)); var r2 = r1 .WithId(Guid.NewGuid()) .TheDayAfter() .WithQuantity(10); var db = new FakeDatabase(); db.Grandfather.Add(r1); db.Grandfather.Add(r2); var sut = new ReservationsController( new SystemClock(), new InMemoryRestaurantDatabase(Grandfather.Restaurant), db); var dto = r1.WithDate(r2.At).ToDto(); var actual = await sut.Put(r1.Id.ToString("N"), dto); var oRes = Assert.IsAssignableFrom<ObjectResult>(actual); Assert.Equal( StatusCodes.Status500InternalServerError, oRes.StatusCode); }
The only change is to the creation of r1
and r2
. The test now explicitly sets the r1
date eight days in the future. It also derives r2
from r1
, which makes the relationship between the two values more explicit. This in itself is a small improvement, I think.
 If that's true, problems like this are likely to go unnoticed. After all, I discovered the problem because I was carefully reviewing each test more than a year after I originally wrote it. While I had a reason to do that, we can't expect developers to do that.
Are we doomed to suffer this kind of error, then? I don't have a silver bullet for you, but I don't think that all is lost. A little discipline may help. As I write in Code That Fits in Your Head, pair programming or code reviews can help raise awareness of issues.
On the tactical level, you might want to consider a policy that discourages absolute dates and times in unit tests.
On the strategic level, you may want to adopt the Functional Core, Imperative Shell architecture. After all, pure functions are intrinsically testable.
As I wrote in the beginning of this article, most people tend to focus on how to avoid side effects when discussing functional programming. A pure function, however, must be both side-effect-free and deterministic.
This means that instead of learning many specific rules (such as not using absolute time in unit tests), you may focus on one general rule: Write and test pure functions.
To be honest, though, this rule doesn't solve all problems. Even in a functional-core-imperative-shell architecture, the imperative shell isn't pure. The above integration test is, unfortunately, a test of the imperative shell. It's already using the SystemClock
, and that's no oversight on my part. While I do favour the test pyramid, I also write integration tests - just as the test pyramid encourages me to do. I find it valuable that integration tests integrate as many components as possible. The more real components an integration test uses, the better the chance that it uncovers problems.
With integration tests, then, diligence is required to keep tests deterministic. In that context you can't rely on a universal rule like just write pure functions, because at the boundaries, programs aren't functional. Instead, some diligence and discipline is required. At least, I don't see other alternatives, but perhaps you do?
If you use absolute dates in unit tests, what was once a future date may some day become a past date. This can change which pathways of the System Under Test an automated test exercises.
Is this important? It's probably not the most pressing problem you may run into. Even if test coverage silently decays, it may not be a problem if you never refactor the code in question. It's only if, during a refactoring, you introduce a defect that goes unnoticed that this may become a problem. It doesn't seem like the most likely of errors, but on the other hand, these kinds of unexpected problems have a tendency to occur at the most inopportune moments.
Comments
Why have you decided to make the date of the reservation relative to the SystemClock, and not the other way around? Would it be more deterministic to use a faked system clock instead?
Laszlo, thank you for asking. I wrote a new article to answer your question.


|
Formed in 1973 by five Juilliard graduates, THE AULOS ENSEMBLE was at the forefront of a movement that was to capture the imagination of the American listening public. In 1978 with the release of their recording, "Masterpieces of the High Baroque", AULOS' reputation for exhilarating performances informed with scholarly insight was firmly established. In those groundbreaking years, the group's innovative programming featured a blend of flute, oboe, violin, cello, and harpsichord, later adding a viola da gamba. With its conservatory based training, Aulos brought an uncompromising standard of excellence in performance that resulted in invitations from virtually all of this country's major chamber music presenters. This exposure helped create a new audience awareness for the rich rewards of this repertoire performed on "period instruments" and comments such as "scintillating", "virtuosic", and "authentic baroque performance at its best" from America's most respected music critics. In the 1980's, AULOS began two projects that brought the joy of its music-making to an ever- widening public and for the first time attracted international critical attention. The group's first recording for the Musical Heritage Society, "Original Telemann" was released in 1981 in connection with the composer's tercentenary, and was universally hailed as one of the most accomplished and significant observances of the Telemann year, receiving the "Critic's Choice" award of High Fidelity/Musical America Magazine. Since then, the Ensemble has released over a dozen CDs on the same label, including 2- CD sets of Bach, Handel, and Vivaldi, as well as the complete "Essercizii Musici" of Telemann on 5 CDs. This discography is unique among American "period-instrument" chamber groups. AULOS' other project in the '80s was the establishment of its own concert series at home in New York City. This series featured collaborations with guest artists from Europe and America who had made major reputations in this field. These collaborative concerts, exploring a highly unusual repertoire that was impossible to perform in other contexts, provided its New York audiences with cutting edge performances as well as giving the Ensemble members vital artistic stimulation. Among the stars of the "original instrument" movement that appeared with the Ensemble in those years were harpsichordists Trevor Pinnock and Albert Fuller, violinists Jaap Schroeder and Stanley Ritchie, cellist Anner Bylsma, oboist Michel Piguet, and vocalists Jan de Gaetani, Bethany Beardslee, Charles Bressler, and Julianne Baird. The 1980's also saw the beginnings of what has become a wonderful tradition for New York concertgoers--the AULOS "Christmas Concerts" in front of the Neapolitan Christmas Tree at the Metropolitan Museum of Art. These concerts, described by the New York Times as "one of the most charming musical celebrations of the season" have been given annually in the magical setting of the Medieval Sculpture Court and have featured a variety of guest artists. A recording of one such program, entitled "A Baroque Christmas" and featuring the soprano, Julianne Baird, was recorded for MHS/ Musicmasters and is available to millions of people throughout the world through the Metropolitan Museum Catalogue. The popularity of these concerts and the recording encouraged AULOS to begin to offer them on tour, bringing the special affinity of this repertoire and the seasonal festivities to audiences throughout the country. Over the past seasons the eminent American vocalists Dawn Upshaw, Sanford Sylvan, and Derek Lee Ragin are some of the artists who have appeared with AULOS in these presentations. In the 1990's AULOS began expanding its repertoire to include "one on a part" performances of some of the best known and favorite baroque Suites and Concerti, including the Bach 5th Brandenburg Concerto and the Concerto for Oboe and Violin as well as Vivaldi's concerti The Four Seasons. These programs, referred to as "The Baroque Big Band", are performed with from 8 to 10 artists. An all-Bach CD, part of the continuing discography on MHS, features the Ensemble in this configuration. Additionally, AULOS began giving numerous master classes and lecture-demonstrations in 17th and 18th-century performance practice at colleges and universities throughout the country. With its members serving on faculties of various schools of music and institutes specializing in historically informed performance, the Ensemble is responsible for training a new generation of American early music performers. AULOS concerts are frequently broadcast by National Public Radio from venues such as The Frick Collection in New York, Live at WolfTrap, and the Library of Congress in Washington, D.C. Most recently, its instrumental Christmas program, "Joyeux Noel" was heard throughout the country repeatedly on NPR's "Performance Today". Now, in its 4th decade, AULOS continues to explore new projects and develop outlets for its music-making. The 2006-7 season saw its first presentation of Handel's masque Acis and Galatea, done in a version approximating the size of the composer's vision for the piece—5 singers and 8 instrumentalists without a conductor—and it was a huge hit with presenters, audiences and critics. The New York Times wrote "In all, it was an utter delight". The Ensemble has developed a true chamber orchestra program as well, featuring Handel's complete Water Music in a performance with between 17 and 23 players. Where appropriate, AULOS has created residencies in which the group and its guests teach and coach young professionals and then join them in these performances. And 15 years after the release of their Christmas CD from the Metropolitan Museum, the Ensemble and Julianne Baird collaborated on In Dulci Jubilo, a recording featuring much of the new material uncovered in those many years of Christmas concerts. This CD was released in the fall of 2006 to critical acclaim, and was the beginning of a new series of recordings for Centaur Records. It was followed in 2008 by AULOS' unique version of two of Rameau's wonderful opera suites from Les Indes Galantes and Les Fêtes d'hébé, based on suggestions by the composer in 'short-score' manuscripts—the first recording ever done in this chamber ensemble setting. Most recently, the Ensemble released "The Bach Family Album" which the American Record Guide described as "enthralling". In 2014-15 AULOS is celebrating its 40th anniversary and continues to offer new collaborations and programs. Dominique Labelle is featured as a guest in its latest Centaur release: "The Handel Album" (2014) and Sherezade Panthaki sang "If Music be the Food of Love..." with the Ensemble for the first time last season. |
|
Email: Personal Representation: Marc Schachman Home | History | Artist Profiles | Discography | Excerpts from the Press Aulos in the 21st Century | Media | Sample Programs | The Centaur Series Special Presentations: A Baroque Christmas | Acis and Galatea | Handel's Water Music |


Player ratings as Ireland fall just short against Denmark
by James CoxIreland put in a great performance against Denmark but a 1-1 draw means they fall short of Euro 2020 qualification with the play-offs to come.
Here's how we rated Mick McCarthy's side.
Darren Randolph - 6
Randolph could do nothing about the goal and he put the ball on David McGoldrick's head on plenty of occasions.
Matt Doherty - 7
It would have been an eight but for the defensive lapse that allowed Martin Braithwaite in for the Danish goal.
It's a shame for Doherty because other than that he was superb.
It was his best showing in a green shirt as he showed what he can do going forward, including the equalising goal.
Shane Duffy - 8
Commanding in defence and he provided our biggest goal threat when McCarthy threw him up top as a Hail Mary.
John Egan - 6
Egan did little wrong before coming off injured at half-time.
Enda Stevens - 7
Stevens was impressive going forward like Doherty, James McClean tidied up after he made his only notable mistake.
Glenn Whelan - 7
Whelan has plenty of critics but he was solid again, distributed the ball well and even skinned Christian Eriksen with one silky touch.
Jeff Hendrick - 5
We were hoping for Euro 2016 Jeff Hendrick but he was anonymous again.
Alan Browne - 5
He was played with the hope of adding some attacking spark but besides a well hit volley in the first-half, the Preston man was too quiet.
Ended up playing as an auxiliary centre-back as Duffy went up front late on.
Conor Hourihane - 6
Hourihane's passing was spot on and he was often at the centre of Ireland's best play. It seemed odd that he came off for Callum Robinson, rather than the quieter Browne.
Sadly for the Aston Villa man, his performance will be remembered for spurning a glorious chance to put Ireland in front.
James McClean - 5
Full of heart and running as always. McClean did alright and made some important tackles but his play in the final third was lacking.
David McGoldrick - 8
McGoldrick won nearly every ball, even the ones hit towards him more in hope.
His link-up play was great despite the fact he was often painfully isolated.
If only that long-range strike was a few inches lower!
Subs:
Ciaran Clark - 6
Clark did well after coming on at half-time, one a few headers in the Danish half too as Ireland threw everything forward late on.
Callum Robinson - 7
Robinson brought some extra energy to the attack.
Sean Maguire - 6
Maguire looked very dangerous as Ireland pushed for late goals, it would have been nice to see him on a little bit earlier.


We can take different approaches to construct an object. A simple object can be constructed in one of the following three ways or a mixture of them.
# imperative construction # vmax in kn Bristol = object() Bristol.id = "HMS Bristol" Bristol.color = "gray blue" Bristol.engine = "diesel" Bristol.vmax = 25 # via dictionary literal Bristol = object(null,{ id="HMS Bristol", color="gray blue", engine="diesel", vmax=25 }) # via object literal Bristol = table{ id = "HMS Bristol", color = "gray blue", engine = "diesel", vmax = 25 }
Such an object may have a method which operates on it. We will define one.
Bristol.move = fn|| print(self.id, " moves at ", self.vmax//2, " kn.") end Bristol.move() # HMS Bristol moves at 12 kn.
If there shall be more than one ship, there are certain options now. Firstly we can simply delegate to HMS Bristol and shadow some of the member objects.
Hermes = object(Bristol) Hermes.id = "HMS Hermes" Hermes.vmax = 25
But we might also clone HMS Hermes completely and then overwrite some of the member objects.
Hermes = object() extend(Hermes,Bristol) Hermes.id = "HMS Hermes" Hermes.vmax = 25
Another way is to use a constructor ship
and a metaobject Ship
.
ship = fn|id,vmax| return object(Ship,{"id": id, "vmax": vmax}) end Ship = table{ color = "gray blue", engine = "diesel", move = fn|| print(self.id, " moves at ", self.vmax//2 " kn.") end } Bristol = ship("HMS Bristol",25) Hermes = ship("HMS Hermes",25)
Frankly speaking, the metaobject ship.type
can be
regarded as a table of virtual methods and class variables.
The following ways to construct Hermes have the same result.
Hermes = object(Bristol) Hermes.id = "HMS Hermes" Hermes.vmax = 25 Hermes = object(Bristol,{ id = "HMS Hermes", vmax = 24 }) Hermes = object(Bristol,{ "id": "HMS Hermes", "vmax": 24 }) Hermes = table Bristol{ id = "HMS Hermes", vmax = 24 } Hermes = table Bristol{ "id": "HMS Hermes", "vmax": 24 }
Every object x
has a prototype.
If some member object is not found in x
, it will be
looked up in the prototype of x
and then in the
prototype of the prototype of x
and so on.
In Moss, the type of an object and its prototype coincide, because the type of an object is determined by its prototype. The prototype stores the propertys and operations, that objects of some kind have in common.
a = object(null,{time="14:12"}) # a is a new object with prototype null b = object(a) # b is a new object with prototype a type(b) is a # true type(null) is null # true, null is its own prototype and is the only # object which shall have this property print(b.time) # 14:12 # b does not have 'time', but a has it
There are two ways to determine, whether some object is of some type or not.
> T = object() > S = object(T) > a = object(S) # T is not the direct prototype of a. > type(a) is T false > type(a) is S true # But a is an ancestor of T. > a is in T true > a is in S true # S is a subtype of T. > S is in T true # S is a direct subtype of T. > type(S) is T true
If S
was extended by T
, we must
take a different approach.
> T = table{a=1, b=2} > S = table{c=3} > extend(S,T) # This won't work anymore. > S is in T false # But one can test, whether all members of T # are contained in S. > record(T) < record(S) true
Variables of all basic data types as well as the data types itself are objects. Thus the object system applies to the basic data types too. Type checks are performed in one of three ways:
> x = 1 > x is in Int true > type(x) is Int true > str(type(x))=="Int" true
Here is a list of the basic data types:
Bool, Int, Long, Float, Complex, Range, List, Map, String, Function.
A data type is written capitalized, the corresponding constructor function in lower case.
> list(1..10) is in List true
An object can have more than one prototype.
Plane = table{ take_off = fn|| print(self.id, " is in the sky.") end } sea_duck = table[Ship,Plane]{ id="Sea duck", vmax = 40 } sea_duck.move() # Sea duck moves at 20 kn. sea_duck.take_off() # Sea duck is in the sky.
A method is searched at first in Ship
,
and then, if not found, in Plane
.
Reflection is the possibility to construct, obtain and modify the structure of a type at runtime.
# direct construction Bristol = table{color = "gray blue", engine = "diesel"} # reflection x = "color"; y = "engine" Bristol = table{x: "gray blue", y: "diesel"} # direct access > Bristol.engine "diesel" # reflection > record(Bristol)["engine"] "diesel" # direct method call > Bristol.move() # reflection > record(Bristol)["move"](Bristol;)
That argument before the semicolon is the self argument.
We are able to add methods to already existent types. This technique is called monkey patching and considered a bad practice, because it can result in name conflicts.
As an example, we will add a method to the string type, that converts a string of numbers into the list of these numbers.
> String.numbers = || self.split(",").map(int) > "12, 14, 16".numbers() [12, 14, 16] > List.pairs = || self.chunks(2) > list(1..4).pairs() [[1,2], [3,4]]
Table of binary overloadable operators.
| Op. | left | right |
|---|---|---|
a+b
| add
| radd
|
a-b
| sub
| rsub
|
a*b
| mul
| rmul
|
a/b
| div
| rdiv
|
a//b
| idiv
| ridiv
|
a^b
| pow
| rpow
|
a==b
| eq
| req
|
a<b
| lt
| rlt
|
a>b
| gt
| rgt
|
a<=b
| le
| rle
|
a>=b
| ge
| rge
|
Table of unary overloadable operators.
| Op. | Method |
|---|---|
-a
| neg
|
~a
| tilde
|
Here is an implementation of complex number arithmetic. Complex numbers are covered already by the moss language, but this implementation allows also for arithmetic of complex integers.
function complex(x,y) return table Complex{re=x, im=y} end Complex = table{ function string return ["(", self.re, ", ", self.im, ")"].join() end, function add(a;b) if type(b) is Complex return complex(a.re+b.re,a.im+b.im) else return complex(a.re+b,a.im) end end, function radd(a;b) return complex(a+b.re,b.im) end, function mul(a;b) if type(b) is Complex return complex(a.re*b.re-a.im*b.im, a.re*b.im+a.im*b.re) else return complex(a.re*b,a.im*b) end end, function rmul(a;b) return complex(a*b.re,a*b.im) end, function pow(a;n) return (1..n).prod(|k| a) end } # Example of use > i = complex(0,1) > 4+2*i (4, 2) > (4+2*i)*(5+3*i) (14, 22) > (4+2*i)^60 (-964275081903216557328422924784146317312,<PHONE_NUMBER>45772258729579365571477110784) > (4+2i)^60 -9.64275e+38+4.72329e+38i
Sometimes it is necessary to call a destructor function before an object is deleted. Such an destructor function can be specified right after an object is constructed. If can be contained in the object's type, but must be assigned to the object explicitly.
function ship(id,vmax) t = table Ship{id=id} destructor(t) = Ship.delete end Ship = table{ color = "gray blue", engine = "diesel", function string "{} (ship, {})"%[self.id, self.color] end, function delete print("Disposal of ", self.id) end } function main x = ship("Bristol") print(x) end main() # Output: # Bristol (ship, gray blue) # Disposal of Bristol
Sometimes only methods that belong to the object should have write access to a property. Such a close relationship of the object to its methods can be achieved by a closure-binding of an interal private property table.
Ship = object() function ship private_tab = {color = "blue"} return table Ship{ function get(property) return private_tab[property] end, function change_color private_tab["color"] = "green" end } end Bristol = ship() print(Bristol.get("color")) Bristol.change_color() print(Birstol.get("color"))
Every method that has direct access to private_tab
must belong to ship
and not to its
type Ship
.
Private properties are constructed the same way as read-only properties. Only methods that belong to the object should be able to see the properties.
Ship = object() function ship private_tab = {color = "blue"} return table Ship{ function info return "A {} ship." % private_tab["color"] end, function change_color private_tab["color"] = "green" end } end Bristol = ship() print(Bristol.info()) Bristol.change_color() print(Bristol.info())


It is close to being Christmas, but it does not seem like it
really is the holiday season. We have not heard the
assortment of holiday music from the radio since we don't listen
to local radio. No ads on TV advertising toys and
specials, since we don't watch TV. The stores do not have
many holiday decorations up here in Guadeloupe, certainly
nothing like the U.S. does, and of course the weather is warm
and sunny, not cold and snowy. But it is the season
for joy and giving, and we wish all of you a Very Merry
Christmas!
Currently we are at the northern point of Guadeloupe at the
anchorage of Deshaies. Our plans are to head south 9 miles
to Pigeon Point and meet up with several other boats for
Christmas. The kids have exchanged names for secret Santa
and everyone will get together for a snack time as well.
We had been at Pigeon Point but there wasn't any internet so we
moved up to Deshaies so we can make some Skype calls to friends
and family.
Back at Pigeon Point, we hope to have some sunny weather and
snorkel and maybe dive in the Jacques Cousteau Marine Park
there, but the weather looks rainy, so we shall see.
We spent some time in Les Saintes, where we said goodbye to our
friends on Moana Roa - it is always hard to say goodbye, and
unfortunately, the next few months will hold a couple of more
for us. At Les Saintes, we hiked up a hill and explored a
fort, and just spent time with friends. And ate baguettes
of course!
12/23/13; Merry Christmas
|
|
Merry Christmas 2013 |
250 LED Christmas lights in the cockpit |
Friends off the boat Spirit of Argo did this
video.
We think they did a great job portraying
Christmas in the Caribbean attitude.
Spirit of Argo's Christmas video |
Our Christmas tree |
Les Saintes anchorage |
Fort at Les Saintes |
The group at the fort
|
Most people think of the Caribbean as lush
and tropical
which it is, but also there is a lot of
cactus and dry scrub. |
View from the fort |
|


Uh-oh. Seems like JavaScript isn't enabled
Make sure that your browser or any antivirus software isn't blocking JavaScript execution


Last modified
This is the CPU profiler we use at Google. There are three parts to using it: linking the library into an application, running the code, and analyzing the output.
On the off-chance that you should need to understand it, the CPU profiler data file format is documented separately, here.
To install the CPU profiler into your executable, add
-lprofiler
to the link-time step for your executable.
(It's also probably possible to add in the profiler at run-time using
LD_PRELOAD
, e.g.
% env LD_PRELOAD="/usr/lib/libprofiler.so" <binary>
,
but this isn't necessarily recommended.)
This does not turn on CPU profiling; it just inserts the
code. For that reason, it's practical to just always link
-lprofiler
into a binary while developing; that's what we
do at Google. (However, since any user can turn on the profiler by
setting an environment variable, it's not necessarily recommended to
install profiler-linked binaries into a production, running
system.)
There are several alternatives to actually turn on CPU profiling for a given run of an executable:
Define the environment variable CPUPROFILE to the filename
to dump the profile to. For instance, if you had a version of
/bin/ls
that had been linked against libprofiler,
you could run:
% env CPUPROFILE=ls.prof /bin/ls
In your code, bracket the code you want profiled in calls to
ProfilerStart()
and ProfilerStop()
.
(These functions are declared in <google/profiler.h>
.)
ProfilerStart()
will take
the profile-filename as an argument.
In Linux 2.6 and above, profiling works correctly with threads, automatically profiling all threads. In Linux 2.4, profiling only profiles the main thread (due to a kernel bug involving itimers and threads). Profiling works correctly with sub-processes: each child process gets its own profile with its own name (generated by combining CPUPROFILE with the child's process id).
For security reasons, CPU profiling will not write to a file -- and is thus not usable -- for setuid programs.
See the include-file google/profiler.h
for
advanced-use functions, including ProfilerFlush()
and
ProfilerStartWithOptions()
.
You can more finely control the behavior of the CPU profiler via environment variables.
CPUPROFILE_FREQUENCY=x |
default: 100 | How many interrupts/second the cpu-profiler samples. |
CPUPROFILE_REALTIME=1 |
default: [not set] | If set to any value (including 0 or the empty string), use ITIMER_REAL instead of ITIMER_PROF to gather profiles. In general, ITIMER_REAL is not as accurate as ITIMER_PROF, and also interacts badly with use of alarm(), so prefer ITIMER_PROF unless you have a reason prefer ITIMER_REAL. |
pprof
is the script used to analyze a profile. It has
many output modes, both textual and graphical. Some give just raw
numbers, much like the -pg
output of gcc
,
and others show the data in the form of a dependency graph.
pprof requires perl5
to be installed to run.
It also requires dot
to be installed for any of the
graphical output routines, and gv
to be installed for
--gv
mode (described below).
Here are some ways to call pprof. These are described in more detail below.
% pprof /bin/ls ls.prof Enters "interactive" mode % pprof --text /bin/ls ls.prof Outputs one line per procedure % pprof --gv /bin/ls ls.prof Displays annotated call-graph via 'gv' % pprof --gv --focus=Mutex /bin/ls ls.prof Restricts to code paths including a .*Mutex.* entry % pprof --gv --focus=Mutex --ignore=string /bin/ls ls.prof Code paths including Mutex but not string % pprof --list=getdir /bin/ls ls.prof (Per-line) annotated source listing for getdir() % pprof --disasm=getdir /bin/ls ls.prof (Per-PC) annotated disassembly for getdir() % pprof --text localhost:1234 Outputs one line per procedure for localhost:1234 % pprof --callgrind /bin/ls ls.prof Outputs the call information in callgrind format
Text mode has lines of output that look like this:
14 2.1% 17.2% 58 8.7% std::_Rb_tree::find
Here is how to interpret the columns:
Use kcachegrind to analyze your callgrind output:
% pprof --callgrind /bin/ls ls.prof > ls.callgrind % kcachegrind ls.callgrind
The cost is specified in 'hits', i.e. how many times a function appears in the recorded call stack information. The 'calls' from function a to b record how many times function b was found in the stack traces directly below function a.
Tip: if you use a debug build the output will include file and line number information and kcachegrind will show an annotated source code view.
In the various graphical modes of pprof, the output is a call graph annotated with timing information, like so:
Each node represents a procedure. The directed edges indicate caller to callee relations. Each node is formatted as follows:
Class Name Method Name local (percentage) of cumulative (percentage)
The last one or two lines contains the timing information. (The profiling is done via a sampling method, where by default we take 100 samples a second. Therefor one unit of time in the output corresponds to about 10 milliseconds of execution time.) The "local" time is the time spent executing the instructions directly contained in the procedure (and in any other procedures that were inlined into the procedure). The "cumulative" time is the sum of the "local" time and the time spent in any callees. If the cumulative time is the same as the local time, it is not printed.
For instance, the timing information for test_main_thread()
indicates that 155 units (about 1.55 seconds) were spent executing the
code in test_main_thread()
and 200 units were spent while
executing test_main_thread()
and its callees such as
snprintf()
.
The size of the node is proportional to the local count. The
percentage displayed in the node corresponds to the count divided by
the total run time of the program (that is, the cumulative count for
main()
).
An edge from one node to another indicates a caller to callee
relationship. Each edge is labelled with the time spent by the callee
on behalf of the caller. E.g, the edge from
test_main_thread()
to snprintf()
indicates
that of the 200 samples in test_main_thread()
, 37 are
because of calls to snprintf()
.
Note that test_main_thread()
has an edge to
vsnprintf()
, even though test_main_thread()
doesn't call that function directly. This is because the code was
compiled with -O2
; the profile reflects the optimized
control flow.
The top of the display should contain some meta information like:
/tmp/profiler2_unittest Total samples: 202 Focusing on: 202 Dropped nodes with <= 1 abs(samples) Dropped edges with <= 0 samples
This section contains the name of the program, and the total
samples collected during the profiling run. If the
--focus
option is on (see the Focus
section below), the legend also contains the number of samples being
shown in the focused display. Furthermore, some unimportant nodes and
edges are dropped to reduce clutter. The characteristics of the
dropped nodes and edges are also displayed in the legend.
You can ask pprof to generate a display focused on a particular
piece of the program. You specify a regular expression. Any portion
of the call-graph that is on a path which contains at least one node
matching the regular expression is preserved. The rest of the
call-graph is dropped on the floor. For example, you can focus on the
vsnprintf()
libc call in profiler2_unittest
as follows:
% pprof --gv --focus=vsnprintf /tmp/profiler2_unittest test.prof
Similarly, you can supply the --ignore
option to
ignore samples that match a specified regular expression. E.g., if
you are interested in everything except calls to
snprintf()
, you can say:
% pprof --gv --ignore=snprintf /tmp/profiler2_unittest test.prof
By default -- if you don't specify any flags to the contrary --
pprof runs in interactive mode. At the (pprof)
prompt,
you can run many of the commands described above. You can type
help
for a list of what commands are available in
interactive mode.
pprof
--help
.
--text |
Produces a textual listing. (Note: If you have an X display, and
dot and gv installed, you will probably
be happier with the --gv output.)
|
--gv |
Generates annotated call-graph, converts to postscript, and
displays via gv (requres dot and gv be
installed).
|
--dot |
Generates the annotated call-graph in dot format and
emits to stdout (requres dot be installed).
|
--ps |
Generates the annotated call-graph in Postscript format and
emits to stdout (requres dot be installed).
|
--pdf |
Generates the annotated call-graph in PDF format and emits to
stdout (requires dot and ps2pdf be
installed).
|
--gif |
Generates the annotated call-graph in GIF format and
emits to stdout (requres dot be installed).
|
--list=<regexp> |
Outputs source-code listing of routines whose name matches <regexp>. Each line in the listing is annotated with flat and cumulative sample counts. In the presence of inlined calls, the samples associated with inlined code tend to get assigned to a line that follows the location of the inlined call. A more precise accounting can be obtained by disassembling the routine using the --disasm flag. |
--disasm=<regexp> |
Generates disassembly of routines that match <regexp>, annotated with flat and cumulative sample counts and emits to stdout. |
By default, pprof produces one entry per procedure. However you can
use one of the following options to change the granularity of the
output. The --files
option seems to be particularly
useless, and may be removed eventually.
--addresses |
Produce one node per program address. | --lines |
Produce one node per source line. | --functions |
Produce one node per function (this is the default). | --files |
Produce one node per source file. |
Some nodes and edges are dropped to reduce clutter in the output display. The following options control this effect:
--nodecount=<n> |
This option controls the number of displayed nodes. The nodes are first sorted by decreasing cumulative count, and then only the top N nodes are kept. The default value is 80. |
--nodefraction=<f> |
This option provides another mechanism for discarding nodes from the display. If the cumulative count for a node is less than this option's value multiplied by the total count for the profile, the node is dropped. The default value is 0.005; i.e. nodes that account for less than half a percent of the total time are dropped. A node is dropped if either this condition is satisfied, or the --nodecount condition is satisfied. |
--edgefraction=<f> |
This option controls the number of displayed edges. First of all, an edge is dropped if either its source or destination node is dropped. Otherwise, the edge is dropped if the sample count along the edge is less than this option's value multiplied by the total count for the profile. The default value is 0.001; i.e., edges that account for less than 0.1% of the total time are dropped. |
--focus=<re> |
This option controls what region of the graph is displayed based on the regular expression supplied with the option. For any path in the callgraph, we check all nodes in the path against the supplied regular expression. If none of the nodes match, the path is dropped from the output. |
--ignore=<re> |
This option controls what region of the graph is displayed based on the regular expression supplied with the option. For any path in the callgraph, we check all nodes in the path against the supplied regular expression. If any of the nodes match, the path is dropped from the output. |
The dropped edges and nodes account for some count mismatches in
the display. For example, the cumulative count for
snprintf()
in the first diagram above was 41. However
the local count (1) and the count along the outgoing edges (12+1+20+6)
add up to only 40.
./
to your filename:
CPUPROFILE=./Ägypten
.


Creating websites and webapplications is what I love doing. During the years from highschool on, I started building applications in both native web languages, as in frameworks. During the years, I got exposed to all kinds of technologies which I made my own, I'll never stop learning.
I like to think of myself as a fullstack webdeveloper because I was always used to do both the frontend , as the backend of any projects I did. I'm a allround developer with the focus on backend and frameworks.


City, county to pay $1.3M to man after conviction overturned
by EndPlayCLEVELAND (AP) - An Ohio city and county have agreed to pay a total of $1.3 million to a man who spent 23 years in prison for a 1995 murder conviction that was overturned when DNA evidence pointed to another suspect.
Cleveland.com reports Cleveland will pay 62-year-old Evin King $750,000 and Cuyahoga (ky-uh-HOH'-guh) County will pay $550,000. Both denied liability in a settlement agreement.
A judge dismissed King's conviction in 2017.
A lawsuit claimed Cleveland police fabricated statements from King implying he knew the location of Crystal Hudson's body and manipulated statements by Hudson's children.
There was no physical evidence presented at trial connecting King to the 1994 slaying. The Ohio Innocence Project in 2009 tested skin cells under Hudson's fingernails that matched semen on her body, neither of which belonged to King.


{% extends 'index.html' %} {% block main %}
Given an author name, display all tweets posted by that author sorted by decreasing order of date and time.
| Sno | Author | Datetime | Tid | Location | Language | Tweet Text |
|---|---|---|---|---|---|---|
| {{ i.author}} | {{ i.datetime}} | {{ i.tid}} | {{ i.location}} | {{ i.lang}} | {{ i.tweet_text}} |


"Yes please!"
Err.. that was quick. I suppose that lately you've been watching re-runs of Sherlock and your fascination for our enigmatic detective is at an all time high. Not only would you like to have him in your house you would gladly assume the role of Mrs. Hudson and gratify Holmes with a cup of tea every morning while he sets your first floor on fire.
"Oh it's not that bad"
I can almost picture you sitting wistfully in front of you computer screen thinking that anything would be better than your current "boring" tenants. You are perhaps asking yourself what could be so bad about this Holmes? After all he has been worshipped by a generation of followers and has helped to solve some of the worlds most puzzling mysteries. Well dear reader let me tell you right now that Mr. Holmes is every landlord's/lady's nightmare.
Poor Mrs. Hudson suffered at this hands this brute, this monster of man, this disgrace of a detective, for decades but dared not to breathe a word against him, fearing a public outcry. But his friend and chronicler Dr Watson was much more courageous. He openly criticized Holmes and the havoc he wreaked upon 221B baker street. These are his words
"Mrs Hudson, the landlady of Sherlock Holmes, was a long-suffering woman. Not only was her first-floor flat invaded at all hours by throngs of singular and often undesirable characters but her remarkable lodger showed an eccentricity and irregularity in his life which must have sorely tried her patience. His incredible untidiness, his addiction to music at strange hours, his occasional revolver practice within doors, his weird and often malodorous scientific experiments, and the atmosphere of violence and danger which hung around him made him the very worst tenant in London."
In the great libraries of London, should you get a chance to visit them, don't forget to read the universally acclaimed and the definitive guide to land lordship "The tormented landlady: An autobiography of Mrs Hudson" [1]. Many researchers believe that the true purpose of Sir Arthur Conan Doyle's seminal work was to warn the landlords of London about the hazards of not choosing your tenants carefully.
Prof Mel Brook of the Great London Landlord college (or Glolanco as it's fondly called) remarks:-
"An entire generation of readers have been tricked into believing that Sherlock Holmes is a detective series. It is the greatest fraud committed by a man in the entire human race! Sir Arthur Conan Doyle wrote the Adventures to give voice to the frustrations he had with his own tenant. The books paint a sad picture of a devoted landlady. A gentle old woman who expects only two things of her lodgers a) to pay their rent on time b) not to bring stray dogs in her premises in order to administer strange concoctions to them. She is witness to the atrocities committed by that brute Holmes upon her beloved quiet residence at 221-b Baker street.
Meanwhile, Mr Huntley of the Tenant's empowerment association rubbishes the statement by Prof Mel Brook claiming that it is the tenants who have been long suffering at the hands of Landlords.
"And if that statement by Prof what's his name is true I am glad that one among us stood up to them and showed them their place."
As for me, I have, my dear reader, always looked out for your interest and before I leave to judge the chararcter of Mr Sherlock Holmes, there is one suggestion that I would like to make. That when you rent you your house make sure to have a proper rent contract in place and that you always maintain your rental accounts.
[1] Let me warn you though that the book is extremely rare and in high demand. Only the most affluent landlords get a chance to turn it's pages in their lifetime. However I am working with the London library to release this book in an electronic format for your benefit. No need to thank me though. I consider it my duty and my solemn mission in life to make every landlord aware of it's presence.
-Akshat Jiwan Sharma


Please download the chrome extension in order to allow communication with the Jira Api. Note that this doesn\'t work for mobile.


{{vm.categoryObj.response.data.subCategory.name}} Travel Forum
Jump to a specific forum:
{{entry.name}}
No topics have been created yet.
{{vm.categoryObj.response.data.topics.length | number}} topic{{vm.categoryObj.response.data.topics.length>1?'s':''}} from our community


Adding SSL to a SharePoint 2010 Web Application, the Right Way
The Story
I haven't touched SharePoint in a while, but I've been asked by a friend to help him do something "the right way".
We were looking for a way to add an HTTPS binding to an existing SharePoint 2010 site. Google is full of ways of doing that, but …


'A Life Less Ordinary'
A movie review by Walter Frith
'A Life Less Ordinary' is such a quirky film with jabs of satirical themes that I could have sworn I was watching a film by the Coen brothers. In fact, this movie is the latest from 'Trainspotting' director Danny Boyle. That film's writer, John Hodge, is responsible for the screenplay here as well. To describe 'A Life Less Ordinary' is to put a puzzled look on your face as you say, "Yeah, that's really what it's about".
Heaven is the setting for some of the film's opening scenes where St. Gabriel (Dan Hedaya) is about to give a mission to two less than squeaky clean angels (Delroy Lindo and Holly Hunter) who have to return to Earth and cause two people to fall in love if they want to get back into Heaven and stay.
Ewan McGregor ('Trainspotting') plays a janitor who works in a building owned by a tyrannical businessman (Ian Holm) and loses his job when the boss replaces all the cleaning staff with robots! Yes, little robots who bleep, turn and perform their duties accordingly. Needless to say, this causes McGregor so much anger and grief that he storms into the boss' office and demands his job back. His timing is somewhat awkward. It comes just as Holm is telling his daughter (Cameron Diaz) that she will learn responsiblity by going to work at the company and will stop living off of her trust fund. She takes pity on McGregor who ends up being swarmed by security guards inside the office and he takes her hostage and the two of them eventually take refuge in a broken down shack in the heart of the countryside. All along, the two angels (Lindo and Hunter) are watching them and try to set up a scenario where McGregor and Diaz will fall in love. If you have to wonder whether or not they DO fall in love, then shame on you.
I immediately started getting flashbacks of 1994's 'The Chase' with Charlie Sheen and Kristy Swanson as Sheen played an armed robber who holds up a convenience store and when the police intercept him, he takes a little rich girl (Swanson) hostage. Ditto here! 'A Life Less Ordinary' is nothing more than a hostage movie where the romance is implausible and unconvincing. It tries to entertain lightly but comes off as a silly and innocuous with no real reason to exist except to tell a story which has very little originality and even less edge.
Relax. Ewan McGregor will be featured as a young Ben (Obi-Wan) Kenobi in the next 'Star Wars' trilogy but Cameron Diaz's act is starting to wear thin as she tries to act seriously and when she displays anger in films, she really makes me laugh. 'A Life Less Ordinary' demonstrates one thing. While the title suggests it's less than ordinary, it turns out to be just the opposite.
OUT OF 5> * 1/2
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


This Blog is intended to help me learn Java Script. The Article and Code Examples above might contain Errors or Misconceptions. If you encounter such errors, please let me know via email!


Vue-table-component
About
The table component above is powered by spatie/vue-table-component.
The component allows for straightforward and lightweight sorting and filtering of table data.
The component will also remember the state when you reload or return to the same page within 15 min.


iMaths is an affordable, mobile-friendly, Questions and Answers series, CAPS aligned, consisting of carefully selected examination questions and comprehensive memorandum-type answers with explanatory notes where applicable.
Select your Grade (Gr12, Gr 11, Gr 10) and one, more or all of the 10 topics that make up the two examination papers (1 and 2) as set out below.
Each topic comprises of at least 30 questions, many of which contain three or more sub-divisons. You can purchase the full compliment of ANSWERS for R100 only.


Brief Introduction
Akan Name comes from a traditional naming system in Ghana. A child's name is determined by
the
factors sorounding his or her birth.
For example,the day of their birth or in the manner which they are born may determine which
name
they get irrespective of their gender.
Interesting Facts about Ghana!
The first president of Ghana who was the founder of Organisation of African Unity
Kwame
Nkrumah was born
on a Saturday. Kwame is an Akan name for male born on Saturday.Thats fun, right?? You too
can find
the day of the week you were born and corresponding Akan name.
Input your first name ,date of birth and gender and lets give you an Akan Name!!!.
Click here to Learn more about
Akan Names
Lets reveal your Akan Name!


--- title: Misorientations at grain boundaries sidebar: documentation_sidebar permalink: BoundaryMisorientations.html folder: documentation toc: false ---
Analyse misorientations along grain boundaries
This example explains how to analyse boundary misorientation by means of misorientation axes
First step is as always to import the data. Here we restrict the big data set to a subregion to make the results easier to visulize
{% highlight matlab %} % take some MTEX data set mtexdata forsterite plotx2east % define a sub region xmin = 25000; xmax = 35000; ymin = 4500; ymax = 9000; region = [xmin ymin xmax-xmin ymax-ymin]; % visualize the whole data set plot(ebsd) % and marke the sub region rectangle('position',region,'edgecolor','r','linewidth',2) % select EBSD data within region condition = inpolygon(ebsd,region); % select indices by polygon ebsd = ebsd(condition); {% endhighlight %} {% highlight plaintext %} ebsd = EBSD Phase Orientations Mineral Color Symmetry Crystal reference frame 0 58485 (24%) notIndexed 1 152345 (62%) Forsterite LightSkyBlue mmm 2 26058 (11%) Enstatite DarkSeaGreen mmm 3 9064 (3.7%) Diopside Goldenrod 12/m1 X||a*, Y||b*, Z||c Properties: bands, bc, bs, error, mad, x, y Scan unit : um {% endhighlight %}Second step is the modelling of the grains and grain boundaries
{% highlight matlab %} % segmentation angle typically 10 to 15 degrees that seperates to grains seg_angle = 10; % minimum indexed points per grain between 5 and 10 min_points = 10; % restrict to indexed only points [grains,ebsd.grainId,ebsd.mis2mean] = calcGrains(ebsd('indexed'),'angle',seg_angle*degree); % remove small grains with less than min_points indexed points grains = grains(grains.grainSize > min_points); % re-calculate grain model to cleanup grain boundaries with less than % minimum index points used ebsd points within grains having the minium % indexed number of points (e.g. 10 points) ebsd = ebsd(grains); [grains,ebsd.grainId,ebsd.mis2mean] = calcGrains(ebsd('indexed'),'angle',seg_angle*degree); % smooth grains grains = smooth(grains,4); % plot the data % Note, only the forsterite grains are colorred. Grains with different % phase remain white plot(grains('fo'),grains('fo').meanOrientation,'micronbar','off','figSize','large') hold on plot(grains.boundary) hold off {% endhighlight %}Computing the misorientation axes in specimen coordinates can not be done using the boundary misorientations only. In fact, we require the orientations on both sides of the grain boundary. Lets extract them first.
{% highlight matlab %} % do only consider every third boundary segment Sampling_N=3; gB = gB(1:Sampling_N:end); % the following command gives an Nx2 matrix of orientations which contains % for each boundary segment the orientation on both sides of the boundary. ori = ebsd('id',gB.ebsdId).orientations; % the misorientation axis in specimen coordinates gB_axes = axis(ori(:,1),ori(:,2)); % axes can be plotted using the command quiver hold on quiver(gB,gB_axes,'linewidth',1,'color','k','autoScaleFactor',0.3) hold off {% endhighlight %}Note, the shorter the axes the more they stick out of the surface. What may be a bit surprising is that the misorientations axes have some abrupt changes at the left hands side grain boundary. The reason for this is that the misorientations angle at this boundary is close to the maximum misorientation angle of 120 degree. As a consequence, slight changes in the misorientation may leed to a completely different disorientation, i.e., a different but symmetrically equivalent misorientation has a smaller misorientation angle.


London is the capital city of England.It is the most populous cit in the United Kingdom,
Standing on the River Thames,London has been a major settlementfor two millennia.


| URL | Method | Parameter | Return | Description |
|---|---|---|---|---|
| /finance/insert | POST | * 1.finance * 2.amount 3.description 4.saveId 5.budgetId 6.eventId |
Num row insert | Insert Transaction finance |
| /finance/update | PUT | * 1.finance * 2.amount * 3.description 4.saveId 5.budgetId 6.eventId * 7.dateTime |
Num row update | Update Transaction finance |
| /finance/delete | DELETE | * 1.date_time | Num row delete | Delete transaction finance |
| /finance/list | GET | Array of Finance | List all transaction finance of this member | |
| /finance/listdatetodate | GET |
* 1.start * 2.end |
Array of Finance | List all transaction finance of this member in range time |


Connecting your clients to Adventure
As trail guides, we bring people out into the actual real world.
You know, the one with the dirt and trees and sky and views and air?
We connect you with people so they can connect to this amazing planet.
Your profile keeps a comprehensive log of all your treks so you can share them with potential clients, or just remember them fondly.
Whether you’re guiding a group …
… or heading solo into uncharted wilderness, all trips can be logged to build your resume.
This is my new Facebook! I can build my portfolio, find hikers and hang with and learn from other guides!
Guidr = Amazing!!! Since I joined Guidr Pro, every month I have added twice the amount of clients than I had before I joined.