in reply to Re^5: locating ultima thule
in thread locating ultima thule
What it showed was that the content was populated. What was causing the entire template to go wonky was that there were more files in rus_captions than in eng_captions or images. I filled undefined things with bubble gum and just got them on the net. Most of the complaining is about not being able to sftp non-existent files. I wanted to come up with some baseline defaults so that the whole page doesn't go down for lack of an image to stand in for a while.
I've gotten rid of a lot of mistakes as I dug my way back into this one. The first was not having brackets around my qw in the initialization of the array:
elt 0 0 is й elt 0 1 is elt 0 2 is elt 0 3 is л elt 0 4 is elt 0 5 is elt 0 6 is с elt 0 7 is elt 0 8 is Can't use string ("о") as an ARRAY ref while "strict refs" in us +e at template_stuff/utils1.pm line 61. $
I don't see a way to use Dumper and have that the be cyrillic, because that's what I want to see. I use Dumper for doing anything to get on the scoreboard. (Not such a high price, except that you condemn yourself to read a lot of your own data: uggh)
I've been trying to write a better print_aoa_utf8 but have only partial success. Partially, my data set needed more conditioning. The hardest thing for me to represent like this is a space.
in make russian xword------ elt 0 0 is й elt 0 1 is elt 0 2 is elt 0 3 is л elt 0 4 is elt 0 5 is elt 0 6 is с elt 0 7 is elt 0 8 is elt 1 0 is о elt 1 1 is б elt 1 2 is л elt 1 3 is о elt 1 4 is м elt 1 5 is о elt 1 6 is в elt 1 7 is ' elt 1 8 is ' elt 1 9 is ш elt 2 0 is 1 elt 2 1 is 2 elt 2 2 is 3 elt 2 3 is 4 elt 2 4 is 5 elt 2 5 is 6 elt 2 6 is 7 elt 2 7 is 8 elt 2 8 is 9 return1 is nothing nyet
What I have is:
sub print_aoa_utf8 { use warnings; use 5.011; use utf8; # a la François use open OUT => ':encoding(utf8)'; use open ':std'; my $a = shift; my @AoA = @$a; for my $i ( 0 .. $#AoA ) { my $aref = $AoA[$i]; for my $j ( 0 .. $#{$aref} ) { print "elt $i $j is $AoA[$i][$j]\n"; } } return $a; }
With my difficulties getting any values initialized. I wonder how I might make it a matter of course and think that a toolkit solution would be a reasonable goal, in particular because I want to have a means for considering fonts, and we saw a tk version of trying out different fonts not long ago.
I had to make sure that all previous russian captions were erased before I went and got more:
print "Make rus captions(y/n)?: "; my $prompt1 = <STDIN>; chomp $prompt1; if ( $prompt1 eq ( "y" | "Y" ) ) { ## delete existing files foreach my $child ( $vars{rus_captions}->children ) { my $success = $child->remove; say "success deleting was $success"; } my $ref_cap = make_russian_captions($rvars); }
STDOUT then shows:
Make rus captions(y/n)?: y success deleting was 1 success deleting was 1 success deleting was 1 success deleting was 1 matching are a.txt b.txt rus_munge is /home/bob/2.scripts/pages/7.cw/template_stuff/translation +s/trans.07-01-2019-16-15-08.txt rus_path is /home/bob/2.scripts/pages/7.cw/template_stuff/ruscaptions/ +a.txt rus_path is /home/bob/2.scripts/pages/7.cw/template_stuff/ruscaptions/ +b.txt
And I figured all this out by looking at the data as haukex suggested. I've had a nice few days coding that reduces the ugly, but not completely.
sub make_russian_crossword { use 5.011; use warnings; use POSIX qw(strftime); use Path::Tiny; use Encode; use open OUT => ':encoding(UTF-8)', ':std'; use Data::Dumper; my $rvars = shift; my %vars = %$rvars; my $munge = strftime( "p%d-%m-%Y-%H-%M-%S\.txt", localtime); my $in_path = path( $vars{rus_captions}, $munge )->touchpath; ##Let mother know that you created a file, *verb* a reference: $vars{log_file}=$in_path; $rvars = \%vars; #does this line do anything for me? # open file for writing # my $fh = path($in_path)->openw_utf8; not helping say "in make russian xword------"; my $data = $vars{cw_data}; #print Dumper $data; print_aoa_utf8($data); #print $fh $data; my $a = $data; my @AoA = @$a; for my $i ( 0 .. $#AoA ) { my $aref = $AoA[$i]; for my $j ( 0 .. $#{$aref} ) { "$AoA[$i][$j]"; } print "\n"; } # ->append_utf8(@data); return "nothing nyet" }
Does the 3rd line here do anything for me or the program?
##Let mother know that you created a file, *verb* a reference: $vars{log_file}=$in_path; $rvars = \%vars; #does this line do anything for me?
What I'm reaching for at the end is a control that will go over the array, which can be seen as a column vector of row vectors. I want to iterate over the columns and print out one row at time, with no spaces and a newline at the end. Fishing for notation as to how to do that. With the output as a series of outputs of row vectors, then I think it will fit in well with the Path::Tiny method call append_utf8(@data). Then we can see how these things look on the net. Right now, it's looking pretty stable: crossword prototype shaping up.
Again, very grateful for comments,
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^7: locating ultima thule
by haukex (Archbishop) on Jan 08, 2019 at 09:01 UTC | |
by Aldebaran (Curate) on Jan 09, 2019 at 01:56 UTC | |
|
Re^7: locating ultima thule
by Anonymous Monk on Jan 08, 2019 at 08:37 UTC |