Well, we finally moved the boat a fair distance - we sailed the
80 miles down to Trinidad. Chagaraumas, Trinidad is
known as the place to get work on your boat done.
Supposedly it is cheaper in Trinidad.
We had two other boats that we are friends with heading down to
get work done, so we decided to make the trip as well. We
really did not need work done, but were interested in seeing
Trinidad. We did have one repair, and that was on
our air conditioning unit. Our air conditioner only
works when we are at dock, and can plug into shore power, but
last time we did that, one of the units did not function.
We had a nice sail to Trinidad overnight, and when we got in,
were very disappointed in the main anchorage. We
were told that there were moorings you could take for $5 a day,
but they were all full, and the rest of the anchorage was in
very deep water with poor holding. The water was
quite filthy, with oil and debris. We started calling around an
found a marina that could take us for three days, so we went
with that option. The marina was very reasonable at $28
per day so we were happy. Derek was happy about the
small pool at the marina.
We were able to get our air-conditioning fixed, and enjoyed
three days of a very cool boat inside, and Derek had his friends
over every day for pool time which everyone enjoyed. The
other fun activity was to watch some movies on What If in the
air-conditioned boat.
When our marina time was up, we moved to a different anchorage
which was nicer, but still a bit rolly, and only marginally
cleaner water. This anchorage was next to the Trinidad and
Tobago Sailing Association though, and for $45 a week we had use
of the facilities which included a pool, internet, and a nice
covered area to sit at. From there it was a mile or
more walk into the boating area of town, or a bus ride into a
nice town in Trinidad.
We took a bus to town a couple of times, and went to a couple of
malls, and even got in a trip to the PriceSmart store which is
like a little Costco or Sams Club. We stocked up on
toilet paper, paper towels and some grocery items, but contrary
to what we had heard - prices here were not that cheap.
We didn't stay long in Trinidad, but from what we saw, there is
no reason we would head back. If we needed work done on
the boat and had booked a marina or were hauling the boat out of
the water - then maybe. For us it didn't make sense
to stay longer, especially since Sam was forbidden to go ashore
in Trinidad (they have strict pet rules there). So, only
after a week, we headed back to Grenada.
10/22/13; A trip to Trinidad
Trinidads Maxi Taxi bus. One way $5 TT
which
is about $ .77 in U.S. dollars |
The anchorage area, red arrow is where we
were at dock. In the background
is where we
went to anchor. |
Derek's swinging good time |
movie time |
PriceSmart at Trinidad - looks like
Costco/Sams Club |
|
| |
|
| |
|
| |
|


{% extends "layout.html" %} {% block page_title %} Add particulars of nature / extent of works on acquired land {% endblock %} {% block content %} alpha Land compensation information Add particulars of nature / extent of works on acquired land Add particulars of nature / extent of works on acquired land Continue {% endblock %}
alpha


I'm a Computer Science Student at Ontario Tech University. On my spare time I love hacking different side projects. Asides from coding, I enjoy photographing or sketching whats around me.
C#
A windows game where the players needs to solve a series of puzzles in order to stop Carmen Sandiego from executing her evil plan!
C#
The project is a 9 by 9 grid minesweeper game. User must find the location of bomb in field.
HTML, CSS, Django, SQL
Designed and implemented a recipe site that allows users to post, comment categorize, and favourite recipes.
Java
Developed a battle system that will simulate a battle between a human player and a CPU player. Implemented an enemy monster AI.
Capturing the moments around me is a something I love do. Here is a few of my favourite photos.


Login
New to CoCo Temp?
Create account
×
Incorrect username or password.
Username
Password
Forgot password?
Login
Want to head back to the home page?
Click here!


ZDIFF(1) ZDIFF(1) NAME zcmp, zdiff - compare compressed files SYNOPSIS zcmp [ cmp_options ] file1 [ file2 ] zdiff [ diff_options ] file1 [ file2 ] DESCRIPTION Zcmp and zdiff are used to invoke the cmp or the diff program on files compressed via gzip. All options specified are passed directly to cmp or diff. If only one file is specified, then it is compared to a file with the same name without the .gz extension. If two files are specified, then they are uncompressed if necessary and fed to cmp or diff. The exit sta‐ tus from cmp or diff is preserved. When both files must be uncompressed before comparison, the second is uncompressed to /tmp. In all other cases, zdiff and zcmp use only a pipe. SEE ALSO cmp(1), diff(1), zmore(1), zgrep(1), znew(1), zforce(1), gzip(1), gzexe(1) BUGS Messages from the cmp or diff programs refer to temporary filenames instead of those specified. ZDIFF(1)


kdestroy - destroy Kerberos tickets
\$1 \n[an-margin] level \n[rst2man-indent-level] level margin: \n[rst2man-indent\n[rst2man-indent-level]] - \n[rst2man-indent0] \n[rst2man-indent1] \n[rst2man-indent2]
kdestroy [-A] [-q] [-c cache_name]
The kdestroy utility destroys the user(aqs active Kerberos authorization tickets by overwriting and deleting the credentials cache that contains them. If the credentials cache is not specified, the default credentials cache is destroyed.
\fB-A Destroys all caches in the collection, if a cache collection is available.
\fB-q Run quietly. Normally kdestroy beeps if it fails to destroy the user(aqs tickets. The -q flag suppresses this behavior.
\fB-c cache_name Use cache_name as the credentials (ticket) cache name and location; if this option is not used, the default cache name and location are used.
The default credentials cache may vary between systems. If the KRB5CCNAME environment variable is set, its value is used to name the default ticket cache.
Most installations recommend that you place the kdestroy command in your .logout file, so that your tickets are destroyed automatically when you log out.
kdestroy uses the following environment variable:
\fBKRB5CCNAME Location of the default Kerberos 5 credentials (ticket) cache, in the form type:residual. If no type prefix is present, the FILE type is assumed. The type of the default cache may determine the availability of a cache collection; for instance, a default cache of type DIR causes caches within the directory to be present in the collection.
\fBFILE:/tmp/krb5cc_%{uid} Default location of Kerberos 5 credentials cache
1985-2013, MIT


What are Treasury, Departments and Parliament busy with?
- National Treasury engages with departments to assist with submissions.
- Function groups hold discussions and begin formulating recommendations to budget technical structures, including the Ministers' Committee on the Budget Technical Committee (MTEC) and the Technical Committee on Finance (TCF).
- Departments submit MTEF budgets to the National Treasury and engagements are held on these budget submissions.
- Parliament must pass the Appropriation Bill, with or without amendments, within four months after the start of the financial year: by 31 July.
- The Committees on Appropriations holds public hearings when deliberating the contents and recommendations to be included in its report on the Appropriation Bill.
- Parliament conducts oversight visits, study tours and special projects.
How can I participate?
- Engagement government departments on their budget submissions.
- Lobby parliament, parliamentary committees and MPs for specific oversight visits.
- Participate in parliamentary oversight visits.


There does not appear to be a correlation between latitude vs cloudiness. However, given how clustered the points are in certain cloudiness levels, cloudiness may be correlated to some other factor, such as altitude.


We are passionate coffee lovers who research, test and know the expectations of a STRONG coffe consumer.
We offer our customers throughout the Canada and United States only the highest quality, 100% Arabica gourmet coffee beans from around the world. Great gourmet coffee at great prices!
Our beans are expertly roasted and delivered straight to your door!
Join us on the green bean's journey..
By choosing Fairtrade coffee you’re supporting more than 750,000 coffee farmers to thrive in an unstable market by earning a decent income, protecting their local environment, and investing in their farms and communities.
Rainforest Alliance certification helps farmers produce better crops, adapt to climate change, increase their productivity, and reduce costs. These benefits provide companies with a steady and secured supply of certified products. Sourcing Rainforest Alliance Certified products also helps businesses meet consumer expectations and safeguard their brand’s credibility.


TABLE OF INTERACTIONS WITH
TENOFOVIR ALAFENAMIDE
From the French ANSM drug interactions document of
September 2016, pp. 213-214
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
BOCEPREVIR RxNorm: 1102129 ATC: J05AE12 |
Risk of lower effectiveness of the tenofovir alafenamide due to decrease of its intracellular activity by the boceprevir |
Not recommended |
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
CICLOSPORIN RxNorm: 3008 ATC: L04AD01 S01XA18 |
Increase of the plasma concentrations of the tenofovir alafenamide due to increase of its absorption |
Precaution for use In case of co-administration with the ciclosporine, the dose of tenofovir alafenamide must be limited to 10 mg per day. |
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
COBICISTAT RxNorm: 1306284 ATC: VO3AX03 |
With the atazanavir, the darunavir or the lopinavir boosted with cobicistat, increase of the plasma concentrations of the tenofovir alafenamide due to increase of its absorption |
Precaution for use In case of co-administration, the dose of tenofovir alafenamide must be limited to 10 mg per day. The administration with the other protease inhibitors of HIV has not been studied. |
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
ENZYME INDUCERS CLASS CODE: N03-J05-001 |
Decrease of the plasma concentrations of the tenofovir alafenamide due to decrease of its absorption by the inducer |
Not recommended If the administration of these medications together cannot be avoided, clinical monitoring during the administration and 1 to2 weeks after the inducer is stopped. |
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
RITONAVIR BOOSTED PROTEASE INHIBITORS CLASS CODE: J05AE-002 |
With the atazanavir, the darunavir or the lopinavir, increase of the plasma concentrations of the tenofovir alafenamide due to increase of its absorption |
Precaution for use If these are administered together, the dose of tenofovir alafenamide must be limited to 10 mg per day. Administration with the other protease inhibitors of HIV has not been studied. |
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
ITRACONAZOLE RxNorm: 28031 ATC: J02AC02 |
Increase of the plasma concentrations of the tenofovir alafenamide due to increase of its absorption |
Precaution for use In case of co-administration with the itraconazole, the dose of tenofovir alafenamide must be limited to 10 mg per day. |
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
KETOCONAZOLE RxNorm: 6135 ATC: D01AC08 G01AF11 J02AB02 |
Increase of the plasma concentrations of the tenofovir alafenamide due to increase of its absorption |
Precaution for use In case of co-administration with the ketoconazole, the dose of tenofovir alafenamide must be limited to 10 mg per day. |
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
RIFAMPICIN RxNorm: 9384 ATC: J04AB02 |
Decrease of the plasma concentrations of tenofovir alafenamide due to decrease of its absorption by the rifampicin |
Not recommended Clinical monitoring during the administration of these medications together and 1 to 2 weeks after the rifampicin is stopped. |
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
TELAPREVIR Rx Norm: 1102261 ATC: J05AE11 |
Risk of reduction of the effectiveness of the tenofovir alafenamide due to decrease of its intracellular activity by the telaprevir |
Not recommended |
TENOFOVIR ALAFENAMIDE RxNorm: 1721603 ATC: not found |
VERAPAMIL RxNorm: 11170 ATC: C08DA01 |
Increase of the plasma concentrations of the tenofovir alafenamide due to increase of its absorption |
Precaution for use In case of co-administration with the verapamil, the dose of tenofovir alafenamide must be limited to 10 mg per day |


Suneel Marthi
June 18, 2019
Berlin Buzzwords, Berlin, Germany
Deep Learning has moved from Academia to Industry
Availability of Massive Cloud Computing Power
Combination of Compute Resources + Big Data with Deep Learning models often produces useful and interesting applications
Computer Vision for Satellite Imagery
Availability of low cost satellite images for research
Train a Deep Learning model to Determine Vegetation Health
Earth observation mission from EOS
10 spectral bands, from RGB to SWIR (Short Wave Infrared)
Spatial resolution: 30m/px (Visible, NIR bands)
Free and open data, updated each day
Operational Land Imager (OLI)
Thermal Infrared Sensor (TIRS)
Resolution of 30m/pixel(visible, NIR, SWIR)
| Band | Range(nm) | Resolution | Spectrum |
|---|---|---|---|
| B1 | 435-451 | 30m | Coastal |
| B2 | 452-512 | 30m | Blue |
| B3 | 533-590 | 30m | Green |
| B4 | 5636-673 | 30m | Red |
| B5 | 851-879 | 30m | NIR |
| B6 | 1566-1651 | 30m | SWIR-1 |
| B7 | 2107-2294 | 30m | SWIR-2 |
Photosynthetically Active Radiation (PAR) 400 - 700nm range
Plants absorb solar radiation in PAR region
Plants re-emit solar radiation in NIR region
Hence, plants appear bright in the NIR spectrum
https://en.wikipedia.org/wiki/Near-infrared_spectroscopy#Agriculture
Plant Chlorophyll absorbs visible light (0.4 to 0.7µm)
Plant leaves reflect NIR (0.7 to 1.1µm)
More plant leaves, greater the radiance emited from plants
https://en.wikipedia.org/wiki/Near-infrared_spectroscopy#Agriculture
Difference in plant reflectances can help determine their distribution in satellite imagery
https://en.wikipedia.org/wiki/Near-infrared_spectroscopy#Agriculture
Used to monitor agriculture production, drought, hazardous fire zones
Bands 5 and 4 in Landsat8 images
NDVI Range: [-1,1]
Dense Green Vegetation canopy is typically 0.3 - 0.8
Standing water like Deep Oceans (away from coast) typically have -ve or small +ve values
Soil with a high NIR, tends to have a small positive value < 0.2
https://en.wikipedia.org/wiki/Near-infrared_spectroscopy#Agriculture
| Cover | Red | NIR | NDVI |
|---|---|---|---|
| Dense Vegetation | 0.1 | 0.5 | 0.7 |
| Dry Soil | 0.269 | 0.283 | 0.025 |
| Clouds | 0.227 | 0.228 | 0.002 |
| Snow and Ice | 0.375 | 0.342 | -0.046 |
| Water | 0.022 | 0.013 | -0.257 |
https://grindgis.com/blog/vegetation-indices-arcgis#1
Images downloaded from AWS Earth (available as Open Data)
Data refreshed continually
aws s3 sync s3://landsat-pds/c1/L8/044/033 ~/Downloads/landsat-044
Need to remove cloud cover from images before further processing
Approach: Mask the clouds from all the feature bands
Compute Median Cloud Masking Composite for the year
/**
* Function to mask clouds based on the pixel band of Landsat 8 SR data.
* @param {Image} image input Landsat 8 SR image
* @return {Image} cloudmasked Landsat 8 image
*/
function maskL8sr(image) {
// Bits 3 and 5 are cloud shadow and cloud, respectively.
var cloudShadowBitMask = (1 << 3);
var cloudsBitMask = (1 << 5);
// Get the pixel QA band.
var qa = image.select('pixel_qa');
// Both flags should be set to zero, indicating clear conditions.
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
.and(qa.bitwiseAnd(cloudsBitMask).eq(0));
return image.updateMask(mask);
}
var dataset = ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterDate('2018-01-01', '2018-12-31')
.map(maskL8sr);
Two Dense Layers with ReLU and Softmax activations
Dropout: 0.2
Optimization: Adam
Loss Function: Cross Entropy
One-Hot Encode the Labels
# Add the model layers
model = tf.keras.models.Sequential([
tf.keras.layers.Dense(64, activation=tf.nn.relu),
tf.keras.layers.Dropout(0.2),
tf.keras.layers.Dense(nClasses, activation=tf.nn.softmax)
])
# Compile it with the optimizer and loss function
model.compile(optimizer=tf.train.AdamOptimizer(),
loss='categorical_crossentropy',
metrics=['accuracy'])
NDVI: -0.23979
NDVI: -0.2407
NDVI: -0.23984151008195187
NDVI: -0.24
"Batch is an extension of Streaming, except when Streaming is an extension of Batch"
-- Shannon Quinn, Apache Mahout
"Spark Streaming is for people who want to operate on their streams using Batch idioms.
Flink Batch is for people who want to operate on their batches using Streaming idioms."
-- Joey Frazee, Apache NiFi
pipeline_options = PipelineOptions(pipeline_args)
pipeline_options.view_as(SetupOptions).save_main_session = True
pipeline_options.view_as(StandardOptions).streaming = True
with beam.Pipeline(options=pipeline_options) as p:
filtered_images = (p | "Read Images" >> beam.Create(glob.glob(known_args.input + '*wms*' + '.png'))
| "Batch elements" >> beam.BatchElements(0, known_args.batchsize)3
| "Apply Cloud Mask" >> beam.ParDo(CloudMaskFn.CloudMaskFn()))
filtered_images | "Predict Land Use" >>
beam.ParDo(Prediction.PredictionFn(known_args.models, known_args.output))
Paradise, CA over 2018 had a consistent Dry Vegetation patterns with NDVI < 0
Healthy Green Vegetation in the range [0.3, 1.0)
Using Shortwave Infrared images (2.107 - 2.294 nm)
Radiant Energy reflected/transmitted per unit time (Radiant Flux)
Eg: Plants don't grow on rocks
https://en.wikipedia.org/wiki/Radiant_flux
Identify borders, regions without much details with naked eye - Wonder Why?
Images are in Red band
Unsupervised Learning - Clustering


| 1 | /** | |
| 2 | * Copyright (c) 2008, http://www.snakeyaml.org | |
| 3 | * | |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | |
| 5 | * you may not use this file except in compliance with the License. | |
| 6 | * You may obtain a copy of the License at | |
| 7 | * | |
| 8 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 9 | * | |
| 10 | * Unless required by applicable law or agreed to in writing, software | |
| 11 | * distributed under the License is distributed on an "AS IS" BASIS, | |
| 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 13 | * See the License for the specific language governing permissions and | |
| 14 | * limitations under the License. | |
| 15 | */ | |
| 16 | package org.yaml.snakeyaml.constructor; | |
| 17 | ||
| 18 | /** | |
| 19 | * Construct instances with a custom Class Loader. | |
| 20 | */ | |
| 21 | public class CustomClassLoaderConstructor extends Constructor { | |
| 22 | private ClassLoader loader = CustomClassLoaderConstructor.class.getClassLoader(); | |
| 23 | ||
| 24 | public CustomClassLoaderConstructor(ClassLoader cLoader) { | |
| 25 | this(Object.class, cLoader); | |
| 26 | } | |
| 27 | ||
| 28 | public CustomClassLoaderConstructor(Class<? extends Object> theRoot, ClassLoader theLoader) { | |
| 29 | super(theRoot); | |
| 30 |
1
1. <init> : negated conditional → KILLED |
if (theLoader == null) { |
| 31 | throw new NullPointerException("Loader must be provided."); | |
| 32 | } | |
| 33 | this.loader = theLoader; | |
| 34 | } | |
| 35 | ||
| 36 | @Override | |
| 37 | protected Class<?> getClassForName(String name) throws ClassNotFoundException { | |
| 38 |
1
1. getClassForName : replaced return value with null for org/yaml/snakeyaml/constructor/CustomClassLoaderConstructor::getClassForName → KILLED |
return Class.forName(name, true, loader); |
| 39 | } | |
| 40 | } | |
Mutations | ||
| 30 |
1.1 |
|
| 38 |
1.1 |


| Path: | doc/rational.rdoc |
| Last Update: | Sat Dec 31 04:50:24 +0100 2011 |
Ok, let me state from the beginning that I never intended to write this code. I‘m not convinced it is useful, and I‘m not convinced anyone would even be interested in it. All I can say is that Why‘s onion truck must by been passing through the Ohio valley.
What am I talking about? … A Ruby version of Make.
See, I can sense you cringing already, and I agree. The world certainly doesn‘t need yet another reworking of the "make" program. I mean, we already have "ant". Isn‘t that enough?
It started yesterday. I was helping a coworker fix a problem in one of the Makefiles we use in our project. Not a particularly tough problem, but during the course of the conversation I began lamenting some of the shortcomings of make. In particular, in one of my makefiles I wanted to determine the name of a file dynamically and had to resort to some simple scripting (in Ruby) to make it work. "Wouldn‘t it be nice if you could just use Ruby inside a Makefile" I said.
My coworker (a recent convert to Ruby) agreed, but wondered what it would look like. So I sketched the following on the whiteboard…
"What if you could specify the make tasks in Ruby, like this ..." task "build" do java_compile(...args, etc ...) end "The task function would register "build" as a target to be made, and the block would be the action executed whenever the build system determined that it was time to do the build target."
We agreed that would be cool, but writing make from scratch would be WAY too much work. And that was the end of that!
… Except I couldn‘t get the thought out of my head. What exactly would be needed to make the about syntax work as a make file? Hmmm, you would need to register the tasks, you need some way of specifying dependencies between tasks, and some way of kicking off the process. Hey! What if we did … and fifteen minutes later I had a working prototype of Ruby make, complete with dependencies and actions.
I showed the code to my coworker and we had a good laugh. It was just about a page worth of code that reproduced an amazing amount of the functionality of make. We were both truly stunned with the power of Ruby.
But it didn‘t do everything make did. In particular, it didn‘t have timestamp based file dependencies (where a file is rebuilt if any of its prerequisite files have a later timestamp). Obviously THAT would be a pain to add and so Ruby Make would remain an interesting experiment.
… Except as I walked back to my desk, I started thinking about what file based dependencies would really need. Rats! I was hooked again, and by adding a new class and two new methods, file/timestamp dependencies were implemented.
Ok, now I was really hooked. Last night (during CSI!) I massaged the code and cleaned it up a bit. The result is a bare-bones replacement for make in exactly 100 lines of code.
For the curious, you can see it at …
Oh, about the name. When I wrote the example Ruby Make task on my whiteboard, my coworker exclaimed "Oh! I have the perfect name: Rake … Get it? Ruby-Make. Rake!" He said he envisioned the tasks as leaves and Rake would clean them up … or something like that. Anyways, the name stuck.
Some quick examples …
A simple task to delete backup files …
task :clean do Dir['*~'].each {|fn| rm fn rescue nil} end
Note that task names are symbols (they are slightly easier to type than quoted strings … but you may use quoted string if you would rather). Rake makes the methods of the FileUtils module directly available, so we take advantage of the rm command. Also note the use of "rescue nil" to trap and ignore errors in the rm command.
To run it, just type "rake clean". Rake will automatically find a Rakefile in the current directory (or above!) and will invoke the targets named on the command line. If there are no targets explicitly named, rake will invoke the task "default".
Here‘s another task with dependencies …
task :clobber => [:clean] do rm_r "tempdir" end
Task :clobber depends upon task :clean, so :clean will be run before :clobber is executed.
Files are specified by using the "file" command. It is similar to the task command, except that the task name represents a file, and the task will be run only if the file doesn‘t exist, or if its modification time is earlier than any of its prerequisites.
Here is a file based dependency that will compile "hello.cc" to "hello.o".
file "hello.cc" file "hello.o" => ["hello.cc"] do |t| srcfile = t.name.sub(/\.o$/, ".cc") sh %{g++ #{srcfile} -c -o #{t.name}} end
I normally specify file tasks with string (rather than symbols). Some file names can‘t be represented by symbols. Plus it makes the distinction between them more clear to the casual reader.
Currently writing a task for each and every file in the project would be tedious at best. I envision a set of libraries to make this job easier. For instance, perhaps something like this …
require 'rake/ctools' Dir['*.c'].each do |fn| c_source_file(fn) end
where "c_source_file" will create all the tasks need to compile all the C source files in a directory. Any number of useful libraries could be created for rake.
That‘s it. There‘s no documentation (other than whats in this message). Does this sound interesting to anyone? If so, I‘ll continue to clean it up and write it up and publish it on RAA. Otherwise, I‘ll leave it as an interesting exercise and a tribute to the power of Ruby.
Why /might/ rake be interesting to Ruby programmers. I don‘t know, perhaps …
So … Sorry for the long rambling message. Like I said, I never intended to write this code at all.


Tracy Strings Band
Tracy Sirés likes to sing beautiful Jazz and Folk songs with her band.
We play Acoustic Guitar, Cello, Double Bass and Percussion.
We are currently recording some songs, here is a taste:
Weary Blues
This is Heaven to Me
Want a contact?
Feel free to write us at:
tracysiresneal (at) gmail.com


This project's changelog. Versions marked with "-fork" come from the community, other versions come from the canonical LWT ("official" branch on Git). For git tags, official releases are marked like "v1.0.0", while unofficial ones are marked like "v1.0.0-fork".
2.8.1-fork (April 14 2023)
Changed
- Updated some documentation screenshots: home screen, language edition and terms upload.
Fixed
- Since 2.8.0-fork, PHP installations with ext-dom absent or disabled could not display text.
- Using the import terms feature, it is better detected if local infile is enabled.
- Since 2.2.2-fork, many multi-words were not displayed, as explained in #70. Issues may remain.
- Auto-translation of all words (bulk translate) could not open dictionaries starting with '*'.
- Since 2.7.0-fork, using a dictionary starting with "ggl.php" was creating a fatal error on opening text.
Full Changelog
2.8.0-fork (April 08 2023)
Added
- Responsive design: LWT gets easier to visualize on phone!
Changed
- The language settings wizard is now open by default on new language creation.
- Potential breaking change in the way words are displayed while reading. The target was to make the code more robust.
item_parser
and echo_term
in do_text_text.php
now both takes an optional $expr
argument.
- Terms import form changed for a simpler presentation. It becomes easier to use to use on your phone.
- Many tables are now displayed larger (when your screen has the available space).
- Updated composer dependencies.
Fixed
- Removed warnings: dictionaries url without query do no longer raise warnings.
- Feeds:
- Click "New Text" on the first page of
do_feeds.php
had no effect. Changed to "New Feed".
- Step 2 of feed wizard was sometimes failing because
$_SESSION['wizard']['host']
was a string an not an array.
- Type error in
get_links_from_new_feed
was breaking step 2 of feed wizard.
- Loading feeds could result in malformed SQL, see #100. Thanks @maanh96 for the hint!
- Docker:
media/
was neither accessible nor saved to a container (#106). Thanks to @parradam for signaling and solving the issue!
- On creating a language, the Glosbe dictionary comes with a "?lwt_popup=1" to open in new window by default.
- Japanese pronunciation: works even if the language is not exactly called "Japanese", see #103.
- Expressions containing word feature repaired! #90.
- On text-to-speech settings, the region was often not displayed.
Full Changelog
2.7.0-fork (March 14 2023)
Added
- The translation and romanization of new words can now be automatic.
- Supported automatic translation is achieved using LibreTranslate.
- Romanization using MeCab (Japanese only) toward katakana only.
- A lot of improvements for language creation/edition:
- More intuitive fields, better interactions with the user, etc...
- A "Pop-Up" checkbox helps you choose if the website should be displayed in a pop-up.
- LWT becomes easier to install and maintain for users:
- An installer for Linux users at
INSTALL.sh
helps installing requirements and configuration.
- Database creation wizard (
database_wizard.php
) to help setting the connection with the database.
- A server data page at
server_data.php
showing all relevant information.
- In
index.php
:
get_server_data_table
replaces get_server_data
as a better designed function.
index_do_main_page
now renders the page to avoid global variables.
- You get warnings if the PHP version is too low, or if a newer version of LWT is released.
pagestart_kernel_nobody
in inc/kernel.php
that displays the minimal HTML formatting.
inc/classes/
folder for a better incorporation of OOP.
inc/classes/Term
defines the Term
class representing a word or multi-word.
inc/classes/Language
defines the Language
class representing a language.
- Post-Install Documentation added:
- MeCab without and with Docker, Thanks to @99MengXin for the link (#94).
- LibreTranslate integration.
- TTS issues, as suggested by @asdrubalivan in #85.
Changed
- Graphic review:
- Headers reviewed. Most h4 headers became div.bigger, and h3 became h1 level headers.
- We now use responsive design instead of fixed-size.
- All themes updated accordingly, so themes were modified.
do_text_page
(do_text.php
) and do_test_page
(do_test.php
) now enlarge the body.
echo_lwt_logo
in inc/session_utility.php
echoes a logo, without information on the table set used because it was useless. This information is now displayed on the welcome page.
- Access to the database prefix edition at
start.php
was reviewed and simplified. It is still considered a legacy feature.
- Language creation reviewed:
- When creating a new language, the language wizard do no longer display in a pop-up but in the main window.
- Select option boxes replaced by checkboxes (better accessibility).
- Updated hoverIntent jQuery Plug-in from 1.8.0 to 1.10.2. This brings some bug fixes.
- "TO DO" changed to a more explicit "Unknown words" in text header.
- Refactored
bulk_translate_word.php
. It has a better visual aspect and works better.
- Updated composer dependencies.
- vimeo/psalm updated from ^4.12 to ^5.6.
- phpunit/phpunit updated from ^9.5 to ^10.0.
- Changed to the text from YouTube feature (
text_from_yt.php
):
- Refactored.
- Moved from root folder to
inc/
.
- This is still an experimental feature!
- Moved Google API files:
- Moved
googleTimeToken.php
from root folder to inc/google_time_token.php
.
- Moved
googleTranslateClass.php
from root folder to inc/classes/GoogleTranslate.php
.
- Updates in demo database:
- Faster to install.
install_demo_db_sql.gz
uncompressed to install_demo_db.sql
. Functions adapted.
- Dict links changed: ### replaced by lwt_term, * replaced by lwt_popup=1, some dict url protocol changed to https.
Fixed
- Markdown: enforced consistency with official style recommendations. The documentation display got improved.
- The default date for new words was note accepted depending on the SQL configuration, causing issues with Docker installation. See #78.
- Bulk translate words:
- Translating with bulk translate was not updating word rendering.
- All broom icons icon were display in the screen top-right corner, and not at the right if text field.
- Main page (
index.php
) was not rendered properly on non-default theme.
- Changing language name was breaking this, this is fixed:
- Text header was sometimes not available.
- It was breaking full text-to-speech dispatcher. Issue signaled with issue #80
- Support for PHP 7.4 restored, wrappers for
str_starts_with
, str_ends_with
, str_contains
.
- The encoding of
docs/info.html
is finally fixed!
ggl.php
feature fixed!
- Multi-words:
- Sometimes multi-words indicator was cut, resulting in strange display (#89).
- For Japanese: multi-words indicator was before each character, this is fixed #96.
- Wrong link to documentation (
docs/info.php
instead of docs/info.html
) on the help button (main page). Signaled by babaeali on Discord.
- Depending on browser, clicking on deletion button for active texts had no effect.
Deprecated
- Dictionary and translator URIs changed:
- They should always be proper URLs.
- Replacing
###
by lwt_term
is strongly recommended!
- "*" At the beginning of an URI should be replaced by
lwt_popup=1
as an argument.
ggl.php
should be replaced by the file full URL, for instance "http://localhost/lwt/ggl.php".
Full Changelog
2.6.0-fork (January 01 2023)
Added
- Frames resizing is back! The text reading and test interfaces updated in several ways. Based on several suggestions such as #60.
- The desktop interface is now much similar to what it was before 2.2.1-fork.
- The mobile interface for texts unchanged (2.2.1-fork to 2.5.3-fork).
- You can resize frames on desktop.
- Many new functions officially introduced in PHP and JS. Some of these function were already present in the code but undocumented.
Changed
- UX: Faster testing: you do no longer need to enter "Space" first for speed testing, except for status down and change. Related to #71.
- UI:
- Do no longer show "[]" near words when they are no tags.
getWordTagList
behavior changed (inc/session_utility.php
).
- Tests have a better general aspect thanks to CSS cleanning.
- PHP:
do_test.php
, edit_texts.php
, edit_words.php
and set_test_status.php
now explicitly require a running session. They were silently failing before this release.
save_setting_redirect.php
moved to inc/save_setting_redirect.php
.
- Psalm static code analysis of all PHP files.
- We use "EOP" for end-of-paragraph markers instead of misleading "EOS" (MeCab).
- Slightly changed how a connection is established with SQL. It makes messages more relevant when SQL is not running.
- Not Japanese texts now always use the PHP parser. The SQL parser is no longer used.
- JS: Some deprecated functions
escape
and unescape
were replaced by modern equivalents encodeURIcomponent
and decodeURIcomponent
. This may lead to changes in cookies, notably making them work better.
- DB: the NO_ZERO_DATE mode is no longer required, see #78.
- In the
words
table, replaced the default timestamp 0000-00-00 00:00:00
by 0000-00-00 00:00:01
.
- The demo database underwent the same change.
- Updated
composer.lock
.
- Docker: more default options, documentation updated.
Deprecated
do_test_test_css
in do_test_test.php
is deprecated since it was causing display issues. Its CSS rules were trimmed.
Removed
- The ability to use a dictionary with a specific encoding, introduced in 1.0.2, is being removed. It was making things overwhelmingly complex and caused issues, as signaled in #58. Adapted from PR #59.
Fixed
- Docker:
- Docker integration repaired (#37)! Huge thanks to @hakuro-jp for the initial help and @darkone23 for the final solution. Without you two I would have long given up with Docker.
- Docker continuous integration is back as well due to a rewrite of the workflow.
- Texts:
- The audio player was no longer working since 2.1.0-fork since the play button was hidden.
- Save text position (
inc/ajax_save_text_position.php
) was broken for all texts. This is fixed.
- Right frames should hide automatically but they often don't (#61). Merged PR #62.
- Japanese parsing is now better, and uses PHP only (the local_infile SQL functionality is no longer used). Related to PR #43.
- One-word not Japanese texts do no longer result in a crash (#80), whoever uses them.
- Tests:
- Header was hidden during tests on Chrome-based browsers.
- Testing specific terms was broken (#66) and tests were sometimes not counting score. Solution inspired from PR #67 from @jzohrab.
- Sometimes tests were loop-reloading clicking after setting new status, this is fixed.
- JS:
- You should no longer see annoying console messages of "cClick" crashing on "obj is null".
- PHP:
- Type fixes thanks to psalm:
get_first_value
documentation updated since it was also returning float
and int
.
get_similar_terms
in simterms.php
officially returns int.
- Inconsistent option in
inc/ajax_save_setting.php
.
- Since 2.2.2-fork, you had to use a GET request to use it, resulting in authorization errors.
- POST requests are now again the default way to use it.
- PHP tries to set the allow_local_infile option during the connection with SQL (#20, #40).
- UI
- Audio in
edit_texts.php
was never shown.
- When adding text, the user was ask to create a
media
folder in ...
, corrected to ..
.
- DB:
- For some users it was impossible to install the default database due to the use of a ZERO date (#78).
- Deleted wrong database instructions
ADD DROP INDEX TiTextLC
altering temptextitems
in update_database
of database_connect.php
.
Full Changelog
2.5.3-fork (November 06 2022)
Added
Changed
- Renamed
connect_mamp.php
to connect_mamp.inc.php
for consistency with documentation.
- "I KNOW ALL" button becomes "Set All to Known" and "IGNORE ALL" becomes "Ignore All".
- Changed the messages when clicking "Set All to Known" or "Ignore All".
- Uncomplete code linting in
bulk_translate_words.php
. For phone users, it now properly focuses on the main screen after use.
- Only sentences containing more than 70% of known words are shown were testing sentences. Based on an idea from #53, with contribution of PR #65.
Fixed
- Left-to-right languages where displayed as right-to-left when checking them, as signaled in pull request #42, thanks @Heliozoa!
- People who didn't fill the URL for Google Translate were seeing deprecation warnings while using using the
bulk_translate
functionality (clicking in "TO DO" for editing multiple new words). Bulk translate itself is not fixed, but warnings are no longer displayed. Merged pull request #44, from @Heliozoa.
- Multiple fixes to the "I Known All Words" feature. Great thanks to @jzohrab!
- Setting all words to well-known was resulting in a crash when no words were added as well-known (
all_words_wellknown.php
).
- Setting all words to well-known was resulting in a crash when multiple words had the same lowercase value. See issue #46!
- Words were not updated in the view unless reparsing the text (#48). Merged pull request #49.
- In the main dropdown menu, the option "Text-to-Speech Settings" was still leading to
tts.php
(now text_to_speech_settings.php
). Merged pull request #51, thanks @jzohrab.
- Database backup/restoration:
- Fixed database backup, signaled in #55.
- Fixed the database restoration, apparently broken since 2.0.3-fork. Pull request #56 by @jzohrab.
- Sentences with unknown words were showed in test when it was not supposed to be the case (#52 and #64).
Full Changelog
2.5.2-fork (September 27 2022)
Changed
Fixed
- Multi-words insertion for languages using no space is now repaired! Thanks to @gaoxiangluke for signaling it (#38).
- Terms import (
upload_words.php
) can now be used with @@GLOBAL.local_infile
(MySQL) set to 0.
- Deleted a parasite ";" that was displayed after importing terms.
Full Changelog
2.5.1-fork (September 16 2022)
Fixed
- Having
@@GLOBAL.local_infile
(MySQL) set to 0, or any configuration disabling LOAD DATA LOCAL INFILE
, was causing a fatal error on adding a new text. This is fixing by a slower method.
- If
local_infile
is enabled, no change should be noticed.
- This was signaled in issues #20 and #40.
- The WordPress binding scripts had multiple issues as reported in #41, thanks @Redmattski!
Full Changelog
2.5.0-fork (July 08 2022)
Added
- Compatibility with PHP 8+!
- Updated with LWT 2.0.3, solving incompatibilities with PHP 8.1 throwing MySQLI errors.
- Introducing the new class
Term
in edit_mword.php
. This class is yet to be considered experimental, so expect important changes, but should gradually get used everywhere.
insert_expression_from_mecab
in session_utility.php
. Better name and behavior for insertExpressionFromMeCab
(see deprecations).
Changed
- Composer dependencies updated.
- The Docker container now uses PHP 8.1 (instead of 7.4).
Fixed
- For some user, the –secure-priv-file option was still required to be on. This was due to a conflict between PHP and MySQLI authorizations.
- When deleting a word, it was previously necessary to reload the page to see a visual change.
- Multi-words insertion fixed.
- "Show Sentences" button during words edition was broken since 2.3.0-fork.
Full Changelog
Deprecated
set_word_count
in database_connect.php
had a misleading name. It was changed to init_word_count
.
insertExpressionFromMeCab
deprecated for insert_expression_from_mecab
in session_utility.php
.
- PHP <8 won't be tested anymore. You are highly encouraged to update to PHP 8+!
2.0.3 (February 15 2022)
Fixed
- An incompatibility with PHP 8.1+ (changed mysqli_report default setting in PHP 8.1+) has been fixed.
2.4.1-fork (June 09 2022)
Changed
- Some function signature were not logical in ``edit_texts.php``. These signatures remain untouched for backward compatibility, but the internals were changed.
- Texts without tag do no longer display a "[]" string next to the title. Applies to both archived and active texts.
Fixed
Full Changelog
2.4.0-fork (May 23 2022)
Added
- The external dependency for Japanese parsing, MeCab, is now more easily detected on Windows and Linux.
- Better integration of Docker.
Changed
- You must not only include ``pgm.js`` to ask the user before exiting but also the new function ``ask_before_exiting``.
- ``splitCheckText`` was split into smaller functions.
- Refactored ``edit_languages.php`` with functional paradigm.
Fixed
- Many pages were asking before exiting while it was unnecessary.
- Made bigger buttons and unified the presentation of ``edit_texts.php``, ``edit_archivedtexts.php``, ``long_text_import.php`` and ``do_feeds.php``. It solves issue [#29](https://github.com/HugoFara/lwt/issues/29).
- Japanese texts were ill parsed on Windows. The issue [#23](https://github.com/HugoFara/lwt/issues/23) is now solved! [@rc-ops](https://github.com/rc-ops), arigatou!
- The number of texts, expressions and so on was always 0 in ``edit_languages.php``.
- On Windows, annoying notices were often displayed in ``edit_languages.php``.
Removed
- The HTML code documentation is no longer included in the dev branch.
- The unnecessary JS files were removed since they were all merged in ``js/``.
Full Changelog
2.3.0-fork (April 25 2022)
Added
- Commands included in ``Makefile`` where transcripted in ``composer.json``.
- [Docker](https://www.docker.com/) integration! It is done through ``Dockerfile``, ``docker-compose.yml``, ``.dockerignore`` and ``.env`` files.
- You can click on a read icon in order to read a word.
- Text-To-Speech (TTS) Settings!
- Change the language rate, pitch, or local region for text-to-speech.
- Early support of local videos, discussed in [#9](https://github.com/HugoFara/lwt/issues/9) with [@chaosarium](https://github.com/chaosarium).
Changed
- mbstring and mysqli extensions are now clearly asked for by Composer.
- The "database update" part of ``check_update_db`` in ``inc/database_connect.php`` was moved to ``update_database``.
- Almost all JS goes in one file when minified. This has several reasons:
- Better browser caching: JS code is downloaded once for all.
- Easier maintaining: it was difficult to manage which php file was needing which JS script.
- Consistency: scripts were calling functions that should be imported from other files, making the debugging difficult.
- Feed wizard changes
- The feed wizard got a little broken: the "next" button is always active, even if you did not select text and click "Get".
- It's style was uniformized with your current theme.
- ``tts.php`` becomes ``text_to_speech_settings.php``. As this file was unused, it is not considered as a breaking change.
- Refactored ``all_words_wellknown.php``, ``edit_texts.php``. Those pages should load a bit faster.
- We do no longer load pages in [Almost Standards Mode](https://developer.mozilla.org/en-US/docs/Web/HTML/Quirks_Mode_and_Standards_Mode). Unless you use some Netscape browser, it should not impact you.
Deprecated
- Use ``clean-doc`` install of ``clean`` in ``Makefile`` because it was ambiguous with composer commands.
Fixed
Full Changelog
2.2.2-fork (February 13 2022)
Added
- A contribution guide at ``docs/contribute.md``.
Changed
- Updated the jQuery deprecated events. It should have no consequence.
- Slightly changed the behavior of the CSS/JS minifiers. The relative paths in the return string were different from the ones in the saved file.
- Regenerated documentation.
Fixed
- Some AJAX files could not work properly since 2.0.3-fork.
- Refreshing the list of audio files in ``edit_texts.php`` works again.
- Theme in ``info.html`` works now.
- Some other problems may have been fixed.
- With ``do_test?text=``, the language name displayed instead of "[L2]" was often wrong.
- ``$fixed_tbpref`` was never declared at global scope.
- Fixed an incompatibility in ``database_connect.php``, ``splitCheckText`` with PHP <7.4.
- Impossible to start bulk_translate_new_words from ``do_text.php``.
- The audio player does no longer show at the end of the page (DOM node was not closed).
- Relative paths in themes were often broken. For instance: no images in audio player.
- An explanation was also added on how to add custom images in your theme.
- Very small errors corrected in some themes.
Deprecated
- Deprecated a lot of camelCase functions in ``do_text_text.php`` to their snake_case counterpart. The behavior of the deprecated functions did not change.
- camelCase to snake_case: ``getTextData`` to ``get_text_data``, ``sentenceParser`` to ``sentence_parser``, ``wordParser`` to ``word_parser`` and ``mainWordLoop`` to ``main_word_loop``
- Typo fixing: ``getLanguagesSettings`` to ``get_language_settings`` (use singular)
- Signature changed: ``echoTerm`` to ``echo_term`` (no return value, no ``$hideuntil`` parameter)
- Name uniformisation: ``prepareStyle`` to ``do_text_text_style`` and ``do_text_javascript`` to ``do_text_text_javascript``.
Full Changelog
2.2.1-fork (February 07 2022)
Changed
- Composer in no longer *required* for standard users (but is still required for contributing).
- Updated ``README.md``.
- [league/commonmark](https://packagist.org/packages/league/commonmark) becomes a dev requirement (no longer required for everyone).
- Re-minified ``jquery.tagit.css``, it may have visual consequences.
- Replaced some jQuery functions by their equivalents. It should not have consequences.
Fixed
- Calling ``do_text.php?text=`` created a database error, it does no longer.
- Long text were laggy in ``do_text_text.php`` since 2.0.3-fork. Some other issues may have been fixed at the same time.
- Possible insecure PHP string to JS string conversion in ``do_text_header.php``, function ``browser_tts``.
Deprecated
- The ``is_mobile`` function now always returns false.
- The ``wordProcessor`` (``do_text_text.php``) function was incorrect.
- It now always return 0.
- Please use ``wordParser``, ``sentenceParser`` and some more code instead.
Removed
- Removed unnecessary dependencies:
- The ``components/`` folder was also deleted. It was bundling JS code from composer.
- It should have been git ignored at least.
- Its content was unused. The files it was trying to use are duplicated.
Full Changelog
2.2.0-fork (February 04 2022)
Added
- Sounds while testing terms!
- New minifier for themes: it is now very easy to create new themes.
- JS files added to documentation.
- ``info_export_template.md`` was imported and adapted from official documentation.
Changed
- All the do_test*.php part do no longer use frames.
- All the display_impr_text*.php part do no longer use frames.
- It means LWT is now mobile-friendly!
- Regenerated themes.
- "do_text.php?text=..." is the official way to call texts. The "start" argument is still supported.
- New and enhanced design for the welcome page (``index.php``)
- Enhanced semantic for ``docs/info.html``, and for ``docs/*.md`` files.
- The Doxygen-generated content now uses LWT default style.
Fixed
- Several database flaws fixed. Now the database should stop rotting with time.
- It is easier to close the right frames in do_text.php.
- When viewing the maximum number of results per page (edit_text.php for instance), the maximum value was shown as a floating point value.
Removed
- Floating Menu from JTricks.com was unused since 2.0.4-fork. It is now deleted.
Full Changelog
2.1.0-fork (January 09 2022)
Added
- Badges in the README providing up-to-date information on the state of the project.
- When reading, right frames are hidden and will slide into screen when needed.
Changed
- PHP >=7.4 is now the official PHP version.
- Refactored the do_test* pages.
- Better CSS minification.
- Code base inconsistencies and security issues fixed (level 5 and above psalm errors fixed).
- Code is much more strongly typed (~80% of the code base). Level 4 psalm errors partially fixed.
- GitHub continuous integration reviewed.
- Regenerated documentation.
Fixed
composer.json
is now working! Thanks chaosarium for signaling this issue #4!
- Since 2.0.3-fork, it was difficult to get annotations. This is no longer the case.
- tag-it, jquery-hoverintent, and jquery-xpath are now copied from raw code, and no longer integrated by composer.
Removed
- Effectively dropped support for PHP <=7.
Full Changelog
2.0.4-fork (December 03 2021)
This version brings a better composer compatibility, and starts revamping mobile compatibility.
Changed
- Starting to refactor for 2021 HTML!
- Much less iframes for reading texts.
- Now you can read texts on mobile without the experimental mobile LWT.
- Texts can be read using "focus mode" on most browsers.
- Updated documentation (expanded and refactored).
- Composer is now the recommended way to download lwt.
- PHP_codesniffer is now recommended, and no longer dev-required.
- Refactored many parts of the code, that gets easier to read.
Removed
composer.phar
and composer.lock
are now git ignored.
Full Changelog
2.0.3-fork (November 26 2021)
Serious maintaining is back!
This version should be the stable merge between official v2.0.2 and community maintained 1.6.31-fork.
Added
- Show Learning translation setting.
- README.md created
- Code documentation.
- Automatic text-to-speech.
- Integrating Composer to manage dependencies.
- Issue templates for GitHub.
- Markdown integration in PHP.
- Video player for texts.
- Makefile to simplify workflows.
Changed
- MeCab is now the default way to learn Japanese.
- JS and CSS are now minified.
- Code linting.
- Important code refactors.
Full Changelog
2.0.2 (September 07 2021)
Fixed
- An incompatibility with PHP 8+ (removed function "get\_magic\_quotes\_gpc()" in PHP 8+) has been fixed. Thanks to Lucas L. for the hint.
2.0.1 (October 07 2020)
Fixed
- A bug when visiting terms/expressions with key strokes LEFT or RIGHT after a previous status change and with a set status filtering has been fixed.
2.0.0 (October 04 2020)
Fixed
1.6.3 (April 06 2020)
Added
- Some missing confirmation dialogues (when deleting a single text, text tag, term, term tag, or language) added.
1.6.2 (March 10 2018, this page "info.php" last updated August 12 2019)
Added
- Audio playback speed can now be set between 0.5x and 1.5x.
- Waiting wheel (to indicate saving data to database in the background) added in "Edit Improved Annotated Text".
- Checking for characters in the Unicode Supplementary Multilingual Planes (> U+FFFF) like emojis or very rare characters improved/added. Such characters are currently not supported.
Changed
- jQuery library updated to v1.12.4.
"Mobile\_Detect.php" updated to v2.8.30.
- LWT demo database updated.
- Documentation updated.
Fixed
- Some minor glitches fixed.
Removed
- Glosbe API calls via "glosbe\_api.php" in demo database and language settings wizard removed - they often did not work due to API restrictions. The file "glosbe\_api.php" is still supplied as an example of a close integration of a dictionary API into LWT.
1.6.1 (February 01 2016, this page "info.php" last updated January 13 2018)
Added
- Link to Chinese text segmentation "Jieba" added in documentation (Important Links - Additional Resources - For learners of Chinese).
Changed
- The jQuery and jPlayer libraries have been updated to v1.12.0 and v2.9.2, respectively.
- The jQuery.ScrollTo package has been updated to v2.1.2.
1.6.31-fork (October 03 2016)
Fixed
- Multibyte character parsing fixed (i.e. Chinese).
1.6.30-fork (July 28 2016)
Added
- MeCab support (in development).
Fixed
- Google translate API updated.
1.6.29-fork (April 21 2016)
Changed
- In abbreviations like 'Mr.' the dot is now part of the term. A reparse of texts is needed to take effect.
- Wizard Language: Arabic 'RegExp Word Characters' changed.
Fixed
- ggl.php API doesn't work (Token generation fixed).
- Dictionary doesn't open.
- Negative/uncorrect WordCount in 'edit_texts_php'.
1.6.28-fork (April 07 2016)
Added
- DB collation check added.
Changed
Fixed
- Access denied, LOAD DATA INFILE error (text parsing on a server).
- 'remove spaces' not working.
1.6.27-fork (February 21 2016)
Fixed
- Bugfix: DB backup/import errors.
- RegExp Word Characters are checked for correct syntax when creating/updating language.
Removed
- thumbnail/image support removed.
1.6.26-fork (February 11 2016)
Changed
- Demo Database updated.
- mysqli changes from orig. LWT.
- php-mobile-detect updated.
Fixed
- Some bugfixes: errors when emptying database and installing Demo database, added 'follow redirect' to feed.
1.6.25-fork (January 31 2016)
Added
- Added German Feed NachDenkSeiten to DemoDatabase.
- Added saved expressions to CheckText.
Changed
- SplitCheckText rewritten.
- Database changes (table 'temptextitems'): added: TiCount, dropped: TiLgID, TiTxID, TiTextLC and index TiTextLC
- Database changes : dropped: index WtWoID, index TtTxID, index AgAtID
Fixed
- Bugfix: No Word Counts displayed when text has no saved words.
1.6.0 (January 28 2016)
Changed
- As mysql_* database calls are deprecated and are no longer supported by PHP, they have been changed to the corresponding mysqli_* calls. If you run a server with PHP version 7.0.0 or higher, you MUST use LWT 1.6.0 or higher. Thanks to Laurens Vercaigne for his work!
- Debugging updated.
- Status information on start page improved.
- Documentation updated.
1.5.21 (January 14 2016)
Changed
- Soft hyphens (U+00AD, UTF-8: 0xC2 0xAD) are now automatically removed during text import.
- "Mobile\_Detect.php" updated to v2.8.19.
1.6.24-fork (January 11 2016)
Added
- Added possibility to switch between 'unique' and 'total' word count by clicking on 'u'/'t'-button.
Changed
- HTML lang attribute added in testing frame.
- Speed improvements in 'My Texts' screen.
- Replaced percentage of 'unknown words' by 'word charts' in 'My Texts' screen.
Removed
- Deleted Setting: Show Word Counts of Texts immediately
1.6.23-fork (December 13 2015)
Added
- HTML lang attribute added in reading frame.
Changed
- Jplayer, Jquery, JqueryUI updated.
- Google Translate API changes: random google domain access added (domain can be changed in googleTranslateClass.php), updated generateToken.
1.6.22-fork (November 11 2015)
Added
- Google Translate API(ggl.php): added headers and corrected token.
1.6.21-fork (October 16 2015)
Added
- Google Translate API(ggl.php): added token to URL.
1.6.20-fork (September 26 2015)
Changed
- Jquery Changes in the reading frame for hover_over/highlight words.
Fixed
- Google TextToSpeech callback fixed.
1.6.19-fork (August 29 2015)
Added
- New default settings: 'Tooltips' (new Default: 'JqueryUI') and 'Position of translations' (new Default: 'below').
Changed
- Mysql login process changed.
- JPlayer CSS and Skin changes. Skin are now integrated into 'Themes'.
1.6.18-fork (June 11 2015)
Added
- New Setting: Position of translation
- Translations can now be displayed 'behind', 'in front of', 'above' or 'below' the term in the reading frame.
- Improved encoding detection in 'newsfeed import'.
Fixed
- Words that are created by 'bulk import' are not updated in the reading frame (i.e. when new translations are added afterwards).
- mysql error 'duplicate entry' in 'newsfeed import'.
1.6.17-fork (May 09 2015)
Fixed
- Newsfeed Import doesn't load new links if WordPress is used for multiple users.
1.6.16-fork (May 01 2015)
Changed
- Improved Sentence Bondary Detection when parsing texts.
- User ID is saved in the PHP Session Variable (instead of a Cookie) if wordpress is used to log in.
- Switch to mysqli extension for database connection.
- Minified CSS and Javascript files; the uncompressed files can be found in the directory 'src'.
1.6.15-fork (April 10 2015)
Changed
Fixed
- Ggl API retrieval error fixed.
1.6.14-fork (March 28 2015)
Changed
- Glosbe API now uses javascript (browser based) instead of php(server based) to prevent possible retrieval errors when LWT is installed on a webhoster for multiple users.
1.6.13-fork (March 23 2015)
Added
- New Setting: Tooltips (JQueryUI will show images in Tooltips in the Read Text Screen)
- New Feature: You can now add thumbnail images to your terms. If you click on the icon at the left of the translation field in the new_term/edit_term frame/window you can select an thumbnail from 'google image search'. In order to display the images in the Read Text Screen you must set 'Tooltips' to 'JQueryUI'. The thumbnail images are not included in the backup at the moment.
- New Feature: Key binding J for edit term with Google Image Search added
Fixed
- 'error when making backup' fixed
1.6.12-fork (March 01 2015)
Changed
Fixed
- CSS/jquery fixes when selecting multiple word expressions in text frame
- Bugfix: new or imported multiple word expressions are not show in the text with 'remove Spaces' is 1 and 'split Each Char' is 0
1.6.11-fork (February 09 2015)
Fixed
- Bugfix: 'Show term sentences' and 'Create term sentences' fixed
1.6.10-fork (January 25 2015)
Changed
- CSS changes for firefox (version >= 35) in dark themes
Fixed
- Bugfixes in bulk import terms
1.6.9-fork (December 21 2014)
Fixed
- Getting article from feed even if there is no link
1.6.8-fork (December 19 2014)
Changed
- Google API can now do a requery
- Dict Lookup from bulk import terms frame is now possible
1.6.7-fork (December 18 2014)
Fixed
- Database error in newsfeeds
1.6.6-fork (December 16 2014)
Added
- Ability to change audio playback speed (doesn't work when using the flash plugin)
- Combine translation field option when importing words ('Merge translation fields' or 'Update existing translations')
1.6.5-fork (December 01 2014)
Fixed
1.6.4-fork (November 29 2014)
Fixed
- Wrong dict links for sentence translate
1.6.3-fork (October 12 2014)
Added
- Key binding G for edit term with Google Translate added
Changed
- Google api rewritten (works on webhoster with cURL-plugin)
1.6.2-fork (October 06 2014)
Added
- Key binding T for translating sentence added
- New Backup Option: official LWT backup added
Changed
- Database Changes: indexes changed in table words
1.6.1-fork (September 28 2014)
Added
- Translations of terms can now be display in the reading frame
- Key bindings when hovering over words in the reading frame
- Bulk translate new words in the reading frame
Changes from official LWT version 1.5.20 imported:
- Possibility to display similar terms while creating or editing a term. This will give you more language insight, and may ease inputting new terms that are similar. The number of displayed similar terms can be set from 0 (old behavior, default) to 9 on the "Settings" page. Clicking on the green icon in front of a similar term will copy the translation and romanization into the form fields for further editing. Important: If you want to use this new feature, you must change the setting "Similar terms to be displayed while adding/editing a term" to a value greater than 0. It will make more sense to do this if you have already many saved terms (e.g. more than 1,000). If you start with a language and have only a few terms, no or not very similar terms will be normally displayed and this feature will not make much sense.
- "https://" dictionary URIs are now allowed in the language settings. Checking of dictionary URIs in the language settings has been improved.
Changed
- The Glosbe dictionary page has been improved with a simple form to change the term and do a requery if you are unhappy with the query results.
- The jQuery and jPlayer libraries have been updated to v1.11.1 and v2.7.0, respectively. The jQuery.ScrollTo package has been updated to v1.4.13. The Floating Menu package has been updated to v1.12.
- Broken links corrected or deleted. From now on, only the installation with EasyPHP for Windows and MAMP for Mac OS X will be explained in detail and is recommended. Other local web server packages, like XAMPP, etc., are of course still possible, but it's beyond the scope of this document to explain all the details for every webserver package (it will also confuse most LWT users who are not familiar with web server packages and their setup).
- "Mobile\_Detect.php" updated to v2.8.3.
- Documentation updated.
1.5.20 (September 22 2014)
Changed
- "Mobile\_Detect.php" updated to v2.8.3.
Fixed
- Missing volume controls in audio player (only on mobile devices) fixed.
1.5.19 (September 15 2014)
- Missing tag cache updating fixed (in "Add tag in all/marked texts or terms").
- Tag caches now also work properly if several instances of LWT are installed in parallel directories on the same server.
- Information about which web browser to use for LWT in this document updated.
1.5.18 (September 14 2014)
Added
- Possibility to display similar terms while creating or editing a term. This will give you more language insight, and may ease inputting new terms that are similar. The number of displayed similar terms can be set from 0 (old behavior, default) to 9 on the "Settings" page. Clicking on the green icon in front of a similar term will copy the translation and romanization into the form fields for further editing. Important: If you want to use this new feature, you must change the setting "Similar terms to be displayed while adding/editing a term" to a value greater than 0. It will make more sense to do this if you have already many saved terms (e.g. more than 1,000). If you start with a language and have only a few terms, no or not very similar terms will be normally displayed and this feature will not make much sense.
- New sort option for texts, terms or tags: "Oldest first".
- The Catalan language has been added to the Language Settings Wizard.
Changed
- "https://" dictionary URIs are now allowed in the language settings. Checking of dictionary URIs in the language settings has been improved. The Glosbe dictionary page has been improved with a simple form to change the term and do a requery if you are unhappy with the query results.
- The jQuery and jPlayer libraries have been updated to v1.11.1 and v2.7.0, respectively. The jQuery.ScrollTo package has been updated to v1.4.13. The Floating Menu package has been updated to v1.12.
- Some error messages (term/tag already exists) have been improved.
- Documentation updated.
Fixed
- Some minor bugs fixed: media selection in archived texts, tag import errors, adding existing tag errors, etc.
Removed
- The audio player skin selection has been removed; the "Blue Monday Small" skin is the standard skin beginning with this release.
1.6.0-fork (September 12 2014)
Added
- Longer (>9) expressions can now be saved
- TextToSpeech support for words added
- Experimental google api (use 'ggl.php' instead of '*http://translate.google.com' for google translate)
- New word select mode in read texts (hold down mouse button)
Changed
- Database Changes: table textitems replaced by textitems2, temporary tables added, global table tts added
- statistics.php, upload_words.php rewritten
1.5.17 (June 08 2014)
Added
- New Feature: Selecting terms according to a text tag
- New Feature: Start a document where you left off (only "Read Text Screen")
- New Feature: Improved Search/Query for Words/Texts
- New Feature: Automatically import texts from RSS feeds (for more info see: Newsfeed Import)
- New Setting: Button(s) for "words to do" "IGNORE ALL"/"I KNOW ALL"
- New Setting: Theme
- New Setting: term/word query with standard/regexp/regexp CS
- New Sort option "Oldest First"
- New option "Set Active Term(1-5) Sentences" in My Texts
Changed
- JQuery, JQuery UI, JPlayer, jQuery.ScrollTo, Tag-it, Sorttable and Floating Menu updated
- Database table optimization: first check, only optimize if (Overhead >10% of table and > 100KB) or (Overhead > 1,0MB)
- Database table optimization: data types changed.
- Documentation updated.
Fixed
- Importing multiple words with the same tag causes an error
- Can't select media in Archived Texts
- Confirmation-popup when leaving via selectbutton in Settings/Preferences even if there are no changes (chrome-browser)
- Bottom page select doesn't work in firefox (edit_texts.php, edit_words.php, edit_archivedtexts.php, edit_texttags.php, edit_tags.php)
- Setting a tag where tag already exists causes an error
- New tag isn't saved in SESSION VAR (when adding a new text with a new tag / may cause an error when editing that text)
1.5.17 (August 15 2014, this document updated Aug 17 2014 and Aug 24 2014)
Changed
- Documentation updated. Broken links corrected or deleted. From now on, only the installation with EasyPHP for Windows and MAMP for Mac OS X will be explained in detail and is recommended. Other local web server packages, like XAMPP, etc., are of course still possible, but it's beyond the scope of this document to explain all the details for every webserver package (it will also confuse most LWT users who are not familiar with web server packages and their setup).
- Documentation updated on August 17 2014: Installation screencasts added.
- Documentation updated on August 24 2014: Linux (Ubuntu, LinuxMint) installation hints and screencast added.
Fixed
- Minor bug in Utilities fixed.
1.5.16 (February 19 2014)
Changed
Fixed
- Paging (via page select, and only at the bottom of a page) did not work correctly in all cases, has been corrected.
1.5.15 (December 17 2013)
Changed
Fixed
- Corrected wrong language code (French) within the language wizard definitions.
1.5.14 (August 05 2013, this document updated Oct 30 2013)
Changed
- Documentation updated on October 30 2013.
Fixed
- Wrong text display in Print Screen corrected. Special handling of word breaks (if "Remove spaces" = Yes) removed.
1.5.13 (July 22 2013)
Changed
- License texts updated according to text on unlicense.org.
- Documentation updated.
Fixed
- Removed an erroneous extra space in "wp\_logincheck.inc.php". Thanks to a post in the help forum for pointing this out!
- Minor bug fixes.
1.5.12 (July 16 2013)
Added
- New Sort option for Terms/Expressions: "Word Count in Active Texts" (Descending). Only when you choose this sort option, the word count will be calculated, displayed, and used for sorting the table. This may slow down the term table display. If you prefer faster term table display, choose the other sort options.
Changed
- Much better Tablet/iPad® user experience in screens with several frames. There is a new setting "Frame Set Display Mode" where you can select how frame sets are displayed on different devices (default: "Auto"). If you prefer the old mode also on mobile devices, set this to "Force Non-Mobile".
- Tagging and JQuery UI updated.
- Better error message when Glosbe API call fails.
- Unsaved changes alerts extended to tag changes.
Fixed
- Tags cache updating corrected: when LWT table set has been changed or after restore/emptying tables.
1.5.11 (July 12 2013)
Added
- If an improved annotated text exists, highlight the selected term translation in red in the text window popup and the text display frame (when using the keyboard).
- New language settings wizard.
Changed
- Better check on duplicate language names.
- Text window popup title is now a link (text color: yellow) to make editing an existent term a little easier.
- Documentation updated.
Fixed
1.5.10 (July 07 2013)
Added
- New alerts in some forms when there are unsaved changes during unload event.
Changed
- Improved database error checking and reporting, better error messages when fatal errors occur, both with traceback information.
- Some improvements in Glosbe-LWT integration.
- Documentation updated.
Fixed
- Default values corrected in new language form.
- SQL query optimizations in 1.5.8/1.5.9 caused problems, old versions restored.
1.5.9 (July 03 2013)
Added
- Long Text Import: Importing a long text via file upload or from a text box, with splitting options.
- Possibility to save the source URI with an active or archived text.
Changed
- Documentation and some screenshots updated.
Fixed
- Missing code in tag management stylesheet restored.
1.5.8 (June 27 2013)
Changed
- Optimization of SQL queries for text and print display (reducing query time by up to thirty percent).
- Checking database status and database upgrade program code rewritten.
- Some minor improvements and bugfixes. Documentation updated.
1.5.7 (June 25 2013)
Added
- A new 3rd "Flexible" term export is introduced, controlled by an "Export Template" in the language settings. Read more ...
Changed
- Texts are now automatically reparsed, however only after changing language settings that influence the sentence and textitems cache.
- Documentation updated.
Fixed
- Some minor corrections in some SQL CREATE/INSERT statements. MySQL session string is now set to an empty string to avoid too strict SQL checking. Thanks to a poster in the help forum for pointing this out!
1.5.6 (June 22 2013)
Fixed
- Two SQL statements (Anki/TSV export of marked terms) corrected. Thanks to a poster in the help forum for pointing this out!
1.5.5 (June 21 2013)
Added
- Integration of the Glosbe API into LWT via a "special" dictionary link. Read more here.
- LWT-WordPress integration, read more here (only for users who want to use WordPress authentication together with the LWT multiple user/table set feature introduced in version 1.5.3).
Changed
- Some minor improvements: Window width of dictionary popups changed from 600 to 800 Pixel. No "\_lwtgeneral" operations if table prefix is fixed.
- Documentation updated.
1.5.4 (June 19 2013)
Added
- If more than one table set exists, and $tbpref was NOT set to a fixed value in "connect.inc.php", you can now select a table set via "start.php", or by clicking on the LWT icon or title in the LWT menu screen "index.php".
- By hovering over the LWT icon in the top left corner of every screen, you can now display the current table set in a yellow tooltip.
- A new test/review type "Table" has been added in the testing area. Words, translations, romanizations, sentences and status are presented in a table. You may hide and/or sort columns. After testing yourself, you can reveal the hidden information by clicking into the table cell, and change your status.
Changed
- Player appearance improved. Some settings, that were not saved until now, are now automatically saved. Documentation and some screenshots updated.
1.5.3 (June 14 2013)
Added
- New Feature: It is now possible to create and to use not only ONE set of LWT tables within one database. You are now able to create and use unlimited LWT table sets within one database (as space and MySQL limitations permit). This feature is especially useful for users who want to set up a multi user environment with a set of tables for each user. You can also create one table set for every language you study - this allows you to create different term/text tags for each language. If you don't need this feature, you just use LWT like in earlier versions with the "default table set". Read more here and here.
Changed
- Complete code review. Some minor improvements and bugfixes. Documentation & Anki 1+2 template decks updated.
1.5.2 (June 09 2013)
Added
- Easy navigation to the previous and the next text (according to current text filters and sort order) is now possible.
Changed
- "Backup" does not store anymore the tables 'sentences' and 'textitems'. These tables are now automatically recreated (by reparsing the texts) within "Restore". This makes backup faster and the backup file much smaller, while "Restore" will take a bit longer.
- Documentation and all screenshots updated.
- Installation procedures (EasyPHP) updated.
1.5.1 (June 07 2013)
Added
- Display screen of improved annotated texts (= hyperliteral translations as interlinear text) improved: Clicking the "T" or "A" lightbulb icons hides/shows the complete text or all annotations. You may also click on a single term or a single annotation to show or to hide it. This enables you to test yourself or to concentrate on one text only. Romanizations, if available, appear now while hovering over a term.
Changed
- Documentation and screenshots updated.
1.5.0 (April 22 2013)
Added
- New Feature: Create and edit an improved annotated text version (as interlinear text) for online or offline learning. Read more here.
- In-Place-editing of translations and romanizations now possible within the terms table.
- You may now empty (= delete the contents of) the LWT database in the "Backup/Restore/Empty Database" screen.
Changed
- Some minor improvements. Documentation, screenshots and demo database updated.
1.4.10 (February 22 2013)
Added
- New option in "Print" screen: annotation can now also be placed above the term (via Ruby characters). This is especially helpful for Chinese and Japanese, when annotating the text with the romanization (Pinyin, Hiragana, Katakana). Your browser must support ruby markup. Firefox needs the HTML Ruby Add-On to display ruby markup properly.
Changed
1.4.9 (August 29 2012)
Fixed
- Anki and TSV export bug fixed (in some cases the term tags were not exported).
1.4.8 (May 11 2012, some external links updated June 19 2012)
Added
- Timing of transactions now possible as an additional debugging option in settings.inc.php ($dspltime = 1; normally switched off = 0).
Changed
- "Important Links" section within this document updated and expanded.
Fixed
- Correction of a small (typo) bug in js/jq_pgm.js that caused an SQL error when pressing the "E" key (Thank you, anthonylauder!). See also this thread.
- Correction in do_text_header.php: fix negative audio positions to zero. See also this thread.
1.4.7 (April 6 2012)
Fixed
- Correction of some minor mistakes and glitches in the code.
1.4.6 (March 14 2012)
Fixed
- Documentation and example database corrected. Google Translate links now open in a popup window, not in a frame of the frameset, as Google now disallows this. Please make sure to deactivate popup window blockers.
1.4.5 (October 01 2011, documentation updated Oct 13 2011, external links updated Dec 8 2011)
Added
- Double-Click on a term and "A" key (while going through non-blue terms via keyboard) sets audio position approximately to text position. Hovering over sentence marker (green or red dot) in the terms table shows tooltip with sentence. Some updates and corrections in the documentation.
1.4.4 (September 23 2011)
Changed
- Changed the handling of backslash removal in posted data on servers with magic_quotes_gpc = Off. Documentation updated.
1.4.3 (September 21 2011)
Changed
- Changed some unintentionally written short PHP open tags "<?" to "<?php". Thanks to a poster in the help forum for pointing this out.
1.4.2 (September 19 2011)
Removed
- Removed PGUP/PGDN key bindings (mark first/last non-blue term, use HOME/END keys). Some minor changes in the documentation.
1.4.1 (September 15 2011)
Changed
- Anki Export changed. The full sentence doesn't have brackets anymore.
- Data in Anki template updated.
1.4.0 (September 09 2011)
Added
- Mobile Version (experimental, via mobile.php): Selection of Language, Text, and Sentence, Playing the audio (if exists), Reading the text either sentence-by-sentence or term-by-term (saved words shown with translation, romanization, and status (via color). This mobile interface does not yet allow data manipulations.
- Texts, archived texts and terms can now also be filtered by "untagged".
- Added a "Repeat Audio / Single Play" toggle button for media player.
1.3.1 (September 05 2011)
Added
- New multi actions for marked/all terms: Set Terms to Lowercase, Capitalize Terms, Delete Sentences of Terms.
Changed
1.3.0 (September 03 2011)
Added
- Tagging of texts and archived texts introduced. With this feature, it will be easier to categorize and organize your texts. After having tagged your texts, you are able to filter texts according to one or two tags.
- Rudimentary right-to-left (rtl) script support: new db field in languages to set a language to right-to-left script, all relevant parts with respect to rtl support changed. A simple Hebrew example added to demonstrate rtl support.
Changed
- Documentation, screenshots, Anki example file updated.
1.2.2 (August 26 2011)
Added
- Added column "Percentage Unknown Words" in Texts table.
- During reading a text, you can now create terms that do not occur in the text. Click on the yellow icon in the top left frame, and type in the term, translation, etc. You may now also edit the text directly.
- iPod touch®/iPhone®/iPad® icons and splash screen added, and HTML header for touch devices modified. (Thanks, Derek!)
Changed
- Documentation and screenshots updated.
Fixed
- Removed a bug that prevented Strg-C/Cmd-C (and other key strokes) in text/test frames.
- Removed a bug in statistics calculation.
- Removed a bug in text selection dropdown control.
- Removed language column in Texts/Terms tables if language filter is set.
1.2.1 (August 25 2011)
Added
- New Rewind and Fast Forward button for audio player. User can set the time to rewind or fast forward from 1 to 10 seconds.
- Added a section in the help document about the setup of LWT for iPads®, etc.
Changed
- Documentation and screenshots updated.
1.2.0 (August 24 2011)
- Tagging of terms introduced. Tags are little pieces of information (20 characters max., no spaces, no commas, case sensitive!) attached to terms to help you catagorize and organize your terms. You can import (CSV, TSV) and export (Anki, TSV) terms together with tag information. Two new tables save tag information, and they are created automatically during first usage after update.
- Display of example sentences is now delayed.
- Backup creates the database SQL file now as a gzipped file. Restore can process old unzipped or new gzipped files. Gzipped files are much smaller in size (10-20 % of original size).
- Documentation and screenshots updated.
1.1.1 (August 17 2011)
Added
- New option in "Print" screen to select whether annotation should be placed in front (new option) or after (default) the term.
- New option in settings screen "Visit only saved terms with status(es) ..." to specify which terms are visited when using RIGHT/SPACE/LEFT/etc. keys in the text frame (default: ALL non-blue terms = statuses 1..5, Ign, WKn).
Changed
- The Status filter lists have been expanded.
- Documentation and screenshots updated.
Fixed
- Fixed problems with non-ASCII characters in media file names (hopefully).
1.1.0 (August 16 2011)
Added
- New status display during tests: "Elapsed Time / Total = Not yet tested + Wrong + Correct", plus a small bar graph.
- Tests can now be done also via key strokes (but you must first click in the test frame): SPACE: show solution, UP/DOWN: Status +1/-1, ESC: don't change status, NUMBER KEYS 1-5: set status to 1-5, I: set "Ignored", W: set "Well known", E: edit term.
- In the "Read Text" frame, the next unknown (blue) word in the text can now be shown for term creation just by pressing the RETURN key. The term will be marked by a red border. You type in the translation, etc., and press RETURN to save the word. Now you can press RETURN again to show the next unknown (blue) word, enter a translation, save it, and so on... There is sometimes the problem that some external dictionaries catch the focus although the cursor should be in the translation field in the edit frame. Especially Chrome behaves badly, and I cannot change this. Please try different dictionaries and/or browsers.
- You can also review/manage saved (non-blue) terms with key strokes in the "Read Text" frame (RIGHT or SPACE: next term, LEFT: previous term, PAGE-UP or HOME: first term, PAGE-DOWN or END: last term, NUMBER KEYS 1-5: set current term status to 1-5, I: set current term status to "Ignored", W: set current term status to "Well known", E: edit current term, ESC: reset). The current term has a black border and the frame scrolls automatically. The term is displayed in the top right frame.
- New refresh button refreshes media files combo box (without page reload) on the text input/edit screen.
- Information added how to install LWT at a (free) webhoster.
Changed
- DB design altered: Table "words" changed: 3 new columns to make random word selection (in tests) and score calculation/query faster.
- Translation, romanization and sentence are now optional. An empty translation or an asterisk in the translation field are equivalent. Terms without translation or in status "Well Known" or "Ignore" will never be tested. Import of terms without translation is now possible.
- Textarea input boxes have now all a maximum text/bytes length check.
- Testing algorithm revised, simplified and optimized.
- Terms due today and tomorrow are marked in score column (red/yellow) in terms table.
- Documentation and screenshots updated, new floating menu.
Fixed
- EasyPHP installation corrected.
1.0.4 (August 11 2011)
Added
- Checking maximum text length in text input/edit/check screens.
Changed
- Code cleanup and optimization, better code documentation.
- Media directory is not anymore included, user has to create it if needed. The demo media are now all online.
- Demo database installation is now done within LWT (optional). If the database is empty, a hint on the main screen is displayed either to install the demo db or to start with the definition of a language. Backup/Restore now with more hints and an option to install the demo database.
- Documentation and screenshots updated.
1.0.3 (August 09 2011)
Added
- New button to open a new text immediately after saving.
- Dictionaries can now be opened not only within the frame set (default) but also in a popup window (please deactivate popup window blocking in your browser!). To open a dictionary in a separate popup window, put an asterisk * in front of the Uniform Resource Identifier (Example: *<http://mywebdict.com?q=###).> Please use this method if a web dictionary does not open properly within the frame set.
- The application now always checks if the current text or language still exist (could have sometimes resulted in empty query results after deleting).
- New settings "Texts per Page", "Show Word Counts of Texts immediately", "Archived Texts per Page" and "Terms per Page". You can now define how many texts or terms are on one page. As the calculation of text word counts can slow down the loading of a long text table, you can switch off this calculation (and do the calculation later).
"New/Edit Term" now allow dictionary lookup (always in popup window). If you want to enter a term manually, you must first select the language on the "My Terms" page.
Changed
- Documentation and screenshots updated.
1.0.2 (August 05 2011)
Added
- Language definition: If the searchword in the Uniform Resource Identifiers (URIs) needs to be converted into a different encoding (standard is UTF-8), you can now use *###encoding###* as a placeholder. Example: *http://mywebdict.com?q=###ISO-8859-15###*. A list of encodings can be found here (omit the asterisk if one is at the end).
Changed
- Documentation and screenshots updated. Thai example added in demo database.
1.0.1 (August 04 2011)
Added
- Empty database will be created automatically if database does not exist. Tables will be automatically recreated if some or all tables are missing. System handles (future) database changes automatically.
Changed
- Testing: Last term tested will not show up immediately. Automatically selected sentences in tests now must not contain unsaved (blue) words. This does not apply if a sentence saved with a term contains unknown words - such sentences may come up within a test.
- Documentation and screenshots updated.
1.0.0 (August 01 2011)
- First stable release. For some time, there won't be any new releases. I hope you'll understand that. Please post all problems, questions, and (hopefully not too many) bugs here, and ideas and suggestions for new features here. Thanks!
0.9.8 (July 31 2011)
Added
- New Text Display Mode (see new checkbox on the "Read text" screen).
- [Show All] = ON (the only mode in previous releases): ALL terms are shown, and all multi-word terms are shown as superscripts before the first word. The superscript indicates the number of words in the multi-word term.
- [Show All] = OFF (new): Multi-word terms now hide single words and shorter or overlapping multi-word terms. This makes it easier to concentrate on multi-word terms while displaying them without superscripts, but creation and deletion of multi-word terms can be a bit slow in long texts.
Changed
- Documentation and screenshots updated.
0.9.7 (July 28 2011)
Changed
- Internal improvements, status names, abbreviations, and tooltips (Thanks, Arthaey!). Printout of texts with optional inline annotation (translation and/or romanization) of terms that are of specified status(es). Documentation and screenshots corrected.
0.9.6 (July 26 2011)
Changed
- More visual improvements (layout, tables, etc.), many improvements and bugfixes. Dictionary Uniform Resource Identifiers (URIs) use now ### as a placeholder for the searchword. If ### is missing, the searchword will be appended (like in older versions). More multi-actions for terms. Translation and sentence fields do NOT accept newlines anymore, now the form is submitted. Status entry changed from dropdown to radio buttons. Backup/Restore improved. CSS and XHTML corrected and validated. Korean example added. An Anki example deck is now provided: "LWT.anki" in directory "anki". Documentation and screenshots improved.
0.9.5 (July 23 2011)
Changed
- Visual improvements (icons), a few bug fixes. Database Restore changed for bigger files. Two new tests to test L2 -> L1 or L1 -> L2 without sentence (just the term). The term filter operates not only on the term field but also on the romanization and translation field.
0.9.4 (July 22 2011)
Added
- New buttons to switch easier between active texts and archived texts.
- New settings "Testing: Number of sentences displayed from text, if available" and "Terms: Number of sentences generated from text, if available". Default is "Just ONE". The options "TWO (+ previous)" and "THREE (+ previous, + next)" now allow you to do MCD (Massive-Context Cloze Deletion) testing, as proposed by Khatzumoto @ AJATT.
Changed
- "Import of terms" now only needs a translation if the status is set to 1, 2, 3, 4 or 5. Furthermore it not only imports terms as TAB (ASCII 9) separated values (TSV) or "#" separated values, but also as comma separated values (CSV, strings in quotes ("...", if needed), a quote within a string as double quotes (""); this is the format that LingQ uses for exporting terms).
- Some minor bug fixes. Documentation updated.
0.9.3 (July 21 2011)
Fixed
- After a lot of multi-platform/multi-server testing: several bug fixes and improvements. One severe bug that crashed importing and checking of texts on XAMPP/Win removed (Thanks, Kendall!). Within text, archive, and term queries, selected sort order will be retained (saved in database). All other query settings are now retained per session. Documentation updated.
0.9.2 (July 19 2011)
Fixed
- New "Settings" screen. Documentation updated and improved.
0.9.1 (July 18 2011)
Changed
- Testing totally revamped (and extended). Many, many improvements and bugfixes. Documentation and screenshots updated. EasyPHP for Windows installation explained.
Fixed
- Many, many improvements and bugfixes.
0.9.0 (July 14 2011)
Added
- TSV export of terms added.
- New buttons to jump from test to text and vice versa.
- Questions and answers added
Changed
- Frame screen "Edit term" is now more compact to save space.
- Anki export improved.
- The multi actions drop-down-list is now disabled when no checkboxes are checked.
- Testing completely revised and improved.
- It is now possible to create expressions with up to 9 words (previous releases: up to 6 words).
- Important: Re-parsing is necessary to use this feature in existing texts.
- New texts have this feature will automatically.
- Documentation and screenshots updated.
0.8.2 (July 13 2011)
Changed
- Minor improvements.
- Term score formula revised.
- Clicking on a blue (unknown) word opens "New Term" and first dictionary automatically.
- Documentation (topic: Term scores) added.
Fixed
0.8.1 (July 12 2011)
Changed
- Mac installation and upgrade (see documentation) completely changed.
0.8.0 (July 11 2011)
Added
- Possibility to change term (but only uppercase/lowercase changes allowed).
- Import terms with overwrite now possible.
- Number of saved words and "To Do" words are now displayed in "My Texts".
- Backup and Restore of the LWT database.
Changed
- "Learn/Edit Word/Expression" opens first dictionary automatically.
- Documentation updated and improved.
0.7.0 (July 09 2011)
Changed
- Minor improvements, more documentation.
- Japanese example added.
0.6.0 (July 08 2011)
Changed
- Improvements, more documentation.
- Settings now stored in DB (not in cookies anymore).
Fixed
0.5.0 (June 30 2011)
Added
Changed
Fixed
0.4.0 (June 29 2011)
Added
- Basic documentation completed
- Two new tests.
Changed
Fixed
0.3.0 (June 27 2011)
Added
Changed
Fixed
0.2.0 (June 25 2011)
Added
Changed
Fixed
0.1.0 (June 24 2011)


<sort-as>
<sort-as>
element provides text that is combined with the base sort phrase to construct
the effective sort phrase. The text can be specified in the content of the
<sort-as>
element or in the @valueattribute
on the <sort-as>
element. The
<sort-as>
element is useful for elements where the base sort phrase is inadequate or
non-existent, for example, a glossary entry for a Japanese Kanji phrase.
Category: Utilities elements


The following two boxes should be perfectly identical, including the blank lines and the margin between the edges of the image and the border:
| Test | Control |
|---|---|
|
,
_/((
_.---. .' `\
.' ` ^ T=
/ \ .--'
| / )'-.
; , <__..-( '-.)
\ \-.__) ``--._)
jgs '.'-.__.-.
'-...-'
|
The cats should also be aligned vertically (i.e. be at the same height); if they are not, then the test has not passed.


{% load staticfiles %}
About
E6230 says...
this tutorial has been put together by E6230
{{ boldmessage }}
Rango


Alluxio SDK Cache#
Overview#
Presto supports caching input data with a built-in Alluxio SDK cache to reduce query latency using the Hive Connector. This built-in cache utilizes local storage (such as SSD) on each worker with configurable capacity and locations. To understand its internals and the benchmark results of latency improvement, please read this article. Note that this is a read-cache, which is completely transparent to users and fully managed by individual Presto workers. To provide Presto with an independent, distributed cache service for read/write workloads with customized data caching policies, please refer to Alluxio Cache Service.
Setup#
Enabling the Alluxio SDK cache is quite simple.
Include the following configuration in etc/catalog/hive.properties
and restart the Presto coordinator and workers:
hive.node-selection-strategy=SOFT_AFFINITY
cache.enabled=true
cache.type=ALLUXIO
cache.alluxio.max-cache-size=500GB
cache.base-directory=/tmp/alluxio-cache
In the above example configuration,
hive.node-selection-strategy=SOFT_AFFINITY
instructs Presto scheduler to take data affinity into consideration when secheduling tasks to workers that enables meaningful data caching effectiveness. This configuration property is defaul toNO_PREFERENCE
and SDK cache is only enabled when set toSOFT_AFFINITY
. Other configuration on coordinator that can impact data affinity includesnode-scheduler.max-pending-splits-per-task
(the max pending splits per task) andnode-scheduler.max-splits-per-node
(the max splits per node).cache.enabled=true
turns on the SDK cache andcache.type=ALLUXIO
sets it to Alluxio.cache.alluxio.max-cache-size=500GB
sets storage space to be 500GB.cache.base-directory=/tmp/alluxio-cache
specifies a local directory/tmp/alluxio-cache
. Note that this Presto server must have both read and write permission to access this local directory.
Monitoring#
This Alluxio SDK cache is completely transparent to users.
To verify if the cache is working, you can check the directory set by cache.base-directory
and see if temporary files are created there.
Additionally, Alluxio exports various JMX metrics while performing caching-related operations.
System administrators can monitor cache usage across the cluster by checking the following metrics:
Client.CacheBytesEvicted
: Total number of bytes evicted from the client cache.Client.CacheBytesReadCache
: Total number of bytes read from the client cache (e.g., cache hit).Client.CacheBytesRequestedExternal
: Total number of bytes the user requested to read which resulted in a cache miss. This number may be smaller than Client.CacheBytesReadExternal due to chunk reads.Client.CacheHitRate
: The hit rate measured by (# bytes read from cache) / (# bytes requested).Client.CacheSpaceAvailable
: Amount of bytes available in the client cache.Client.CacheSpaceUsed
: Amount of bytes used by the client cache.
Please refer to Alluxio client metrics for a full list of available metrics.


\cline{i-j}
The \cline command draws horizontal lines across the columns specified, beginning in column i and ending in column j, which are identified in the mandatory argument.
It is used in the tabular and array environment.
Two (or more) successive \cline commands draw lines in the same vertical position. Typically, \cline commands are placed after a \\ (line breadk) command so that they separate items on two lines; they do not, however, need a line break command afterwards.
See also tabular and
array environments
Return to the LaTeX Table of Contents


---
layout: post
title: ! 'Book status: released!'
permalink: /book-status-released
date: 2012-03-23 11:45:12.000000000 -06:00
comments: true
categories:
- announcements
- booknews
published: true
---
I am ecstatic to announce that the book is now officially released! You can get it here: http://shop.oreilly.com/product/0636920022022.do. If you purchased the Early Release version, you should automatically be able to download the final version from your "Your products" page at oreilly.com.
It's been an incredible ride, and it's an incredible feeling to see it come to this big milestone (I won't say "the end", because I know this book will keep evolving).
There have been so many people who helped me through this process, including my editor (Andy Oram), all the staff at O'Reilly, who have been so professional and helpful, my very competent tech reviewers (Mark Burgess and Jesse Becker), all my colleagues at CFEngine AS, all the readers of intermediate and partial versions of the book, all the people who purchased the Early Release, and of course, my lovely wife and my two beautiful daughters, who were so patient while I worked on "the book". Everyone gave me encouragement, incredible feedback, and tons of guidance and support. Thank you everyone!


The package can identify the dysregulated canonical pathways by investigating the changes of biological relationships of pathways in the context of gene expression data. (1) The ESEA package constructs a background set of edges by extracting pathway structure (e.g. interaction, regulation, modification, and binding etc.) from the seven public databases (KEGG; Reactome; Biocarta; NCI; SPIKE; HumanCyc; Panther) and the edge sets of pathways for each of the above databases. (2) The ESEA package can can quantify the change of correlation between genes for each edge based on gene expression data with cases and controls. (3) The ESEA package uses the weighted Kolmogorov-Smirnov statistic to calculate an edge enrichment score (EES), which reflects the degree to which a given pathway is associated the specific phenotype. (4) The ESEA package can provide the visualization of the results.
| Version: | 1.0 |
| Depends: | R (≥ 2.10), igraph, XML, parmigene |
| Suggests: | Matrix, graph |
| Published: | 2015-01-22 |
| Author: | Junwei Han, Xinrui Shi, Chunquan Li |
| Maintainer: | Xinrui Shi <xinrui103 at 163.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| NeedsCompilation: | no |
| CRAN checks: | ESEA results |
| Reference manual: | ESEA.pdf |
| Vignettes: |
ESEA Overview |
| Package source: | ESEA_1.0.tar.gz |
| Windows binaries: | r-devel: ESEA_1.0.zip, r-release: ESEA_1.0.zip, r-oldrel: ESEA_1.0.zip |
| OS X binaries: | r-release: ESEA_1.0.tgz, r-oldrel: ESEA_1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=ESEA to link to this page.


DOM Elements also have different attributes. You can change them in several ways:
Here we show how to change some DOM element attributes inside the elements tags.
The structure of the elements is the same, only the style is changed
This is our main Div element. Try resizing browser window to see the width change.
This is child Div #1.
This is child Div #2. It contains one heading and three paragraphs inside it.
This is the heading.
This is child paragraph #1 inside Div #1.
This is child paragraph #2 inside Div #1.
This is child paragraph #3 inside Div #1.
This is child Div #3. It contains two Span elements inside it.
This is the first span.
This is the second span. By default Spans stay in the same line while div elements start in another line.


East of Kailash, Delhi
12+ Year(s) Of Experience
Courts: Residential Apartment in Sarojini Nagar
Consultation: INR 900 INR 1900
Hours: Available Now, Wednesday 5:00PM-5:30PM
East of Kailash, Delhi
12+ Year(s) Of Experience
Courts: Residential Apartment in Sarojini Nagar
Consultation: INR 900 INR 1900
Hours: Available Now, Wednesday 5:00PM-5:30PM
East of Kailash, Delhi
12+ Year(s) Of Experience
Courts: Residential Apartment in Sarojini Nagar
Consultation: INR 900 INR 1900
Hours: Available Now, Wednesday 5:00PM-5:30PM
East of Kailash, Delhi
12+ Year(s) Of Experience
Courts: Residential Apartment in Sarojini Nagar
Consultation: INR 900 INR 1900
Hours: Available Now, Wednesday 5:00PM-5:30PM
East of Kailash, Delhi
12+ Year(s) Of Experience
Courts: Residential Apartment in Sarojini Nagar
Consultation: INR 900 INR 1900
Hours: Available Now, Wednesday 5:00PM-5:30PM


According to him, he’s a smart man and cannot be swindled by Nana Appiah Mensah.
He mentioned that there’s no investment that will give you the kind of returns promised by MenzGold but people were blinded by the lies they told them.
He indicated that he advised most of hi friends against investing in the sham of an organization but they refused to listen but rather saw him as an envy to their success.
Source:MyNewsGh.com/Ayeh Offei-Akoto/2019