Thursday, 2 June 2022

How you can use perl -i -pe to make modifications to alot of different files. Also grep sort uniq wc basics ... A PROCESS for fixing up multiple files.

A PROCESS for fixing up multiple files.

 Sometimes you have a bunch of files ... and you need to change same or similar thing 100s of times.

e.g. remove all the "Stat not found" from the files in /logs/stats/

[o@t12 ~]$ perl -pi -e "s/Stat not found/0/" /logs/stats/*_absent_subscriber
[o@t12 ~]$ grep " not " /logs/stats/*_absent_subscriber
[o@t12 ~]$ grep " not " /logs/stats/*
[o@t12 ~]$ ssh o@t11 'perl -pi -e "s/Stat not found/0/" /logs/stats/*_absent_subscriber'
[o@t12 ~]$ ssh o@t11 "grep ' not ' /logs/stats/*"
[o@t12 ~]$ ssh o@v21 "grep ' not ' /logs/stats/*"
[o@t12 ~]$ ssh o@v22 "grep ' not ' /logs/stats/*"

e.g. in cconf-dir find all references to item and replace/rename

e.g. in source code renaming some common function .. or commenting out .. or in .. or removing

 

Perl "in-place edit" == perl -pi -e is useful.  (or perl -p -i -e but not perl -pie because -i takes an optional arg like .bak)

see `perldoc perlrun` or  https://perldoc.perl.org/perlrun#i

 -p = makes perl loop/iterate over filename cmd-line args
 
 -i = in-place edit of files passed on command-line
 
 -e = perl command/script one-liner to run

from stackoverflow.com:

We can use the B::Deparse backend processor to see what Perl code is being executed like this

$ perl -MO=Deparse -pi.bak -e 's/^\s*(self.tc.waitForCCR|self.sut.waitForCCR|tc.waitForCCR|sut.waitForCCR)\(\)//' lib/cat/smsc/*.py

 shows the equivalent Perl program to be

BEGIN { $^I = ".bak"; }
LINE: while (defined($_ = readline ARGV)) {
    s/^\s*(self.tc.waitForCCR|self.sut.waitForCCR|tc.waitForCCR|sut.waitForCCR)\(\)//;
}
continue {
    die "-p destination: $!\n" unless print $_;
}
-e syntax OK

see also https://stackoverflow.com/questions/32225091/speed-up-a-series-of-perl-pi-commands for other usages

 
e.g. perl -pi -e 's/old_string/new_string/g' file_pattern

Perl is actually not that scary, syntax very close to c, also regular expressions same as grep and sed.

You could do this with awk but the syntax is weirder and harder to learn.

As a demo for this we will look at tc_qa test source directory grepping and changing calls to waitForCCR.

ALSO we will see how to use:

grep with counting, using diff and meld to verify changes...

https://learnbyexample.github.io/learn_perl_oneliners/one-liner-introduction.html

https://en.wikipedia.org/wiki/Perl

 

Overview of procedure


1.
grep and count with wc ... to see extent of work to be done

2.0
Always backup everything first!

And backup after you think you have done a good batch of useful work.

Just in case.

  tar -zcvf backup_xxx.tgz tc_qa dir and files list 

2.
work out command expression ...
perl -pi -e to replace bulk of similar things
other edits with vi/emacs/...

3. set the hounds free, do the replace - on batches e.g. tc_qa/tests/mmsc  or tc_qa/cat/smsc  ....
review, grep and count, meld, cvs diff
for any anomalies edit file directly and adjust ...
   and maybe adjust the grep expression or paths or the perl replace expression to deal with future similar cases

 

Demo of Procedure

### 1. grep and count with wc ... to see extent of work to be done ###

# Eyeball lines found and count 

tc_qa$ find . -type f -exec grep waitForCCR {} + |less

tc_qa$ find . -type f -exec grep waitForCCR {} + |wc -l
3425

Breakdown of some useful grep args:

grep -c  #  count - count in each file
grep -h  #  show the match
grep -H  #  show name and match
grep -l  #  show just the file name 

tc_qa$ find . -type f -exec grep waitForCCR {} +
tc_qa$ find . -type f -exec grep -c waitForCCR {} +
tc_qa$ find . -type f -exec grep -h waitForCCR {} +
tc_qa$ find . -type f -exec grep -H waitForCCR {} +
tc_qa$ find . -type f -exec grep -l waitForCCR {} +

tc_qa$ find . -type f -exec grep -h waitForCCR {} + |sort -i |uniq -c -i

# SORT AND GREP WITH -i to ignore whitespace or non-printing chars. 

BE PARANOID. PARANOID is GOOD.

 1. You don't want to miss things you need to change due to whitespace or positioning or syntax differences

 2. You want to be very specific in the thing you do want to change 

     e.g. want to remove waitFOrCCR calls in source code, 

       BUT NOT waitForCCR mentions in CHANGES 

       BUT NOT waitForCCR function definition and non-call references

 

#grep -C n -A n -B n  to look at context
tc_qa$ find . -type f -exec grep -C 3 -waitForCCR {} + |less

 

### 2.0 BACKUP full work area

Again, PARANOID is GOOD.

A backup can restore all or part of your work.

If using git or something with local commits you can just locally commit changes as you go.

# e.g.
tar -zcf backup_tcqa.tgz tc_qa

# and verify:
tar -ztvf backup_tcqa.tgz


# tar -f <tarfile> use tarfile as output, not stdout

# tar -z use gzip compression (-j -b for others)

# tar -c create tar archive

# tar -t view Table of contents

# tar -x extract tar archive

# tar -v be verbose

 

### 2. work out command expression ...

pick one or two files
tc_qa$ find . -type f -name "*.py" -exec grep -H waitForCCR {} + |less

./lib/cat/smsc/cat_mt_mt_sms_ems.py:        self.sut.waitForCCR()
./lib/cat/smsc/cat_mt_mt_sms_ems.py:        self.tc.waitForCCR()
./lib/cat/smsc/cat_mt_mt_sms_ems.py:        self.sut.waitForCCR()
./lib/cat/smsc/cat_mt_mt_sms_ems.py:        self.sut.waitForCCR()
./lib/cat/smsc/cat_mt_mt_sms_ems.py:        self.sut.waitForCCR()

# use -i.bak to make a backup as you go 
perl -pi.bak -e 's/self.tc.waitForCCR()//;s/tc.waitForCCR()//;s/sut.waitForCCR()//' lib/cat/smsc/cat_mt_mt_sms_ems.py
ls -alstr lib/cat/smsc/cat_mt_mt_sms_ems.py*
diff -u lib/cat/smsc/cat_mt_mt_sms_ems.py{.bak,}

 

### WHOOPS! restore and adjust expression

cp -p lib/cat/smsc/cat_mt_mt_sms_ems.py{.bak,}

# or restore from cvs if you fluff that up!   rm lib/cat/smsc/cat_mt_mt_sms_ems.py && cvs up lib/cat/smsc/cat_mt_mt_sms_ems.py

perl -pi.bak -e 's/^\s*(self.tc.waitForCCR|tc.waitForCCR|sut.waitForCCR)\(\)//' lib/cat/smsc/cat_mt_mt_sms_ems.py
diff -u lib/cat/smsc/cat_mt_mt_sms_ems.py{.bak,}

 

### WHOOPS! restore and adjust expression

cp -p lib/cat/smsc/cat_mt_mt_sms_ems.py{.bak,}
perl -pi.bak -e 's/^\s*(self.tc.waitForCCR|self.sut.waitForCCR|tc.waitForCCR|sut.waitForCCR)\(\)//' lib/cat/smsc/cat_mt_mt_sms_ems.py
diff -u lib/cat/smsc/cat_mt_mt_sms_ems.py{.bak,}

# okay, that looks close to right. 

 

### It would be nice to remove entire line instead of leaving blank lines where waitForCCR() calls used to be.

cp -p lib/cat/smsc/cat_mt_mt_sms_ems.py{.bak,}

perl -pi.bak -e 's/^\s*(self.tc.waitForCCR|self.sut.waitForCCR|tc.waitForCCR|sut.waitForCCR)\(\)\s*#*.*$//' lib/cat/smsc/cat_mt_mt_sms_ems.py

diff -u lib/cat/smsc/cat_mt_mt_sms_ems.py{.bak,}

# Hummm, NICE. That looks good now.

 

# BE PARANOID.   CHECK changes e.g. using meld or diff

# also can use meld like diff ...

meld lib/cat/smsc/cat_mt_mt_sms_ems.py{.bak,}

## COMPARE against cvs

tc_qa$ cvs diff -u lib/cat/smsc/cat_mt_mt_sms_ems.py

 

## e.g. RESTORE FROM CVS if needed:

tc_qa$ rm lib/cat/smsc/cat_mt_mt_sms_ems.py
tc_qa$ cvs up -d -P lib/cat/smsc/cat_mt_mt_sms_ems.py

 

#### 2.1. Deal with commments and miscellaneous stuff ... 

 

2.1.1 As you page through cvs diff -u reviewing each line, if you see a stray comment or custom edit needed then just open that file and do the edit.

         # Wait for cconf replication
-        self.sut.waitForCCR()
+

e.g. get rid of now superflous comments like that.

perl -pi.bak -e 's/^\s*#\s*(Wait for cconf replication|Wait for CCR).*$//' lib/cat/smsc/cat_mt_mt_sms_ems.py

 

We can put our multiple replace commands into one script, e.g. vi tidyUpCCR.pl

We add a SEMI-COLON at end of each line - perl syntax to denote end of command.

s/^\s*(self.tc.waitForCCR|self.sut.waitForCCR|tc.waitForCCR|sut.waitForCCR)\(\)\s*#*.*$//;

s/^\s*#\s*(Wait for cconf replication|Wait for CCR).*$//;

 

And run like this:

perl -pi.bak2 tidyUpCCR.pl lib/cat/smsc/cat_mt_mt_sms_ems.py

tc_qa$ cvs diff -u lib/cat/smsc/cat_mt_mt_sms_ems.py

 

#### 3. ONCE HAPPY, set the hounds free by combining find and the perl -pi -e:

## cautiously at first, let's look at the first 10 files ... (again BEING PARANOID is GOOD)


tc_qa$ find . -type f -name "*.py" -exec grep -l waitForCCR {} + |head
./lib/mhlib/CimdLib.py
./lib/mhlib/SmsHubLib.py
./lib/mhlib/SmppLib.py
./lib/cat/smsc/cat_mo_to_esme_with_segmented_chinese_text.py
./lib/cat/smsc/cat_mtmt_lonely_mtfsm_transit.py
./lib/cat/smsc/cat_ue_sms_over_ip_to_short_number.py
./lib/cat/smsc/cat_mo_to_mt_DCS.py
./lib/cat/smsc/cat_ccsd_blocking_against_mo_spoof_by_a_vmsc_gt.py
./lib/cat/smsc/cat_smart_control.py
./lib/cat/smsc/cat_segmented_message_no_delivery_report.py

## check what we will change ...
tc_qa$ find . -type f -name "*.py" -exec grep -l waitForCCR {} + |head |xargs grep waitForCCR

## set the hounds free on first 10 files:
### just by expression tc_qa$ find . -type f -name "*.py" -exec grep -l waitForCCR {} + |head |xargs perl -pi.bak -e 's/^\s*(self.tc.waitForCCR|self.sut.waitForCCR|tc.waitForCCR|sut.waitForCCR)\(\)\s*#*.*$//' 

### better using the script:

tc_qa$ find . -type f -name "*.py" -exec grep -l waitForCCR {} + |head |xargs perl -pi.bak tidyUpCCR.pl

# or in batches, by directory:

tc_qa$ find lib/tests/mmsc -type f -name "*.py" -exec grep -l waitForCCR {} + |head |xargs perl -pi.bak tidyUpCCR.pl

cvs up -d -P lib/tests/mmsc

cvs diff -u lib/tests/mmsc |less

### HUMM, interesting,
 * after storeCConfItem we want to remove ok
 * after cfg.write() we want to keep, in fact there are some cfg.writes without a waitForCCR after   ----  NO, actually they should also be removed (double check review code)
 * there are some general waitForCCR() at start of tests, should they go ? it depends on what is in setup functions
 * there are some #Wait for CCR comments which are superflous anyway
 * there's the odd waitForCCR e.g. at start of setUp in cat_smart_control.py ... why is that there?

### REVIEW:
grep again and count
meld to compare
also cvs diff -u if files in cvs
OR other source control review before commit

 

### NEXT STAGE of REVIEW: TEST IT!

rsync -avzhP FROM TO

rsync each file directly into a QA container or into host then container and run regression

if tests are good .. then BE PARANOID ... but you might be close to being able to commit the changes

 

TIP: do bite-sized chunks of changes and ONLY TEST and COMMIT from a completely clean workspace

e.g. don't commit 10 changed files after changing 12 and testing with those 12 changes

It makes sure you eyeball everything that is committed and also that everything works together.

 

Sunday, 13 February 2022

house/garden/site sketch plan drawing tools and drawing plan for lean-to roof or gazebo in back garden .. and BUILD May 2022

openscad is a bit head melting drawing 3d shapes .. but interesting ...

In ubuntu sudo apt-get install openscad
# I had to get my opengl to work (accelerated 3D library and drivers)
The cheatsheet and online help are useful while learning it and programming:


Also sketchup was interesting. No install needed. Runs in browser:
No programming interface so at first learning how to move camera and draw stuff takes time.




// backGarden.scad - 8 Feb 2022 - mount eagle green back garden

// garden ground level, grass
color("green")
    square(900.0);

// paving slabs
color("grey") {
translate([0,0,0]) {
    linear_extrude(21.0)
        polygon(points=[[0,0],[0,290],[150,290],[150,210],[150+110,210],[150+110,290],[150+110+90,290],[150+110+90,290-55],[500,150],[900,150],[900,0],[0,0]]);
    //cube([150,290,21.0]);
    //cube([150+110,290-80,21.0]);
    //cube([900,150,21.0]);
    //translate([150+110,0,0])
    //    cube([90,290,21.0]);
    // step down
    //cube([150,220+225,1.0]);
    // from end wall
    //translate([0,220+225+350-100,0])
    //    cube([350,100,1.0]);
   
    // all of lower part near back wall //linear_extrude(height,center,convexity,twist,slices)
    linear_extrude(1)
        polygon(points=[[0,0],[150,0],[150,445],[350,445+350-100],[350,445+350],[0,445+350]]);        
}
}

// back wall
color("beige") {
translate([0,795,0])
    cube([900,20,140.0]);
}

// side wall
color("beige") {
//translate([-20,0,0])
//    rotate([0,-90,-90])
//        cube([200,20,900]);
translate([0,0,0])
    rotate([90,-90,-90])
        linear_extrude(20)
            polygon(points=[[0,0],[221,0],[221,290],[141,290],[145,445],[227,445],[227,445+350+20],[0,445+350+20],[0,0]]);
}

// house wall transparent ish windows
rotate([0,-90,-90]) {
color([1,1,1,0.9])
    //linear_extrude(2)
        polygon(points=[[0,0],[294,0],[294,12],[0,12],[0,0]]);
color([0.9,0.8,0.8,0.1])
    //linear_extrude(2)
    translate([0,12,0])
        polygon(points=[[0,0],[269,0],[269,220],[0,220],[0,0]]);
color([1,1,1,0.9])
    //linear_extrude(2)
    translate([0,232,0])
        polygon(points=[[0,0],[294,0],[294,25],[0,25],[0,0]]);
color([0.9,0.8,0.8,0.1])
    //linear_extrude(2)
    translate([0,257,0])
        polygon(points=[[0,0],[269,0],[269,620],[0,620],[0,0]]);

}

//tree
translate([75,445+115,0]) {
    color("brown")
    linear_extrude(300)
        circle(15);
    color("green")
    linear_extrude(30)
            circle(45);
    color("red")
    linear_extrude(7)
            circle(55);
}

// roof-posts and roof
roofpostsy=280;
translate([0,0,0])
    linear_extrude(220)
        square(10);
//translate([130,0,0])
translate([237,0,0])
    linear_extrude(220)
        square(10);
translate([0,roofpostsy-10,0])
    linear_extrude(200)
        square(10);
translate([130,roofpostsy-10,0])
    linear_extrude(200)
        square(10);
// roof: transparent ish
color([0,0.5,0.5,0.3])
translate([0,0,220])
rotate([-4,0,0])
    //square([150,290]);
    polygon(points=[[0,0],[0,290],[150,290],[247,0],[0,0]]);
//color([0.5,0.5,0,0.8]) cube(size=[10,10,10], center=true);
//color([0,0.5,0.5,0.3]) cube(size=[20,20,20], center=true);

// pergola posts
pery=445;
pery2=445+350+5;
perh=223;
perh0=200;
p0=[0,pery2,0]; // p0 lower corner post
p1=[0,pery,0];
p2=[90,pery,0];
p3=[210,pery+(255.0/2.0),0]; // p3 middle between p2 and p4 - no post
p4=[330,pery2-100,0];
p5=[330,pery2,0];
translate(p0)
    linear_extrude(perh0)
        square(10);
translate(p1)
    linear_extrude(perh)
        square(10);
//translate([130,pery-10,0])
translate(p2)
    linear_extrude(perh)
        square(10);
// no post at p3
translate(p4)
    linear_extrude(perh)
        square(10);
translate(p5)
    linear_extrude(perh)
        square(10);
// roof wood
translate([0,10,perh0]){
translate(p0){
    color("red") // x back wall
    rotate([0,-3,0])
        rotate([-90,-90,-90])
            linear_extrude(350)
                square(10);
    color([0.4,0.6,0])
    rotate([-1,-2.7,0])
        rotate([-90,-90,-107])
            linear_extrude(370)
                square(10);
    color([0.2,0.8,0])
    rotate([-2.2,-2.2,0]) // longest
        rotate([-90,-90,-135])
            linear_extrude(370)
                square(10);
    color([0.1,1,0])
    translate([10,0,0])
    rotate([-2.7,-1,0])
        rotate([-90,-90,-166])
            linear_extrude(387)
                square(10);
    color("green") // y side wall
    translate([10,0,0])
    rotate([-3,0,0])
        rotate([-90,-90,180])
            linear_extrude(377)
                square(10);
}
}
// TODO connecting roof wood ends and maybe middle
// connect each post
translate(p1) translate([0,0,perh])
    rotate([-90,-90,-90])
    linear_extrude(150-20)
        square(10);
//translate([130,pery-10,0])
translate(p2) translate([0,0,perh])
    rotate([-90,-90,-45])
    linear_extrude(150+30)
        square(10);
translate(p3) translate([0,0,perh])
    rotate([-90,-90,-45])
    linear_extrude(150+30)
        square(10);
translate(p4) translate([0,0,perh])
    rotate([-90,-90,0])
    linear_extrude(150-20)
        square(10);
//translate(p5) translate([0,0,perh])
//    rotate([-90,-90,0])
//    linear_extrude(150)
//        square(10);
   

echo(version=version());
// Written by Marius Kintel <marius@kintel.net>
//
// To the extent possible under law, the author(s) have dedicated all
// copyright and related and neighboring rights to this software to the
// public domain worldwide. This software is distributed without any
// warranty.
//
// You should have received a copy of the CC0 Public Domain
// Dedication along with this software.
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.



October 2022 garden lean-to build

See In google photos (PRIVATE to my Family (Sorry/NOT sorry :-7)
Sun 6 Feb 2022 
6 Feb 2022 perspective view from side of possible pergola and lean-to (North(house) is left)
 
6 Feb 2022 plan view (overhead) of back garden, measurements of paving by house and ideas for pergola/roofing cover at back of garden (North is down)


6 Feb 2022 perspective view of existing garden and ash tree with existing paving, showing wall heights, North is to left


Feb 6 2022 perspective view of existing garden with tracing paper overlay showing prospective gazebo and lean-to, North is left


May 2022 more diagramming:

side elevation and plan of simple lean to by house, North is down, East is left


BUILD: 15 Oct 2022 concreted in foundation under slab and bolt down post holder. Measure and cut frame pieces and oil/varnish.

Post holder bolted down on slab we lifted and put concrete foundation under, concrete(Post10) also used to re-grout slabs. North is bottom right.

Frame spars and light roof spars measured and cut to size and treated.

BUILD: 22 Oct 2022 Cutting and connecting frame to walls and together

Frame basic crude jointed together and screwed, bungee cord just holding unattached spars for measuring. North/West is left.

It rained a bit. Covered the new frame with old gazebo cover.

BUILD: 29 Oct Jointing and adding roof spars to frame.

Full Frame and roof spars nearly together. Supported by walls on 2 sides and post. North is left.


BUILD: 31 Oct corrugated transparent perspex screwed onto roof with help of Kate's hand drills, real drill fell in water bucket! Rainy day not ideal. Kate helped me. Yoga mats and need to go very gently on top of the roof. Finished in the dark. NOTE FOR FUTURE: try and pull the very thin and light sheets away tightly and screw down tight. On edges now we keep some sandbags to help stop wind cracking plastic (2 years later Feb 2024).

Screwing on transparent corrugated perspex. North is right.




Diagram 15 OCt and actual build OF LEAN-TO finally:




Saturday, 8 January 2022

FAIL: Huawei P9 mobile phone battery replace: screen cracked :-(

Technically successful as new battery in.

However bottom of screen cracked.

Only controls on bottom work SO can use pull up menu to work:

Voice recorder, Calculator, Torch, Clock/Timer, Qbar scanner. 

And Camera. Quick double volume down press enabled as photo taker. So Phone could be used as camera.

Can use buttons on side.

Cannot unlock phone or navigate or use any screen above crack which goes all along bottom about 1cm.


From previous phone battery changes I knew it's difficult and good chance of messing phone up. Phone battery pretty bad now will last 8 hours if doing nothing. If doing something needs battery pack plugged in and the charging connector is also worn or problematic - hard to maintain connection - wrap charging cable around phone to put sideways pressure on connection.


Following this video:

https://www.youtube.com/watch?v=doZ5E9G2WOk

It's a good video but same as Alex, getting the screen + phone body out of case was VERY hard. I tried to work on the bottom where logo is first but I think this caused screen to CRACK!! :-( I separated body out by working from middle, then using plastic levers to help get body out. ALSO the battery was very well stuck in place. It was quite hard to extract. Used little paintbrush to paint in alcohol. Gradually levered battery out. Good video but unsuccessful for me, cracked screen along bottom :-(













<<-- squiggle crack just above vid/camera icons



Sunday, 28 November 2021

Fainting or blackouts - Syncope vs TIA

Faint and blackout for my Mum about 6pm heading out to restaurant on the way to dinner. Not a blood sugar hypo. Blood sugar was 7+. Only lasted a few seconds. Fell on tarmac cut head. M&G there as well as Dad to help up first aid etc. Does not remember falling / being helped up -  blackout. hospital... CT scan, blood pressure checks etc. Nothing obvious. Home about 2:30am.

Sounds like a stroke?

But fainting or syncope with a blackout can be simply due to low blood pressure temporarily not enough blood/oxygen supplied to brain sounds like what happened. They can present with memory loss.

Syncope https://www.healthinaging.org/a-z-topic/fainting-syncope/causes  "caused by a temporary decrease of blood flow to your brain" 

"In older adults, the most common causes of syncope are": 

1.  "orthostatic hypotension[sudden drop in blood pressure], 

2. reflex syncope["usually a side effect of cartoid sinus syndrome" "pressure sensors in one of the carotid arteries in your neck are hypersensitive"],

3. heart disease."

Other causes can be 

4. Brain or nervous system conditions 

5. Dehydration

6. Medications

Or Stroke/TIA ? https://www.mayoclinic.org/diseases-conditions/transient-ischemic-attack/symptoms-causes/syc-20355679 if it was mini stroke you might also be noticing non-blackout FaceArmsSpeechT symptoms sometimes.  https://www.nhs.uk/conditions/transient-ischaemic-attack-tia/


More similar info:

https://www.heartrhythmalliance.org/stars/ie/blackouts-checklist

https://www.emedicinehealth.com/fainting/article_em.htm

Simple things like standing up too quickly, turning neck, emptying bladder, postprandial syncope can be the immediate cause. 


Myself and Kate have some experience of fainting as a teenager(get up, no breakfast(for mass), cycle up steep hill, don altar boy outfit kneel/stand/etc for a while//Kate Crohn's and similar exertions - standing on Luas). No faints recently for me but maybe close to fainting on rare occasion, maybe 5 years ago last time over-exertion unloading theatre container and getting the hot and bothered queasy feeling so out and lie down in cold to rest and get rid of it. Sometimes light-headed/purple shiny flare if relaxing on couch at home and stand up suddenly and start doing something.


Another relative is in and out of hospital alot over last month and a bit more. Parkinsons affecting nervous system severely now and the control of blood pressure is affected. If he stood up and started moving his heart did not start beating faster to keep blood pressure up so he ?fainted? and fell quite a bit before getting used to that. Exhausted all drug/other options to help this now. So now he is not mobile using his legs any more. Wheelchair needed.


Thursday, 9 September 2021

Planning adventure cycles out Royal Canal or Grand Canal maybe down Barrow sometime.

Planning adventure cycles out Royal Canal or Grand Canal maybe down Barrow sometime.

General geography, navigable waterways of Ireland.

https://www.iwai.ie/irelands-inland-waterways/

https://www.eurocanals.com/Waterways/irelandwaterways.html

Irish Waterways Ireland map showing water routes

Royal Canal from Dublin to Longford

Grand canal from Dublin with branch to Naas and branch to Barrow down to Waterford.

The Slaney at Wexford

The Blackwater at Youghal

Euro Canals Ireland map showing water routes

The Corrib near Galway

The Shannon Waterway, from the Shannon Estuary and Limerick city, to Killaloe

       Lough Derg, Shannon river, Shannon harbour (Grand canal joins)

       Shannonbridge and branch to Ballinasloe

       Athlone and Lough Ree

       Carrick and Boyle       

   connecting on Shannon - Erne waterway to Lough Erne system

   Ulster canal - Lough Neagh

   Lower Bann 

   Lagan canal

   Newry canal

The Boyne




The Royal Canal
https://en.wikipedia.org/wiki/Royal_Canal

https://www.longford.ie/en/visit/trails/royal-canal-greenway/ 

  5378-orni-royal-canal-greenway-guide-st2-copy.pdf

https://www.waterwaysireland.org/greenways/royal-canal

Dublin - Maynooth - Enfield - Mullingar - Longford and Cloondare

    RC Greenway Guide A2.pdf

https://ridewithgps.com/routes/29148589

https://www.longford.ie/en/visit/water/royal-canal/

"The canal passes through Maynooth, Kilcock, Enfield, [Longwood, Kilcullen, McNeads bridge,] Mullingar and enters County Longford 2.4km on the Westmeath side of Abbeyshrule. It menders from the County boundary through the Whitworth Aquaduct, Abbeyshule, Ballybrannigan Harbour, Ballymahon, Keenagh, Killashee and finishes at Richmond Harbour in Cloondara. It also has a spur to Longford.  The total length of the main navigation is 145 kilometres (90 mi), and the system has 46 locks. There is one main feeder (from Lough Owel), which enters the canal at Mullingar."

https://royalcanalrunner.com/2020/06/16/walking-on-the-royal-canal-the-longford-branch/

Breakdown of individual sections, photos, description, history.



The Grand Canal

https://en.wikipedia.org/wiki/Grand_Canal_(Ireland)

132 km 43 locks 

The Grand canal greenway is not as developed as the Royal canal one.

Status of different sections Offaly to Kildare to Dublin 

 .. and Kilbeggan branch Offaly to Westmeath 

https://www.waterwaysireland.org/Pages/Development-of-the-Grand-Canal-Greenway.aspx


https://www.sportireland.ie/outdoors/walking/trails/grand-canal-way

overview and 13 maps .pdf

Grand Canal Way - Overview Map.pdf

Lucan Bridge near Adamstown in Dublin - Hazelhatch - Henry Bridge - Sallins near Naas -

 - (don't take the) branch 4km to Naas - 10km Corbally branch

 - Healy's bridge - Robertstown, Fenton bridge <_ don't take old barrow line branch (see below)

  - Hamilton's bridge - Blundell Aqueduct - Edenderry short branch - Trimblestown bridge - 

 - Killeen bridge - Daingean - Cappyroe bridge <_ Kilbeggan branch

 - Tullamore - Henesy's bridge - Pollagh - Derry bridge - Belmont bridge - Shannon Harbour


With Annalise Murphy or Manchan Magan:

https://www.tracksandtrails.ie/waterways

https://www.tracksandtrails.ie/trails/royal-canal

https://www.tracksandtrails.ie/trails/royal-canal-2

https://www.tracksandtrails.ie/trails/royal-canal-mullingar-to-longford

https://www.tracksandtrails.ie/trails/royal-canal-mullingar


The Grand Canal and Barrow

Out and back route: Dublin to Monasterevin following the grand canal.

Back to Dublin by road.

https://my.viewranger.com/route/details/NDE2MDkyOA==


http://www.riverbarrow.net/barrow-way.html

Overview and walking stages description

Lowtown, Co. Kildare - Monasterevin - Athy - Carlow - Bagenalstown - Graiguenamanagh - St. Mullins, Co. Carlow

23km + 23km + 19km + 16km + 26km + 6km = 113km


https://www.sportireland.ie/outdoors/walking/trails/barrow-way

Overview and detailed map .pdf for each stage


https://my.viewranger.com/route/details/MTc3MTM0OA==?ref=

canoe trip barrow navigation 

Hazelhatch grand canal - Sallins - Robertstown <_ grand canal old barrow line - 

       - Skeic bridge <_ don't take Hubard bridge - Milltown feeder - near Newbridge

 - Rathangan - Monasterevin(River Barrow) - Athy(now River Barrow navigable in places) -  

 - Carlow - Leighlinbridge - Bagenalstown - Graiguenamanagh - St. Mullins, Co. Carlow

end near New Ross where Nore and Barrow meet

149km


https://my.viewranger.com/places/ie/celbridge-walks

a couple of grand canal walks


https://threerockbooks.com/cycling-barrow-way/


https://swordscc.com/2020/07/grand-canal-barrow-way-cycle

Short description of a two day trip: Grand canal at Goldenbridge, Drimnagh, Dublin - Robertstown start of Barrow way - Monasterevin - Graiguenamanagh - Barrow way ending at St. Mullins. 14 hours and 200km to New Ross. Next day New ross to Dublin by roads.


https://rotharroutes.com/tag/the-barrow-way/page/2/

lush photos and drone  tagged the barrow way



My previous routes, loops to royal canal at Leixlip:

https://my.viewranger.com/route/details/MzE4NzU2NQ==

63km Sandyford to Leixlip cycle route rivers/canals

https://my.viewranger.com/route/details/MzE4NzczOQ==

64km Same route except via Hayden's Lane and Griffeen valley park skipping Lucan

July 2020 ? Jan 2020?

https://my.viewranger.com/track/details/MTUwNzIyNDI=

track.


https://my.viewranger.com/track/details/MTk0MDQzMjE=

22 May 2021 136km bigish cycle royal and grand canals Kildare Mountain Biking

https://my.viewranger.com/track/details/MTk0MjM0MTk=

23 May 2021 55km to hazelhatch on grand canal, and back



Other stuff TODO

http://barrowvalleyactivitieshub.ie/cycling-trails/

Cycling trails around Kilkenny, Thomastown, Graiguenamanagh

Looks like fun

Country roads though.

Sharing roads with cars in alot of places I think probably not cycles for novices.


https://my.viewranger.com/route/details/MjU5MDk3Mw==

hike in Slieve Blooms, source of the Barrow


Sunday, 29 August 2021

What's that weed/wildflower? Tall small pink flowers, red blush on stem/leaves/roots. Easy to pull. American Willowherb.

In the garden in Dublin and Limerick.

Very easy to weed out.

Plants from 20cm to maybe 50cm tall.

Small pink flowers, red blush on stem/leaves/roots. Red nodules on roots. Cottony fluff on seeds.

Flowers in little funnel with have 10 petals, light yellow on inside.









Found it here first:

https://www.teagasc.ie/media/website/crops/horticulture/vegetables/Illustrated_Guide_to_Horticultural_Weeds_2020.pdf

American Willowherb - Epilobium ciliatum

"an immigrant from across the Atlantic that took big time to its new abode. It was first recorded in 1958 in Arklow but wasn’t until the 1980’s that it started to spread. It’s now found in all corners of the Irish countryside."

Interesting. Another willowherb.

Ireland https://maps.biodiversityireland.ie/Species/41421

Finland https://luontoportti.com/en/t/1046/american-willowherb

UK https://www.naturespot.org.uk/species/american-willowherb

Looks quite like this one: http://www.gardenwithoutdoors.org.uk/weed_guide#short-fruited_willowherb


http://www.wildflowersofireland.net/plant_detail.php?id_flower=583&Wildflower=Willowherb,%20American

http://www.irishwildflowers.ie/pages/195a.html

https://wildflowerfinder.org.uk/Flowers/W/Willowherb(American)/Willowherb(American).htm







Thursday, 10 June 2021

dlrcoco play space consultation

 


https://dlrcoco.citizenspace.com/parks/dlr-playspace-policy-2021/consultation/

6. Have you a particular interest in play & playspaces?

My children are older now (youngest 16) but we still play/exercise! :) We are involved with scouts so we are interested in outdoor play spaces for running games and activities and more.

I like play myself. :-)

Play, mental and physical, is important for people of all ages to keep active and to keep physically and mentally healthy.


7. What is your ambition for play provision in the county?

What is your ambition for play provision in the county?

Lots of availability of play spaces. 

Safe from traffic. 

Integrated with housing/building/green spaces.

Natural play - green areas, trees, bushes, rocks, streams, even walls/building ruins are more important than playground objects.


8. What was/is your experience of play now/when you were a child?

I grew up on a farm with loads of opportunity for play. Woods nearby. Quarry. Tree climbing. Treehouse. Stream (loads of play building dams on stream). Garden with lots of climbing/hiding/open spaces. Plants. Insects. Animals. Straw bale sheds - lots of building. Buildings and roofs to climb on! Tools - able to make things from wood & metal. Not far also from the sea (at the back of the island in Cobh).

When I went into 6th class santa brought a bike. I was allowed to bike to primary school. I cycled into secondary school and scouts and other things from about 3rd year (hills, a bit more than 3 miles). It was a huge thing being able to cycle and get myself to activities. 

We also helped on farm of course. Which is sort of another type of play. Dairy farm. Milking cows. Driving tractors. Gardening. Concrete mixing/floor/wall/roof construction. Picking/processing daffodil flowers & bulbs. 

NOW: the farm environment is missing. Some play is done at home or very close to home on green area outside. But to play "properly" one generally needs to travel further to a location away from houses. Play for me now is: scouts(camping, hiking, skills, ...all sorts!), mountainbike and cycling, visiting parks/museums/theatre,  sometimes swimming, sailing, adventure sports.


9. How do/did you rate your play opportunities now/when you were a child?

A farm is an amazing place for playing. Very hard to beat it. Excellent for younger and older kids. More limited opportunity for meeting friends.

In Dublin, especially for younger kids, there less opportunity for wide/outdoor play but more opportunities for visiting friends. 


In Dublin there is alot of vehicle traffic and it's not safe for younger kids to travel too far.

There are some green spaces with grass/bushes/trees but it's much more limited.

You can travel into the city to see some cool things like canals, surfdock, interesting buildings. Travel to beach. Travel to go along dodder or up ticknock.


For our kids we have a nice green opposite our house with grass, bushes, a playground and MUGA which was good for heading out and meeting friends. Kids very often went to other friends houses to play (whereas I as a kid would almost never have gone into friends houses). 

Now (as an adult) we have cool places close by like Ticknock for hike or biking. Down to Dun Laoghaire to the sea. Green in front of house, village centres, various parks around. Fernhill. Also new style of parks around apartments like in Belarmine, Clay farm have nice areas to relax or exercise or play in.  

I can travel much further to dublin/wicklow hills, to sea, to city centre of course as an adult as can our teenage and adult kids. 


10. Where are/were your favourite places to play/visit?

WERE and still ARE:

The woods.

The stream.

The sea.

Countryside.

Town urban spaces, museums, culture, things ....


ARE:

Most recently in Dublin for hiking and some mountain-bike cycling:

All of the dublin hills from Fernhill up to Ticknock close by across Kilmashogue, Larch Hill scouts, Tibradden, Hellfire, over to Bohernabreena. And back along to Carrickgollogan lead mines and down to Shankhill. Bray head. Bray. Wicklow mountains and lakes especially Lough Dan again with the scouts or river near Crone woods.


All over Dublin for cycling but especially: local cycles along patches of quieter greenway routes(e.g. Belarmine, clay farm, tully, lead mines), Dodder greenway, down to Blackrock and Dun Laoghaire Seapoint for swim & lunch. Occasionally sailing or very rarely now windsurfing. Along the dodder into town. Various places in town. Out both canals. Out to Dollymount, Howth and further North along cycleways.


The Sandyford Ind. Est. has some interesting areas mix of scupltures, some trees, some grassy spaces for relaxing or playing on bikes or other things.  The Sandyford Business Park also has nice areas and even nicer green spaces however the security guards discourage people from going in sometimes!


I and family walk or cycle quite alot to visit places and avoid the use of the car alot. Public transport is used a bit. Car parking can really spoil places like Tibradden, Cruagh, Ticknock, even up by Blue light, or down at Marlay park and down in Dun Laoghaire all around but especially at 40 foot. 


It's silly driving to a place to exercise if you could walk or cycle there on a pleasant route and get even more exercise in! However there is a patchwork of routes now, the routes are not joined up yet and you still have to be an experienced cyclist to manage any routes. They are gradually getting a bit better. Alot more work needed but some good  progress has been made.

  

_I_ can travel anywhere. However my adult and nearly adult daughters cannot travel quite so easily.


11. Please provide any other submissions/ observations with regard to dlr Playspace Policy 2021

Any new apartment or housing development keep trees, integrate trees bushes rocks streams ponds areas in safe traffic free areas among the housing. This works well in Belarmine, in Clay farm. Take opportunities to make spaces like this in older housing areas e.g. closing quieter roads to traffic and planting could make mini play/park areas in existing older housing estates.


Make the most of interesting buildings and structures in dlrcoco.

E.g. fully pedestrianised spaces are great for play.

Half pedestrianised spaces are more pleasant to be but don't really work for more active play.

There are some fully pedestrianised spaces but they're a bit limited in many places in dlrcoco.


Make opportunities for play like in countryside or on a farm: 

Wide play opportunities, not just fields for soccer/GAA. e.g. rough woods, bushes, rocks, mixed environment, walls, buildings are good for wide play. Water running through or ponds in is great fun.  e.g. Fernhill park open fields fun, could add a few more bushes/rocks to make more interesting. 


Make it more community gardens or allotments, even urban farms like Airfield. There is play in the gardening and farming itself and lots of opportunities to play in the environment.


Make even more of the sea. Support swim/sailing/kayak/boating/surf clubs especially with places to keep gear.