Wednesday 31 March 2010

Boo Ks

The Complete idiot's Guide to Learning Latin

This is actually quite good.

De Bello Gallico I

Ex Libris Whitefoot

Edited by Colin Ewan, Bristol Classical Press, 1957. This is a very good book. The vocabulary section has almost all the words used in the text.

De Bello Gallico at Intra Text

The Intra Text library has a marvellous collection of texts on line at http://www.intratext.com/. De Bello Gallico is at http://www.intratext.com/IXT/LAT0044/$1.htm

These texts all have complete concordances so that you can see every usage of every word. Unfortunately the concordance treats each form of a Latin word as a distinct word.

Lynn Nelson

Lynn Nelson's word list is available on all sorts of web pages.

Kevin Cawley

Notre Dame University

Web Site: http://www.nd.edu/_archives/latgramm.htm

EUP Latin English Dictionary

Ex Libris Whitefoot

Teach Yourself, EUP Latin-English Dictionary and Concise Latin Grammar.

Posted via web from kwhitefoot's posterous

Latin Dictionary G

/ LatinDictionary

G
H

A B C D E F G H I J L M N O P Q R S T U V W X


G

galea : helmet.

Gandavum : Ghent.

gaudet : he/she/it is happy

gaudium : joy, delight, happiness.

Gemblacensis : Gembloux.

gemo : to sigh, groan, wail.

gens : clan, race, nation, people, tribe.

genus : kind, sort, class, category.

gero : to carry, bear, wear/bear, give birth to/to carry about.

gerunt : carry on ??? (e.g. a war)

gesto : to carry, bear about.

gestum (gero) : carrying about, conduct (oneself).

gestum (gero) : carriage, bearing/having borne.

gigno (genuit) : to bring forth, bear, beget, father.

glacialis : icy, frozen, full of ice.

gladiator, gladiatoris (3dm)
gladiator (CIGL)

gladius : sword.

gloria : fame, renown, glory. (CIGL)

glorior : to glory, boast, pride oneself.

Graecus, Graeci (2dm)
a Greek (CIGL)

grando, onis : hailstorm.

grassor : go about, go ahead, proceed, attack.

gratia agere : (+ dat.) to thank.

gratia : gratitude, favor.

gratia : in order to, for the sake of, to.

gratia : (in the abl.) on account of.

gratulor : to wish a person joy, congratulate (+dat.),give thanks

gratus : pleasing, agreeable/grateful.

gravatus : sick, oppressed, ill.

gravis : heavy, weighty, serious, important/severe, grievous.

gravitas : weight, seriousness, dignity, importance.

graviter : heavily, seriously.

gravo : to oppress, burden, make suffer.

gregatim : in troops, or crowds.

gregatim : adv., In flocks, herds, troops, crowds.

gusto : to taste.


A B C D E F G H I J L M N O P Q R S T U V W X


H

habeo habui habitum : (2v) to have, hold, possess/consider, regard.

habitus : disposed, in a certain condition.

hac : this side, this way, here.

hac : (fem. sing. abl.) He who lives BY THIS (the sword), ...

hactenus : hitherto, up to this point, so far.

hae he : (fem. pl. nom) THESE (speeches) were very fine.

haec hec : (fem. sing. nom.) THIS (sword) is more expensive.

haec hec : (neut. pl. nom.) THESE (kisses) are sweeter than wine.

haec hec : (neut. pl. acc.) Deborah always won THESE (wars).

hanc : (fem. sing. acc.) She wasted THIS (her youth).

harum : (fem. pl. gen.) The city wall had four OF THESE (gates).

has : (fem. pl. acc.) They gave THESE (their lives) for the Faith.

Hasnonium : Hasnon.

hecyra, hecyrae (1df)
mother-in-law (CIGL)

haud : no, not at all, by no means.

Helcim : Helchin on the left bank of the Scheldt.

Helnonensis : Elnon. (Herimann, p. 279)

helvella, helvellae (1df)
potherb (CIGL)

Heniis Harniis : Hames.

herba, herbae (1df)
grass (CIGL)

hereditas : inheritance, often simply "property."

hesito (haesito) : to be unsure, uncertain, wavering.

hi : (masc. pl. nom.) THESE (men) are loyal to the king.

hic : (adv.) here.

hic haec (hec ) hoc : this, the latter/he, she, it.

hic : (masc. nom. sing.) THIS (house) is filthy.

hilaris : cheerful, merry, gay.

hinc : from this place, hence.

hippopotamus
hippopotamus (CIGL)

his : (masc. pl. abl.) They passed BY THESE (roads).

his : (masc. pl. dat.) Tell it TO THESE (policemen).

his : (fem. pl. dat.) She gave her property TO THESE (churches).

his : (fem. pl. abl) A life is enriched BY THESE (friendships).

his : (neut. pl. dat.) Listen TO THESE (orders).

his : (neut. pl. abl.) She earned it BY THESE (her deeds).

hoc : (masc. sing. abl.) He gave plenty FOR THIS (field).

hoc : (neut. sing. nom.) THIS (monastery) is well-built.

hoc : (neut. sing. abl.) Do not hesitate BECAUSE OF THIS! (doubt)

hoc : (neut. sing. acc.) Break THIS! (fetter)

hodie : today, nowadays

hodiernus : of today.

Hoienses : Huy, Belgium, between Liege and Namur.

homo, hominis (3dm)
human being, man. (CIGL)
honor, honoris (3df)
honor, esteem, public office. (CIGL)

honorabilis : respectful.

hora : hour, time.

hordeum, ordeum : barley.

horrendus : horrible, dreadful.

hortor : exhort, incite, encourage.

hortus ortus : garden/pl. grounds, park.

horum : (masc. pl. gen.) The horses OF THESE (soldiers) are spent.

horum : (neut. pl. gen) The cattle OF THESE (monsters) were fat.

hos : (masc. pl. acc.) They burned THESE (houses) to the ground.

hospes : guest, host, stranger.

hospita, hospitae (1df)
guest (CIGL)

hostes hostium : the enemy.

hostis : an enemy of the state.

huic : (neut sing. dat.) I'd give my right arm FOR THIS (cooky).

huic : (masc. sing. dat.) He sent FOR THIS (doctor).

huic : (fem sing. dat.) There is a statue IN THIS (abbey).

huius : (masc. fem. neut. gen. sing.) Go ahead, eat some OF THIS.

huius : (neut. sing. gen.) She paid half OF THIS (the cost).

huius : (fem. sing. gen.) They are fond OF THIS (change).

humanitas : kindness, culture, refinement.

humanitate : refined????

humanus
pertaining to man, human, humane, cultured, refined. (CIGL)

humilis : lowly, humble.

humo : cover with earth, bury,

humus : ground, earth, soil/land, country.

hunc : (masc. sing. acc.) He ate THIS (fruit).

Hunnam : Bunna.

hypocrita : hypocrite


A B C D E F G H I J L M N O P Q R S T U V W X


Posted via web from kwhitefoot's posterous

Dot Plot

Pascal

See PascalDotPlot.

C#

New versions will be in C# because I want to learn that language and a real application is the best way to learn. Slightly disillusioned now, so on to PascalDotPlot (was JavaDotPlot).

Parsing

The original tokeniser splits on whitespace; this means that strings such as:

 using System.Windows.Forms; 

appear as two tokens instead of the expected four (or five if you count the semicolon, seven if you count the to dots). This can obscure some similarities but is so much faster and so much simpler to implement than a general parsing algorithm that it is probably the best compromise. The real problem comes in analysing files created in general purpose text editors. Such files do not always include spaces between tokens such as operators. For instance the MS VB IDE editor adds spaces around infix operators, suppresses them before opening brackets, adds them before end of line comments and so on; this has the effect of ensuring that operators are seen as tokens, however, such spacing is not required by the compiler.

For instance the following line is perfectly legal VB:

 A=B+C 

but if you enter it using the VB IDE it will become

 A = B + C     

The first will be seen as one token and the second as five tokens. This is a serious limitation if we think in terms of detecting plagiarism because then we must assume that the programmer of at least one of the files is hostile to the process, on the other hand in professional contexts we are generally looking for sloppy programming that involves verbatim copying without any intent to conceal, only an intent to get the job done as quickly as possible. This means that copied source will tend to have the same spacing as the original even if the programmer has altered it a little to fit its new home.

The problems associated with the original tokenisation method are easily avoided with the .NET framework regular expression class because it has a Split method that allows a regular expression to be used to identify the delimiters.

Implementation Notes

  • Make the xGetToken function responsible for the maintenance of the current character position variable
  • Connect token axis values directly to token positions in the source documents.
  • Drop the current file strings and read the file directly into the text boxes. This should work properly now that I am using C# because the regular expression Split method returns the delimiters as well as the tokens.

New Features

Speed is better after the change to the way the tokens were stored. Now it is time to add more features. The first question is which ones. Possible features include:

  • Allow user to specify that files in sub-directories should be processed.
  • Allow user to specify a regular expression to match filenames.
  • Split on non-word characters using a regular expression.
  • Provide flags to ignore delimiters or treat them as tokens
  • Allow user to supply a regular expression that identifies delimiters or one that identifies tokens.
  • Supply sample regular expressions intended for specific languages
  • When clicking in the plot to select text in the files make sure that the selection in the text boxes covers all of the tokens that are represented by the selected pixel. For large texts one screen pixel represents many tokens, perhaps even hundreds of lines.
  • All files in a directory,
  • Selected files
  • Files in a VBP
  • Files mentioned in another file such as a make file, SharpDevelop combine, Visual Studio solution, etc.
  • zoom
  • synchronise selection in text box with selection in picture box so that selecting in text moves a cross hair in the plot.
  • use cursor keys in plot
  • draw boundary lines between files on the plot
  • save plots as jpg, png etc.
  • save parsed files and plots so that a session can be restored without reparsing the files or replotting. The reason for this is that large files or sets of files will be very slow.

Improvements to Algorithms

  • Instead of parsing line by line just Split the whole file on spaces. This should be faster but how do we connect a token number to the position in the file? One way is to accumulate the offset by adding the token lengths together, must take care of the delimiting spaces. Then we must use the token offset instead of the line offset because we will not know where the line boundaries are.
  • Read the whole file and split on end of line characters.

Dotplot in and for VB

Dotplots are two dimensional charts. To produce such a chart two text files are tokenised. The values along the axes are the tokens; imagine the whole text of the file written along the axis.

For example:

 The quick brown fox  The       X             dirty           brown                X dog 

Dots are placed at each intersection point where the tokens are the same. The same technique can look for repeated sequences within a file.

Example with case ignored:

 The quick brown fox and the dirty brown dog The       X                       X                 quick          X                                  brown                X                       X            fox                       X                          and                           X                          the       X                       X                dirty                                  X          brown                X                       X dog                                               X 

Notice that the diagonal line is completely filled and that there are diagonals in the upper right and lower left quadrants.

The purpose of such a plot is to make detection of duplicated code easier. Many academic citations of this method, other than those in biological sciences, tend to couple it with plagiarism detection. While it can of course be used to detect stolen code in software development and in detecting stolen passages from novels and scientific reports my feeling is that the best use for the technique is to aid in software maintenance by making it easy to detect code that has simply been copied and edited in order to get a program up and running quickly. There is nothing wrong with cut and paste development so long as the developer stays awake and refactors the code when the duplication reaches a certain level (one copy is alright, two should make you make a mental note, three means it's time to refactor)

Quick and Dirty Implementation

  • Create a simple VB project.
  • Read two files
  • Convert all to lower case
  • Tokenise each line with the Split function using space as the delimiter.
  • Discard empty tokens
  • Scale a picture box so that the width and height correspond to the number of tokens in each file.
  • Iterate over the tokens and place a dot at each point in the picture box that corresponds to identical tokens.

Dotplot versions

DotPlotVersionThree
Token streaming from file list. Multiple files.
DotPlotVersionTwo
Improved data structures that speed up plotting by not requiring string comparisons.
DotPlotVersionOne
Simple version that plots the correspondence between two files and has a slow plotter.

Links to dotplot resources on the web

Google search for dotplot
finds altogether too many hits. Mostly from the molecular biology field, interesting but only occasionally directly relevant.
Google search for: dotplot source code
Much better.
Jonathan Helfman and Ken Church
This has to be the best, most compact and most easily digested introduction to the concepts of dotplots.
Visual Detection of Duplicated Code
Rieger and Ducasse at Berne.
www.uia.ac.be/u/lore/Research/phdprojects.html#DuplicationInTraces"> Identifying Duplication in Program Traces
Interesting suggestion for using dotplots to examine not the static structure but the behaviour of a program.
Mi-Nyeong Hwang, Jeong-Hyeon Choi, Do-Hoon Lee, and Hwan-Gue Cho
An overview paper in M$ Word format (yuck) giving a little more background and some cross references to biological uses for dot plots.
Genetics Computer Group
The manual for a real commercial dot plotting programming used for DNA analysis.
Peter J. Balafas
A dissertation on plagiarism detection from Loughborough University. I've only scanned it briefly, largely because I am allergic to the whole idea of automated plagiarism detection. Just in case you care you can find my reasoning on the IrrelevantAsides page
Paul Clough - Dotplot: Visually exploring patterns in text
Another presentation of the Meter project that is the subject of Balafas' paper, this time from Sheffield University

Links to related pages

Real artificial life: Where we may be
Very interesting paper on software as a living system. Makes passing reference to dotplots in Software genetics.

Posted via web from kwhitefoot's posterous

Not Ant

NAnt

Brilliant utility to build C# and other .Net programs. In fact of course it could build other types of program if you add classes to drive the compilers. It works like make except that the syntax is more readable and is based on .Net classes instead of shell commands.

Get it from NAnt at Sourceforge now!

Posted via web from kwhitefoot's posterous

Irrelevant Asides

Moans and Whines

Why can't people put dates on web pages? It's infuriating to find an interesting web site and then when you try to track down the author to praise him/her/it or whatever you can't find her/it/him because it/he/she wrote the site five years ago and then moved to another ISP/host/university/company/planet. It's not hard to do, especially if you use intelligent tools like Emacs Wiki Mode (thanks again JohnWiegley).

Winamp

Am I the only person in the world who dislikes Winamp? In fact it's more than dislike: I think it has one of the worst user interfaces ever created and I regard myself as something of an expert in that having created some absolutely screamingly awful things myself, not to mention having to use many of M$'s worst offerings!

Compilers

Came across yet another reason to dislike M$. I accidentally added a dot before a constant name in an err.raise statement in a VB6 program. The compiler silently compiled this and it wasn't until I ran it on a machine that tripped the error that this fault showed up. Of course it was in the error handling code so instead of showing me my nice pop up dialog and logging it to the log file it simply crashed with M$'s unhelpful 'does not support this method' message. I had to instrument half the program (well it seemed like that!) before I tracked it down.

I know that unit tests might have helped but really this is a simple piece of static analysis that is part of the compiler anyway!

And getting enough coverage to trip all the errors in unit tests would be a major job both to create and to maintain.

Automated Plagiarism Detection

I have been searching for tools to help maintain medium sized software projects for some time. In a large program created by a geographically, culturaly, and educationally diverse programming team one problem that recurs over and over is code that is copied from place to place to solve several similar problems. This is a problem because if the original copy of the algorithm has a bug then the copies quite likely have it too, unfortunately the author of the original may not be aware that the code has been copied nor by whom so it is difficult for him or her to fix all the copies. This is just the standard argument for parametric procedures. So it would be good to have a method that would let us scour the code for duplicates and near duplicates, but when I ask Google to find pages matching 'code similarity' many of the hits are academics complaining that their students present copies of someone else's work as their own and then crowing that they have created a wonderful new tool to detect such plagiarism. The tool is, of course, never open source and is only available to bona fide academics just in case the students could figure out how it works and thus defeat it. The only open source code that i know of for this purpose is my own implementation of the DotPlot 'algorithm'.

This page is my counter blast to automated plagiarism detection.

It seems to me that the justification for the development of automated plagiarism detectors rests on faulty foundations. The argument seems to go something like this:

  • plagiarism is a form of cheating,
  • cheating is a way of gaining monetary or other advantage with less effort than doing proper work, that is, it is unfair,
  • those responsible for awarding degrees, certificates, etc. are only willing to look at the end result of a process,

therefore we must have automated methods of detecting plagiarism.

I hope I haven't created a straw man here. Anyway the argument is arrant drivel, at least as far as software development is concerned. All good programmers plagiarise other programmers' work for the simple and honourable reason that one can see further by standing on the shoulders of a giant (to paraphrase Newton). Even standing on the shoulders of a pygmy can help you see over the tall grass. It seems to me that the real driving force behind automated plagiarism detection computer science courses is that the instructors are following a mechanical process where the only requirement to pass the course is to produce a finished piece (no doubt several pieces) of work that performs according to the specification. Well, in the real world of software development there is almost never a finished program, only one that is temporarily stable enough to use while the developer takes a breather and tries to map his way to the next version. Software development is a process, no amount of examination of the final result will tell you how good the developer was at dealing with incomplete and contradictory specifications, deadlines that were totally unreasonable, customers who change the rules half way though. Plagiarism detection would be unnecessary if the avowed purpose of the computer science course was to produce students who could cope with those difficulties because the grades awarded would depend more on the students behaviour and less on the actual text of the final program. One classic way of achieving some part of this is to conduct a viva voce examination, known in the software development industry as a code review. In an academic context this could be done in the old fashioned IBM style where the author is required not merely to explain the code but to defend the decisions that produced it. This means that the student would have to maintain a log book containing notes showing the development of the solution to the programming problem. Another way of expressing this is to say that computer science course should be more like physics where the actual answer is less important than the log showing the method that was used to arrive at it. A physics student is not penalised for repeating one of Faraday's experiments, quite the reverse, he would be praised if he succeeded in performing it as well as the great man. On the other hand even if he made a much more accurate determination of the force due to the charge on two plates than Faraday no one would be particulary interested unless the method were different, it is the process that counts.

Posted via web from kwhitefoot's posterous

Basic Latin

According to Tolle, lege! 1400 words cover 80% of all Classical Latin text. So here is a copy of the list from that site. For my own dictionary see this document LatinDictionary. The Tolle, lege! site has disappeared and the link now points at a local mirror on my own hard disk (useful to me but not to you, sorry) but there are links on the web to other pages by the same author. Try Latin Poetry by Vojin Nedeljkovic for something a little newer than the usual texts.

Tolle, lege!

The Fourteen Hundred

Did you know that being familiar with approximately 1400 Latin words enables you to read almost any Latin text without having to use the dictionary more than a couple of times per page? Those 1400 words make up what is called the basic Latin vocabulary. At least 80 per cent of any Latin text is made of words belonging to the basic vocabulary.

The following word list is based mainly on E. Habenstein-E. Hermes-H. Zimmermann, Grund- und Aufbauwortschatz Latein, Stuttgart: Ernst Klett Schulbuchverlag 1990. (The book itself is very intelligent and quite handy: a great relief for the beginner.) You may wish to keep this list for future reference, so that you can either (1) read it and mark the entries you do not recognise, then build up your vocabulary by learning those first, or (2) use it while you work on a Latin text to decide whether a word you are looking up in the dictionary deserves special attention.

I (KJW) have added the output from Perry Rapp's Verba (William Whitaker's Words) where I have used this list and Verba to help me translate.


A B C D E F G H I J K L M N O P Q R S T U V W X Y Z


A

a /ab /abs
abesse
abire
absens
abstinere
accedere
accidere
accipere
accusare
acer
acerbus
acies
ad
addere
adducere
adeo (adv.)
adesse
adhibere
adhuc
adimere
adipisci
adire
aditus
adjungere
adjuvare
administrare
admirari
admittere
admodum
admonere
adoriri
adulescens
adulescentia
adventus
adversus (adj.)
adversus (prep.)
aedes
aedes (~ium)
aedificare
aegre
aeque
aequus
aer
aes
aestas
aestimare
aetas
afferre
afficere
affirmare
ager
agere
aggredi
agitare
agmen
ajo
alere
alibi
alienus
aliquando
aliquanto
aliquantus
aliqui
aliquid
aliquis
aliquot
aliter
alius
alter
altitudo
altus
amare
ambitio
amicitia
amicus
amittere
amnis
amor
amplius
amplus
an
anceps
angustus
anima
animadvertere
animus
annus
ante
antea
antequam
antiquus
aperire
apparere
appellare
appetere
aptus
apud
aqua
arbitrari
arbor
arcere
arcessere
argentum
arguere
arma (~orum)
ars
artificium
arx
ascendere
asper
aspicere
assequi
at
atque / ac
attingere
auctor
auctoritas
audacia
audax
audere
audire
auferre
augere
auris
aurum
aut
autem
auxilia (~orum)
auxilium
avaritia
avertere
avia
avus

B

beatus
bellum
bene
beneficium
bibere
bis
bonus
brevis

C

cadere
caedere
caedes
caelum
calamitas
calidus
campus
capere
caput
carere
carmen
carus
castra
casus
causa
cavere
cedere
celebrare
celer
censere
centum
cernere
certamen
certare
certe
certiorem facere
certo
certus
ceteri
cingere
circa
circiter
circum
civilis
civis
civitas
clam
clamare
clamor
clarus
classis
claudere
cliens
coercere
cogere
cogitare
cognoscere
cohors
colere
collega
colligere
collis
collocare
colloqui
comes
commemorare
commendare
committere
commodus
commovere
communis
comparare
comperire
complere
complures
componere
comprehendere
conari
concedere
concidere (i
short)
concilium
concordia
concurrere
concursus
condere
condicio
conducere
conferre
conficere
confidere
confirmare
confligere
conjicere
conjungere
conjuratio
conjux / conjunx
conquirere
consequi
conservare
considere
consilium
consistere
conspectus
conspicere
constans
constare
constituere
consuescere
consuetudo
consul
consularis
consulatus
consulere
consumere
contemnere
contendere
contentio
continere
contingere
continuus
contio
contra
convenire
conventus
convocare
copia
copiae (~arum)
cor
coram
cornu
corpus
corrumpere
cottidianus
cottidie
cras
creber
crebro
credere
crescere
crimen
crudelis
cujusmodi
culpa
cum (conj.)
cum (prep.)
cum
ADV POS, ADV POS, ADV COMP, ADV SUPER when, at the time/on each occasion/in the situation that; after; since, although
cum
ADV POS, ADV POS, ADV COMP, ADV SUPER |as soon; while, as (well as); whereas, in that, seeing that; on/during which;
cum
PREP ABL with, together/jointly/along/simultaneous with, amid; supporting; attached;
cum
PREP ABL
under command/at the head of;
having/containing/including; using/by means of;
cunctus
cupere
cupiditas
cupidus
cur.cura
curare
curia
currere
cursus
custos

D

damnare
dare
de
dea
debere
decedere
decem
decernere
decimus
declarare
dedere
deducere
deesse
defendere
deferre
deficere
deinde
delectare
delectari
delere
deligere
demonstrare
denique
deponere
deportare
descendere
deserere
desiderare
desinere
desperare
deus
dexter
dicere
dies
differre
difficilis
dignitas
dignus
diligens
diligentia
diligere
dimittere
discedere
discere
disciplina
disputare
dissimilis
dissimulare
dissuadere
diu
diversus
dives
dividere
divinus
divitiae (~arum)
divus
docere
dolere
dolor
domina
dominus
domus
donare
donum
dormire
dubitare
dubius
ducenti
ducere
dulcis
dum
dummodo
duo
duodecim
durus
dux

E

e / ex
edere (initial e
long)
edere (initial e
short)
educere
efferre
efficere
effugere
egere
ego
egredi
egregius
ejusmodi
emere
enim
eo (adv.)
epistula
eques
equitatus
equus
erga
ergo
erigere
eripere
errare
esse
et
etenim
etiam
etiamsi
etsi
evenire
eventus
excedere
excipere
excitare
exemplum
exercere
exercitus
exire
existimare
exitus
expellere
experiri
explorare
exponere
expugnare
exsilium
exspectare
exstinguere
extemplo
exterior
extra
extremus

F

fabula
facere
facilis
facinus
factum
facultas
fallere
falli
falsus
fama
familia
familiaris
fas est
fateri
fatum
fere
ferme
ferox
ferre
ferrum
fidelis
fides
fieri
filia
filius
fines (~ium)
fingere
finis
finitimus
firmare
firmus
flagitium
flamma
flectere
flere
florere
fluctus
fluere
flumen
foedus (~eris)
forma
formosus
fortasse
forte
fortis
fortuna
forum
frangere
frater
fraus
frequens
frigidus
frigus
fructus
frui
frumentum
frustra
fuga
fugere
fundere
funus
furor
furtum

G

gaudere
gens
genus
gerere
gladius
gloria
gradus
grandis
gratia
gratus
gravis
gravitas

H

habere
habitare
haud
heri
hic
hic (adv.)
hiems
hinc
hodie
homo
honestus
honor
hora
horrere
hortari
hospes
hostis
huc
hujusmodi
humanitas
humanus
humilis
humus

I

ibi
idcirco
idem
ideo
idoneus
igitur
ignarus
ignis
ignorare
ignoscere
ignotus
ille
illuc
illustris
imago
imminere
immo
immortalis
impedimenta
(~orum)
impedimentum
impedire
imperare
imperator
imperium
impetrare
impetus
imponere
improbus
in
inanis
incendere
incendium
incertus
incipere
incitare
includere
incolere
incolumis
incredibilis
inde
indicium
indignus
inducere
inferior
inferre
infirmus
infra
ingenium
ingens
ingredi
inimicus
iniquus
initium
injuria
inopia
inquit
insidiae (~arum)
insignis
instare
instituere
institutum
instruere
insula
integer
intellegere
intendere
inter
interdum
interea
interesse
interficere
interim
interior
interire
intimus
intra
intro
intus
invenire
invidere
invidia
invitus
ipse
ira
ire
is
iste
istic
istinc
istuc
ita
itaque
item
iter
iterum

J

jacere (2nd)
jacere (3rd)
jactare
jam
jubere
jucundus
judex
judicare
judicium
jugum
jungere
jurare
jus
jus jurandum
jussu
justus
juvare
juvenis
juventus

L

labor (~oris)
laborare
lacrima
laedere
laetari
laetus
lapis
latus (~eris)
laudare
laus
lavare
lavari
legatio
legatus
legere
legio
lenis
levare
levis (e short)
lex
libenter
liber (~a ~um)
liber (libri)
liberare
liberi (~orum)
libertas
libido
licet
lignum
lingua
littera
litterae (~arum)
litus
locare.locus
longe
longus
loqui
ludere
ludus
luna
lux
luxuria

M

magis
magistratus
magnitudo
magnopere
magnus
male
malle
malus (~a ~um)
mandare
mane
manere
manus
mare
mater
materia
maturus
maxime
mediocris
medium
medius (~a ~um)
meminisse
memor
memorare
memoria
mens
mensis
merere / ~ri
merito
meritum
metuere
metus
meus
miles
militaris
militia
mille
minari
minime
ministrare
minuere
minus
mirari
mirus
miscere
miser
misericordia
mittere
modicus
modo
modus
moenia (~ium)
moles
molestia
molestus
mollis
monere
mons
monstrare
monumentum
mora
morari
morbus
mores (~um)
mori
mors
mortalis
mos
motus
movere
mulier
multitudo
multo (adv.)
multum
multus
munire
munitio
munus
murus
mutare

#

N

nam
nancisci
narrare
nasci
natio
natura
navis
ne
ne .. quidem
necessario
necessarius
necesse est
necessitas
necne
nefarius
nefas est
negare
neglegere
negotium
nemo
nequaquam
neque / nec
nescire
neve / neu
nihil
nihilo
nihilominus
nimis
nimium
nimius
nisi / ni
niti
nobilis
nobilitas
nocere
noctu
nolle
nomen
nominare
non
non jam
non modo
non solum
nondum
nonne
nonnulli
nonnumquam
nos
noscere
noster
notus
novem
novisse
novus
nox
nudus
nullus
num
numen
numerus
numquam
nunc
nuntiare
nuntius
nuper
nusquam

O

ob
objicere
oblivisci
obscurus
obses
obsidere
obtinere
obviam
occasio
occidere (i long)
occultare
occultus
occupare
occurrere
octo
oculus
odisse
odium
offendere
offerre
officium
olim
omittere
omnino
omnis
onus
opera
opes (~um)
opinari
opinio
oportet
oppidum
opportunus
opprimere
oppugnare
ops
optare
opus
opus est
ora
orare
oratio
orator
orbis
ordo
origo
oriri
ornamentum
ornare
os (oris)
ostendere
otium

P

paene
palam
par
parare
parcere
parens
parere (2nd)
parere (3rd)
pariter
pars
partim
parum
parvus
passus
pater
patere
pati
patres (~um)
patria
patrius
pauci
paulatim
paulo
paulum
pauper
pax
pectus
pecunia
pecus
pedes (~itis)
pellere
pendere (2nd)
pendere (3rd)
per
perdere
perditus
perfectus
perferre
perficere
pergere
periculum
perire
permanere
permittere
pernicies
perpetuus
persequi
perspicere
persuadere
perterrere
pertinere
perturbare
pervenire
pes
petere
petitio
pietas
pingere
pius
placere
plane
plebs
plenus
plerique
plerumque
plus
poculum
poena
polliceri
pondus
ponere
pons
populus (o short)
porta
portus
poscere
posse
possidere
post
postea
posterus
postquam /
posteaquam
postremo
postremus
postridie
postulare
potens
potentia
potestas
potiri
potius
prae
praebere
praeceptum
praecipere
praeclarus
praeda
praeesse
praemium
praesens
praesertim
praesidium
praestans
praestare
praesto esse
praeter
praeterea
praeterire
praetor
praetura
preces (~um)
premere
pretium
pridie
primo
primum
primus
princeps
principium
prior
priusquam
privatus
pro
probare
probus
procedere
procul
prodere
prodesse
producere
proelium
profecto
proferre
proficisci
proficisc.eretur V 3 1 IMPF PASSIVE SUB depart, set out; proceed;
progredi
prohibere
promittere
promptus
prope
propinquus
propior
proponere
proprius
propter
propterea
providere
provincia
proximus
prudentia
publicus
pudor
puella
puer
pueri (~orum)
pugna
pugnare
pulcher
purus
putare

Q

qua (adv.)
quaerere
quaeso
qualis
quam
quamobrem
quamquam
quando
quanto
quantum
quantus
quare
quartus
quasi
quattuor
quemadmodum.queri
qui (quae quod)
quia
quicumque
quid
quidam
quiddam
quidem
quidquam
quidque
quidquid
quidvis
quies
quietus
quin
quinetiam
quinque
quis
quisquam
quisque
quisquis
quivis
quo
quoad
quod
quodammodo
quominus
quondam
quoniam
quoque
quot
quotannis

R

rapere
ratio
recens
recipere
recitare
rectus
reddere
redire
reditus
reducere
referre
reficere
regere
regio
regius
regnum
religio
relinquere
reliquus
remanere
removere
repente
repentinus
reperire
repetere
reprehendere
requirere
reri
res
res adversae
res familiaris
res novae
res publica
res secundae
resistere
respondere
restituere
retinere
reus
reverti
revocare
rex
ridere
ripa
rogare
ruina
ruinae (~arum)
rumor
rumpere
rursus

S

sacer
sacerdos
sacrum
saeculum
saepe
saevus
salus
salutare
sanctus
sane
sanguis
sanus
sapiens
sapientia
satis
saxum
scelus
scientia
scilicet
scire
scribere
se
se conferre
se gerere
se jactare
se recipere
secundum
secundus
secus
sed
sed etiam
sedere
sedes
semel
semper
senator
senatus
senectus
senex
sensus
sententia
sentire
septem
sequi
sermo
sero
servare
servire
servitus
servus
severus
sex
si
sic
sicut
significare
signum
silentium
silva
similis
simul
simulacrum
simulare
simulatque /
simulac
sin
sine
sinere
singularis
singuli
sinister
sistere
situs (~a ~um)
sive / seu
societas
socius
sol
solere
solitus
sollicitare
sollicitus
solus
solvere
somnium
somnus
soror
sors
spatium
species
spectare
sperare
spes
sponte
stare
statim
statua
statuere
status
sternere
struere
studere
studiosus
studium
stultus
suadere
suavis
sub
subire
subito
subitus
subjicere
subsidium
succedere
sumere
summus
sumptus
super
superare
superbia
superbus
superesse
superior
supplicium
supra
surgere
suscipere
suspicari
suspicere
suspicio
sustinere
suus

T

tabula
tacere
talis
tam
tamen
tametsi
tamquam
tandem
tangere
tanto
tantum
tantummodo
tantus
tardus
tectum
tegere
telum
temere
temperare
tempestas
templum
temptare
tempus
tendere
tenere
tenuis
ter
tergum
terra
terrere
tertius
testimonium
testis
timere
timor
tolerare
tollere
tot
totus
tractare
tradere
traducere
trahere
trajicere
trans
transferre
transire
tres
tribuere
tribunus
triginta
tristis
tu
tueri
tum
tumultus
tunc
turba
turpis
turris
tuto
tutus
tuus

U

ubi
ubi primum
ubicumque
ubique
ullus
ultimus
umquam
una
unda
unde
undique
universus
unumquidque
unus
unusquisque
urbs
urgere
usque
usus
ut
uter
uterque
uti
utilis
utilitas
utinam
utique
utrum
uxor

V

vacuus
valde
valere
valetudo
validus
varius
vas
vehemens
vehere
vehi
vel
velle
velut
vendere
venenum
venire (venio)
ventus
verbum
vereri
vero
versari
versus (~us)
vertere
verum (conj.)
verum (~i)
verum etiam
verus
vester
vestigium
vestis
vetus
via
victor
victoria
videlicet
videre
videri
vigilare
vigilia
viginti
villa
vincere
vinculum
vindicare
violare
vir
vires (~ium)
virgo
virtus
vis
visere
vita
vitare
vitium
vivere
vivus
vix
vocare
voluntas
voluptas
volvere
vos
vox
vulgo
vulgus
vulnerare
vulnus
vultus

Posted via web from kwhitefoot's posterous

Latin Notes

Miscellaneous notes on Learning Latin. See Claude Pavur's web site at St. Louis Uni. Almost everything good that I have written here has been extracted from his writings (no longer true, I have plundered many others web pages since). The mistakes are all my own.

Another site well worth a visit is C. J. Cherryh's Latin Language.

In addition to my haphazard do it myself course I tried to follow Peter Jone's Telegraph course but it was removed before I tried to mirror it. The notes for what I have begin here: PeterJonesNotes.

Follow the links in SubjectCategories to see related pages.

Found another course, sprachprofi, that is very suitable for a complete beginner and has a very different emphasis from Peter Jones' course, instead of grammar it concentrates first on comprehension. Perhaps they will be complementary. I've jotted down some notes in SprachProfi.

Here are some more pages on Latin:

BasicLatin DeBello DefiNitions GraspCustodes GraspDeBello GraspExercises HardLittleWords LatinDictionary LatinNotes LearningMethods PeterJonesNotes ProNunciation SprachProfi SprachProfiVocab StemNotes TextConflicts TotalParsing VerbFirst VerbSum VerbThird WorDs WordConstruction

Posted via web from kwhitefoot's posterous

Csharp Layout

Layout routines for C#

I heartily dislike drag and drop form designers. They seem so easy to use but as soon as you need any fine control they let you down. I always liked the simple containers that the Java user interface libraries have that automatically size their contents and arrange them in columns or rows.

So I have decide to create something like it in C#. I originally thought of creating new classes derived from Panel but I think that is is simpler to simply create some functions that take panels and other controls as argument.

Example code will be found in layout.

Row
Add a list of controls to a panel so that they are in left to right order on the screen. Specify the panel first then the left most control, then the rest in order. The function searches the list of controls to discover which has dock=Fill. This must be either the first or the last. The controls are added to the Controls list of the panel either from left to right or from right to left depending on the location of the Fill control. Of course the other controls must have the appropriate DockStyle, Left or Right as appropriate.
Column
As Row except that where Row speaks of Left Column speaks of Top and so on.

Both functions return the panel as their value. This lets us write code that shows the hierrchical structure of the layout. You can then build up the layout piece by piece replacing simple elements with Rows or Columns as you go:

 Column(panelTop, splitterH, panelText); 

You can compile it and check that it works. Now expand it by adding controls to the top panel:

 Column(Row(panelTop, picDotPlot, panelTopRight),  splitterH,  panelText); <example>  The example is intended as preparation for the use of this idea in DotPlot.  <example> Column(Row(panelTop, picDotPlot,  Column(panelTopRight,  buttonGo, frameDotScaling, frameParsing),  splitterH,  Row(panelText,  Column(panelText1, comboFile1, textFile1),  Column(panelText2, comboFile2, textFile2)); 

All the examples assume that the various controls already exist and that all the relevant properties have been set.

Posted via web from kwhitefoot's posterous

Math Cad

/ LiveMaths

MathCad is mathematical document processor. It looks rather like a traditional word processor except that when you embed an equation you are actually creating a function that can calculate the value. In addition to simple arithmetic it has many functions for charting and equation system solving in adition to automatic dimensional analysis.

Posted via web from kwhitefoot's posterous

Stretch Image

StretchImage is discussed in PictureBox

Posted via web from kwhitefoot's posterous

Current Version


Updated: 2003-12-27 Index

Posted via web from kwhitefoot's posterous

My Software

My software

I write programs for a living but not many of them would be useful to the outside world even if I were able to give away the code; however I do have a few odds and ends that might be useful

Some notes on ideas for programs will be found in ProposedPrograms.

Visual Basic Mode for Emacs

This is a mode for Emacs for editing and formatting Visual Basic 6 code. I suppose it should work for all versions of VB from 4 onwards but I have only tested it on VB6 source code. It might not work on source for VB.NET because of changes to the syntax regarding property functions; I'll have to take a look at it when I have some VB.NET code to work with.

I didn't write all of this but I did fix it up to work in the latest version of Emacs (20.5). Unfortunately there seems to be a problem using it with 21.2.1, I keep getting minor errors but if I load the files .elc before trying to use them instead of relying on the autoload mechanism they work fine.

There are just two files: one to load a VBP or VBG file and another to load and fontify a Visual Basic source file (.cls, .bas, .frm):

visual-basic-mode.el
This is the main file, it fontifies and formats Visual Basic code.
vbp-mode.el
Loads a project file and then all of the source files mentioned within it.

Acknowledgements

As mentioned earlier, I didn't write the original visual-basic-mode.el I just maintain it and occasionally enhance it. Here I say thank you to those who have helped.

Fred White
Wrote the original, a much greater achievement than my additions.
Dave Love
of Daresbury Laboratory in the UK, very helpful and knowledgeable about Emacs Lisp.
Christian Lemburg
Complained that it didn't work in XEmacs but didn't stop there, he fixed it and tracked me down to get the fix put back into the source. That's what open source is all about. Unfortunately the reason it didn't work was a difference in the way Emacs and XEmacs treat strings and characters (I think) so if I apply his patch then it won't work in Emacs, I have to try to figure out how to make it adapt itself to the two environments.

Visual Basic Mode for Visual Basic

When I discovered the regular expression classes of VBA it dawned on me that I could make a VB version of the formatting feature of the mode. The core of the job was simply to recreate all the regular expressions and package them in a class called Pretty.

This can be used as a formatting engine in an Add-In (already created and in use) or a standalone formatter (in progress). You can download the files from here:

Engine
pretty.cls, point.cls, pretty.bas
Add-In
prettyoptions.frm, prettyoptions.frx, connect.dsr, connect.dca, modmain.bas, prettyaddin.vbp
Standalone Formatter
Not ready yet.

Posted via web from kwhitefoot's posterous

Cell Tracking

/ index

Introduction
Constraints
Component Overview
Requirements
Information required
Reference
Debugging and Exception handling
Launch program at start
Launch program at intervals
Cause a program to sleep
Save information to a file
Copy file to the computer
Read and write EXIF and IPTC tags
Find photographs in the mobile
Respond to events in the mobile
Read a database of cell locations
Update the cell location database from public resources
Transfer cell location database to mobile
Webservices

Introduction

I have several digital cameras and a Nokia N73 mobile. The mobile knows where it is at all times because the network tells it the ID of the cell in which it is sitting. The mobile also has a camera which is very handy because, unlike my other cameras, it is always with me so whenever I see something interesting I can snap it.

This means I take more pictures than before so now I have an even greater problem of identifying the locations, or will have in the future.

But if I can write a simple program to log the names of the cells I can surely write another program that can look at the dates and times of the photographs and match them with entries in the log. then I can add the cell ids to the IPTC data of the photographs.

I can make another list that can translate between cell ids and locations so that the actual location can be added to the photograph as well.

The rest of this page contains notes about what the application suite should do. Example code will be found in CellTrackingCode.

Constraints

  • All code running on the mobile should be in Python.
  • All code running on the computer must be usable in Ubuntu Linux 7.04 on x86. Python to be the preferred language and toolkit.

Component Overview

To make this work I need several pieces of sofware and some data files:

Cell tracker
an application running on the mobile that records the date and time of entry to each cell.
Photo tagger
an application running on my computer that reads the date and time at which each photograph was taken and searches the log for a matching date and time so that it can add the cell id and location to the photograph.
Database
a list of cell ids and location names

The tagger runs on the computer so that it can tag phographs not taken by the mobile. If it were written in Python it should be possible to run it on the mobile as well so that the pictures are tagged immediately after being taken.

Requirements

The cell tracker must:

  • run continually,
  • not drain the battery too fast,
  • not require Internet access,

The cell location database must be:

  • amenable to manual updating,
  • amenable to automatic updating from public resources.

The tagger must:

  • operate as a command line program,
  • be safe. That is it must not disturb existing tags,
  • inform the user when a photograph has tags that conflict with the tag that the tagger wants to apply.

Information required

To comply with the requirements I need to know how to:

  • launch a program when the mobile is started,
  • launch a program at intervals or how to cause a program to sleep in the intervals,
  • save information to a file,
  • copy that file to the computer,
  • read and write IPTC tags in photograph files,
  • determine the date and time a photograph was taken. This can come from the EXIF tags or, sometimes, from the filename,
  • find photographs in the mobile and apply tags to them immediately,
  • discover that a new photograph has been taken and which it is,
  • read a database of cell ids and locations,
  • update the cell location database manually,
  • update the cell location database from public resources.

Reference

Details of API calls, web services, IPTC and EXIF tags etc.

Debugging and Exception handling

See http://wiki.forum.nokia.com/index.php/Python_debugging_techniques

 try: # Actual program is here. 1 / 0 except: import sys import traceback import e32 import appuifw appuifw.app.screen="normal"               # Restore screen to normal size. appuifw.app.focus=None                    # Disable focus callback. body=appuifw.Text() appuifw.app.body=body                     # Create and use a text control. applock=e32.Ao_lock() def quit():applock.signal() appuifw.app.exit_key_handler=quit         # Override softkey handler. appuifw.app.menu=[(u"Exit", quit)]        # Override application menu. body.set(unicode("\n".join(traceback.format_exception(*sys.exc_info())))) applock.wait()                            # Wait for exit key to be pressed. appuifw.app.set_exit()  

Launch program at start

Rumour has it that Open Signed Online applications can't do this. I'll set the flag next time I try Ensymble.

Launch program at intervals

Nokia don't even provide proper repeating calendar entries so this might be difficult.

Cause a program to sleep

Use e32.ao_sleep(interval_seconds). See API_Reference_for_Python.pdf.

From: http://snippets.dzone.com/posts/show/738

This could be used to create a repeat loop for every interval. I show this in a previous snippet.

 import e32, time  def showtime(): print time.clock() e32.ao_sleep(1, showtime)  # sleep then call itself again  showtime()  # start the loop 

Save information to a file

Copy file to the computer

Read and write EXIF and IPTC tags

Thanks to http://akuaku.org/archives/2003/05/gps_tagged_jpeg.shtml for a useful link.

Use pyexif.

Find photographs in the mobile

Just assume that they are in c:\DATA\Images.

Respond to events in the mobile

Read a database of cell locations

Initially the simplest thing to do will be to use a text file with the cell id,mnc, mcc, lac as the first fields and the rest of the line the cell description.

Update the cell location database from public resources

There are many public cell location resources but there appears to be no common API or file format and the coverage is extremely variable

Yahoo ZoneTags

Yahoo has a webservice for retrieving and updating a cell location database: ZoneTag Web Services.

To retrieve the data for a cell it is enough to construct a URL containing the cellid, mcc, lac, and mnc values returned by gsm_location(). The web service will send back an xml document containing one or more location elements the child elements of which contain the information you want (name, country, coordinates, post code, etc.).

Unfortunately coverage is sparse. Still this is worthwhile.

This generates some secondary requirements:

  • need to be able to interrogate a web service using a url,
  • need to be able to parse the xml document that is returned.

Janus Liebregts

At http://janus.liebregts.nl/cellid/index_en.html there are links to xml files containing some data for UK, NL, and FR.

The xml holds cellid, network id, and free text description

The page also has links for other resources.

Jürgen Morhöfer

At http://kbs.cs.tu-berlin.de/~jutta/gsm/gsm-list.html is a list of network operator codes.

Nobbis GSM-Seiten

Another list of operators is at http://www.nobbi.com/netw_country.htm.

Sites listing themselves as member of senderliste.de use the same format for their pages.

Matthias Fonfara

Cells in Rhein-Main: http://www.senderlisteffm.de/

Cell Spotting

At http://cellspotting.com/thick/browse.php. Unfortunately the database is not downloadable.

Antenna Search

At http://www.antennasearch.com/sitestart.asp is a service that does a lookup of cells given the street address (USA only).

This service could be used to populate the database for areas you have visited or intend to visit. Unfortunately the reports it provides do not give enough information to decide if an antenna is a cell or not let alone the cell id, mnc, mcc, and lac.

Transfer cell location database to mobile

Webservices

To retrieve data from ZoneTag Web Services we must be able issue a REST query and parse the returned document.

Posted via web from kwhitefoot's posterous

Latin Dictionary

/ LatinIndex

Legend
Examples
Non-dictionary forms
Dictinary Pages
Original from: UBC SunSITE, additions and corrections by KJW taken from the vocabulary in BooKs:debello, BooKs:euplatinenglish, SprachProfiVocab and others (see also WebLinks).

Naturally any mistakes are likely to be mine so send complaints and corrects to me before complaining to my sources.

Legend

I have marked some of those entries that I have used particularly with abbreviations to show which declension or conjugation a word belongs to. An Arabic numeral followed by v denotes a verb of the indicated conjugation, a numeral followed by d denotes the declension. Gender is marked by f, m, or n.

Some words are marked either to indicate the source document or as a reminder that the word forms part of the vocabulary of a particular textbook.

UBC
UBC SunSITE, the source of the bulk of the words but it only gave the nominative and no idication of declension, conjugation, or gender,
CIGL
Complete Idiot's Guide to Learning Latin. This book has far fewer words but is very focussed, the word lists give nominative and genitive as well as gender.

Examples

I have added examples for some words when I looked them up during my studies and felt that an example would help me later. Many are drawn from Judith Meyer's Sprachprofi Latin course.

Non-dictionary forms

I have added inflected words here too because a beginner like me has trouble deciding what the root might be. Especially for irregular verbs like sum (see fuistis).

Those verbs that form part of the CIGL vocabulary are listed ast first person singular, third person singular, third person plural instead of the more usual first person, infinitive, perfect active, perfect, passive.

The page is a bit big for a single web page even in these days of large screens and fast connections so I have split it into several smaller pages.

Dictinary Pages


A B C D E F G H I J L M N O P Q R S T U V W X


Posted via web from kwhitefoot's posterous

Blog Archive

Followers