@
This logfile begins at a crucial turning-point in the development of the project. This visual appearance is an HTML approximation of the prompt and VI environment that were used. This is intended to give the reader the experience of themselves being at the prompt. We are together at the prompt and this is OUR project. Some attempts work as intended, others fail and are abandoned but, One Thing Is For Certain, God-willing(SWT), This Project Must Succeed...
@
@
@
1
BEGINNING OF LOGFILE
2
3
4
5
2024_05_May_30_Thursday_22_30_44
6
7
Must press 'shift-G' to get to the end of the logfile and begin writing. Maybe it's better to just use 'cat' to view the most recent entry into the logfile. Maybe call it 'logview'.
8
9
So, I finally wrote up a couple of scripts to make an improved working structure for myself. It probably makes good sense to have a backup script and a revert script in the working directory. This will keep me from all of the messy backups I have been doing, with the directory structure becoming unwieldy. With that way, there was no good way of keeping track of where I had left off or what I was working on last.
10
11
I started saving a 'startfile' to home before finishing every night but, that was insufficient.
12
13
Much better to have a backup script handy that will make a new directory up, shelf the old one, copy everything up to a new directory named with ranked date-time and put me into that one. If I am trying a script that I am unsure of, I have the revert script to get back to the preceding directory with it's contents and an then run the backup script again... essentially reverting. I only couldn't determine yet how to rename the abandoned directory appended '_reverted'.
14
15
So, now back to the task of wrangling the ids into a ranked format that will be a more universal representation of the structure as 1, 2, or 3 dimensional. That is, the first part of the name being a reference to the 'level', the next part being a reference to the 'row', and the last part being a reference to the 'column'. The final digit could refer to the component.
16
17
[1-5][1-5][1-5][a-y]
18
19
I expect the next part of my process to be writing up one of each button and its associated div. Key those up. Then Key those up into the array of five. Key that up into the five rows which complete one level... finishing up the structure from there.
20
21
Each individual part gets a span wrap, each row gets a wrap and each level gets a wrap. Then it will need spaces for the swaps and shifts.
22
23
In-shallah this will all work itself out... I seem to be picking up the pace as I progress through this project. I am seeing the necessity of using the prompt. vi doesn't seem to cover scale. It's good for a one off as a mockup but, then we just return to the prompt. Too much specific entry results in error and inconsistency that is more challenging and less reliable in the context of subsequent manipulations.
24
25
It's getting late and I'm looking at shutting this down for the night. Maybe I'll start it up again tomorrow.
26
27
28
29
2024_05_May_30_Thursday_23_07_16
30
31
Now I have just thought... maybe there is a way to view the last entry to the log using 'cat' at the prompt. It will need to check the line numbers or some such thing. As it is: It puts the ranked date-time, a few blank lines before the new entry and then we have the entry starting into vi with the whole file... maybe not the best approach.
32
33
34
35
* 2024_05_May_30_Thursday_23_32_16 *
36
**************************************
37
38
39
Now I am just testing out whether I have the hang of how to even make this logging script function. If this gets successfully into the log, then viewing the last log entry is only one script away!
40
41
42
43
* 2024_05_May_30_Thursday_23_42_13 *
44
**************************************
45
46
47
... seems I am producing some unexplained jibberish at the prompt in my attempt... not sure why yet
48
49
50
51
**************************************
52
* 2024_05_May_30_Thursday_23_49_16 *
53
**************************************
54
55
56
Now I just need to look up how to enter vi in insert mode... that would finish this out.
57
58
59
60
**************************************
61
* 2024_05_May_30_Thursday_23_55_06 *
62
**************************************
63
64
okay... not quite there yet... need to finish by putting an initial command being 'i'
65
66
67
68
**************************************
69
* 2024_05_May_30_Thursday_23_56_23 *
70
**************************************
71
72
73
74
75
76
**************************************
77
* 2024_05_May_30_Thursday_23_58_26 *
78
**************************************
79
80
/home/emptyFile/workingDirectory/2024_05_May_30_Thursday_22_24_31
81
that seems rather useful... maybe a bit more on the format.. give us one more newline here.
82
83
84
85
**************************************
86
* 2024_05_May_30_Thursday_23_59_36 *
87
**************************************
88
89
/home/emptyFile/workingDirectory/2024_05_May_30_Thursday_22_24_31
90
91
Yes, this is quite good now, we have the working directory name. As the directory changes, the log will maintain which notes were made in relation to which directory. We can also see, effectively, how log I have been working in that directory before the log entry is made.
92
93
94
95
**************************************
96
* 2024_05_May_31_Friday_00_11_23 *
97
**************************************
98
99
/home/emptyFile/work/2024_05_May_31_Friday_00_10_57
100
101
All functioning up to snuff. Shutting down for the night.
102
103
104
105
**************************************
106
* 2024_05_May_31_Friday_09_23_33 *
107
**************************************
108
109
/home/emptyFile/work/2024_05_May_31_Friday_00_10_57
110
111
I have now loaded the latest file into the telephone, that way I can run through the checks while I travel on the bus to the noon-time prayer.
112
This is so much further along than it was even just last friday, when I thought my progress was good and uploaded it.
113
114
I still haven't keyed it for the translations, which seems like the best approach. Much better than arranging the lines for 'paste'. The necessary operation will only be to perform a search and replace. No need to set offsets for an impossibility shuffle. Although, the task might be to make a script up that will name the keys and then check that each one is not in the document before proceeding with the key installation. The keys should themselves be named for the locations of their input. Hence, my restructuring of the id naming in the base document.
115
116
Best to get that out of the way right off of the top before proceeding. It seems that I have the major functionalities chosen but, it's difficult to know whether other possibilities will become apparent. Re-evalution happens as the project moves along. It's interesting how the two dimensional 'rubix-cube'-like game I was earlier imagining is very much what this data will require. So, the whole structure also lends itself nicely to doubling as an extremely intense game of 'three-dimensional mouse-and-cheese'. It is essentially the same thing with our data-squares. We need to figure out how to get the 'mouse' to where the 'cheese' is without our actions resulting in any hazards.
117
118
Maybe it should be 'mouse-and-cheese' with cat-hazards! Yes!
119
120
Obviously, if we use the specific select, we can easily send the mouse and cheese to adjacent squares. So, for the game, we will need to turn off some of the functionalities which would ruin the game. Of course, I am only just dreaming. The data manipulations will need to be worked out first.
121
122
Next to that, there needs to be a method of accepting a file as input, and a method of exporting a file that can be again used as an input into the same structure. This will need to be some kind of formatted list of values.
123
124
For me, first the bath... then the bus.
125
126
127
128
**************************************
129
2024_05_May_31_Friday_18_36_17
130
**************************************
131
132
/home/emptyFile/work/2024_05_May_31_Friday_00_10_57
133
134
What a great thing beginning this logfile.
135
136
I was going along today on the bus and, as I have done in the last few friday bus-rides, I have done my error checking in the file. This time was good. I was able to find four issues. Both of them should be easily fixed. The first one that I noticed was that the selections were not cleared using the button in level five while the Vcol option was chosen. All other levels were functioning as expected. This should not be any difficulty to fix.
137
138
The other issues found were all related to the first button on the first level, the one which used to be the intake area. I suppose I have overlooked the micro options for this one tab only.
139
140
All together this was a successful error checking. I went through each button one by one and checked that they are each functioning. I checked the individual select using vcol on every button, and the clearings. Basically the entirety of the individual select functionality was check, and was successful.
141
142
So, now I will try what I can to remedy these minor issued before sundown.
143
144
145
146
**************************************
147
2024_05_May_31_Friday_19_01_54
148
**************************************
149
150
/home/emptyFile/work/2024_05_May_31_Friday_00_10_57
151
152
That was quick and easy, just how I would prefer. The most important work on this project is yet to come.
153
154
There are some customizations that I would like to include. The user should be able to select the height of the button faces. That way if they prefer to have more area to put information there for their own reasons... then they can! It might even be good if there was a way to choose the font sizes for all aspects. I'm not sure how to get all of the customization possibilities packed into there but, shouldn't the user be able to select the color of the button and the tab?
155
156
Further, there should be given a toggle for various aspects... one of which might be to toggle tab opening. This would facilitate the selection of the data-blocks for the purpose of moving things about through the given methods. That way the tabs don't keep popping open when all you want to do is shift things around. Presumptively, the user will know what the data that is contained in their sets are, so toggling button opening should not present any major hinderance.
157
158
In my view, and in-shallah, there should be a way to swap to selected rows, selected columns, or selected individual blocks. There should also be an operation that will allow the user to select any number of rows and move them to the top. Likewise for columns or individual blocks.
159
160
An example would be that the user could select five individual blocks and the be able to move them together to the top of the data list, into the first row. Through this we can see that any translation of the data is possible. I am fully aware that even the individual select option is redundant as it is already essentially covered by the row and column selection which make all translations fully possible. The individual selct is just easier to think about, and it is more user friendly for that reason. I see no reason to have extremely mathematical sounding options, when the same operation can easily be regarded as something far more understandable and natural.
161
162
AND OR and NOT just don't have the same popularity. People don't know what those computery-mathematical terms mean. Really, it means nothing to most people. It's much easier to convey what an operation is by just saying that we are moving one thing to another place. Just leave the computer-math jargon to the geeks. Programming is in its last days anyhow. If we somehow think that programming will go on forever writing all the same codes thousands of times to do all of the same operations in all of the same programs, we just aren't paying attention. The name of the game is copying. We only needed to write it correctly once. Just as well, why not give the programming away to undercut the last hold-outs who are tyrannically withholding functionality that has been available for twenty years and is well known.
163
164
Tell me again how javascript is not safe and how my data can be accessed through it while the supposedly legitimate ones have been accessing all of those things against my wishes for a very long time. All they do is protect their racket while they tell you that they are protecting you and your privacy. What a sham.
165
166
167
168
**************************************
169
2024_06_June_01_Saturday_21_56_34
170
**************************************
171
172
/home/emptyFile/work/2024_06_June_01_Saturday_21_56_26
173
174
Wow... I was on a bit of a tangent there on friday. So, now in light of the short javascript book I have read the majority of, with all of it's irksome language and tell about the 'powerful' nature of whatever it goes on about... The entire book could likely have been summarized in a single page in a tabular format of some kind. All the same, I have revised my mind's view of how to proceed in relation to this 'data-cube'-like format that I have been slowly working towards completing.
175
176
The question, truly, is what direction to take the final product. What will be it's form. How does that differ from the current format. The current format, after all, is under development, and should really be regarded as a work in progress, at an 'in-between' stage. Essentially, at this stage we have five layers each with a five-by-five square of articles. So, all together, 125 individual articles. 25 per layer, 5 per row, 5 per column.
177
178
It seems practical to change to a format where only the 25 articles of one layer are visible at a time. For this to be the case, we will need at least one button, which could cycle between the layers. Also there could be two buttons, cycling left and right. There also could be five, each selecting a single layer explicitly. These are the possibilities.
179
180
Also, I am considering that there must be at least two separate modes. One such mode will be for viewing the contents the tabs. In this mode we can open the tabs and view and edit the contents specifically if we wish. This is a good option if we are not concerned with moving the tabs around or copying or pasting the entire tabs, etc. Another mode could be for 'shuffling' the tabs around. In this mode, the tabs will not open. The mode will facilitate moving the tabs by viewing the button-faces only. We need to move single tabs left, right, up, down. We need to move rows up, down. And, we need to move columns left, right.
181
182
Also, maybe we need to be able to select a single tab, a row, or a column, and then paste a copy after it. Or maybe copy the whole thing to a buffer and then allow it to be pasted in... not sure what the best way of doing this is.
183
184
The example of language translation for the purpose of email and html files is probably the route that I will keep with as the pattern.
185
For that use, we will want to be able to produce either a single tab and then copy it to the entire array, for use against the entire array worth of languages. Or we might want to have five files and copy then that whole row to fill the entire structure for translation into 25 languages of the five documents. Or we might want to have 25 files and copy that down into the other layers to have the 25 file go into 5 languages.
186
187
If this is the case, then it should be easier to restrict my efforts toward accomplishing this, and tailoring it toward those end-usages. So, then the real challenge will be determining how to add the data to each tab that will indicate the filename, language code and the heading, all of the information except for the file input.
188
189
As always, too many options is not a good thing, the program becomes too complicated for the user to manage. It needs to have a 'least set' of understandable options and operations that should be able to accomplish the most typical tasks. Even right now it seems like it might be too complicated.
190
191
192
193
**************************************
194
2024_06_June_01_Saturday_23_33_20
195
**************************************
196
197
/home/emptyFile/work/2024_06_June_01_Saturday_21_56_26
198
199
All work for another day.
200
201
202
203
**************************************
204
2024_06_June_02_Sunday_18_49_48
205
**************************************
206
207
/home/emptyFile/work/2024_06_June_02_Sunday_18_49_36
208
209
210
Wow, it's so much easier now to back-up all of the work effectively before attempting a potentially destructive change. The other alternative, which I may attempt eventually, is to check all of my changes with sed before continuing with them. But, if i can just back everything up. Then the processes is easy. I can just see if everything looks destroyed or not.
211
212
213
214
**************************************
215
2024_06_June_02_Sunday_19_57_57
216
**************************************
217
218
/home/emptyFile/work/2024_06_June_02_Sunday_19_30_33
219
220
The buttonFace functions seem to be working... haven't tested them against translation yet... The returned innerHTML appears to be bracketed with 'undefinedundefined'... not sure why yet. Now must re-inspect function codes.
221
222
223
224
**************************************
225
2024_06_June_02_Sunday_20_05_28
226
**************************************
227
228
/home/emptyFile/work/2024_06_June_02_Sunday_19_59_21
229
230
I'm starting to think that maybe there is a limit to the text size. Some kind of minimum. It wouldn't make sense to have no minimum. Maybe this is the source of my problem. The translation of the button faces never happens... What could be wrong?
231
232
233
234
**************************************
235
2024_06_June_02_Sunday_20_09_14
236
**************************************
237
238
/home/emptyFile/work/2024_06_June_02_Sunday_19_59_21
239
240
Success! The translation worked at a ten times larger font size... now I need to check this against a larger file size. The 175kb jungyulkim.html should do the test just fine.
241
242
243
244
**************************************
245
2024_06_June_02_Sunday_20_53_55
246
**************************************
247
248
/home/emptyFile/work/2024_06_June_02_Sunday_19_59_21
249
250
It saves it with no problem... seems to be working fine... when I use the main save to save the whole webpage, that seems to make a very bad problem with the whole file... Not sure it is worth investigating the cause.
251
252
Also, there may be a maximum size for the message input in a mailto link. The 150 such kb file may be too large. It goes through when not translated, but fails when translated to assamese. Not sure why. Maybe I should try a smaller language.
253
254
255
256
**************************************
257
2024_06_June_02_Sunday_21_22_05
258
**************************************
259
260
/home/emptyFile/work/2024_06_June_02_Sunday_19_59_21
261
262
Somehow the solution to the doulble undefined became clear... I had called my own function incorrectly. So, that bit is fixed... The reason that I can't translate my entire other website from it's location on the button's face might be due to an issue with that file itself. Maybe it is containing errors or open divs. Who knows. Other files seem to work... I will leave it in the code as an option with a warning.
263
264
I was able to succeed in crashing the browser on my phone while only trying to load five of that website... so, the limitation might be there. How can anyone tell. The limit might be determined by individual hardware. I could see using this as an app on a desktop computer. Just leave it open in the corner and drag and drop the info into it. Maybe it's best to completely abandon this new and amusing technology. Then again, one thing that it can probably be used for is to use the browser's 'find' function and apply it to all of the tabs.
265
266
That was already the primary reason to use this. If I just disable the part that is no good... then maybe it's not such a bad thing. Then I will need to test the 'find' ability... turn-off the bad part, keep the good part.
267
268
269
270
**************************************
271
2024_06_June_03_Monday_06_18_39
272
**************************************
273
274
/home/emptyFile/work/2024_06_June_03_Monday_06_18_34
275
276
I have just now realized that the button faces have 'translate' set to 'no'. I'm not sure how to resolve this conflict, because clearly I want the information on the buttons to be translated for the purpose of the button-face function. I do also want the button faces not to be translated normally. I could wrap them on the way in if I don't want them to be translated... That would double the process. It would be another add-on to what is becoming a fatter and fatter code. This file is getting so big, it's already bigger than one megabyte, and that's not even including the language information.
277
278
279
280
**************************************
281
2024_06_June_03_Monday_06_38_19
282
**************************************
283
284
/home/emptyFile/work/2024_06_June_03_Monday_06_18_34
285
286
Here's what I tried on the command line:
287
288
sed -n /"bn-[a-y][1-5]"/ p dcv.html | cat -n;
289
290
It's a good thing that I had it set up the way it is. My button names are all a sequence. a1, a2 through 5 then the letters go to y.
291
Now I'm thinking to name a div that will hold a span which will have the translate="no" attribute. I will use DivIntoDiv, a function, to transfer the contents. Then I will use DivIntoDiv again to transfer the contents of the outer div to the button's div. At that point it should be wrapped. Should I just use a div instead of a span?... I'll try a span first. Then I will also remove the translate="no" from the button.
292
293
sed -i /"bn-[a-y][1-5]"/s/'a[ab]-[a-y][1-5]',/& 'translateWrap', '', ''); DivIntoDiv('divTranslateWrap',/g dcv.html
294
295
296
297
**************************************
298
2024_06_June_03_Monday_06_54_19
299
**************************************
300
301
/home/emptyFile/work/2024_06_June_03_Monday_06_43_51
302
303
Great, now I just need to make the div that I had planned, and it should all be good to go for a test.
304
305
306
307
308
**************************************
309
2024_06_June_03_Monday_06_57_03
310
**************************************
311
312
/home/emptyFile/work/2024_06_June_03_Monday_06_43_51
313
314
315
$(sed -i "/\"bn-[a-y][1-5]\"/s/a[ab]-[a-y][1-5],/& translateWrap, , ); DivIntoDiv(divTranslateWrap,/g" dcv.html)
316
317
Now I'm just trying to get a handle on how I might combine the history function of the shell to enhance my note-taking through use of this log.
318
319
320
321
**************************************
322
2024_06_June_03_Monday_07_02_09
323
**************************************
324
325
/home/emptyFile/work/2024_06_June_03_Monday_06_43_51
326
327
This seems to have done the trick and, though I had doubts, 'button-face' translation technology may prove useful. Truly, if you had this available, and it worked fast, you would just always use it. There is basically no way of validating the results during the process. You just assume that it takes place, and everything goes to plan. We are now truly testing the limitations of how much text processing of this kind our browser and our device can actually handle. With this, we are maximizing our processing machinery to do one thing: translation.
328
329
330
331
**************************************
332
2024_06_June_03_Monday_07_52_23
333
**************************************
334
335
/home/emptyFile/work/2024_06_June_03_Monday_07_49_59
336
337
Well, that was short-lived... I have considered my error just there. All of those spans will have the same id name... that's no good. Maybe I can wrap the parts using the DivIntoDiv function. Maybe first I will try just one.
338
339
Good thing that I made up that script to effect an easy reversion to the previous file-set. I only need to type '. ./revert' and I am back to the previous set. If I take the time, I should really set up a second step back, which will effectively allow any number of steps backward in reversion.
340
341
342
343
**************************************
344
2024_06_June_03_Monday_08_19_58
345
**************************************
346
347
/home/emptyFile/work/2024_06_June_03_Monday_08_19_55
348
349
350
looks like the only thing left is to do the exact same change for the titleBlock... That is getting translated, of course. Yes, I was able to finish this out by just using the '.firstChild.innerHTML' instead so that I won't need to reference an id name.
351
352
353
354
**************************************
355
2024_06_June_03_Monday_08_21_39
356
**************************************
357
358
/home/emptyFile/work/2024_06_June_03_Monday_08_19_55
359
360
So, on the schedule, in-shallah, I will be able to get a second reversion script set up. Also, it would be even nicer if I was always working in a directory that maintains the same name. Then again, maybe it's better the way I have it now, and just build in a second reversion which will bring be back twice. That way I can go back easily as far as I wish without having to type all of the date info into it.
361
362
363
364
**************************************
365
2024_06_June_03_Monday_11_19_48
366
**************************************
367
368
/home/emptyFile/work/2024_06_June_03_Monday_11_19_45
369
370
So, I have returned home now with oatmeal sugar and cinnamon. I recall needing to change one more reference, the one that I missed before. I am starting now to re-evaluate how each tab operates. Presently, each tab has it's own button and function call which takes what is in the intake area and copies it into the tab. It is good that this is on the side with the tab. This should be easy to duplicate. I am starting to wonder about what the best arrangement will be in regard to the other tabs. There are five per row so, it might be best to have a button and function call per row. The job of that function call will be to copy the contents of the first tab in the row to the other four tabs in the row. Each row could be set up like this. Whether the button is visible is not important at this point. If it is done this way, we will only need to know the name of the first tab in the row, and then the name of the button. Or maybe the button copies from the intake tab and puts that into the entire row. Then we only need to know the name of the button. There should also, maybe, be a way to copy the entire row back into the intake area. We already have a button to copy each tab back into the intake tab.
371
372
Should each tab have a way to open a file into it? It would reduce the number of steps required of the user... Right?
373
374
375
376
**************************************
377
2024_06_June_03_Monday_14_01_03
378
**************************************
379
380
/home/emptyFile/work/2024_06_June_03_Monday_11_19_45
381
382
I need to wrangle the clearing buttons from the corners of each layer and put them into functions or some such thing.
383
384
385
386
**************************************
387
2024_06_June_04_Tuesday_18_39_06
388
**************************************
389
390
/home/emptyFile/work/2024_06_June_04_Tuesday_15_11_01
391
392
393
Good progress happening today after a bit of a slow start. I was struggling to find motivation and also struggling to comprehend the design of what I have assembled here. In-shallah the format will make sense. It is very minimal. No shifting, just swapping of two. This does allow all changes. I now need to assemble a way for pasting a whole row. This must be done at the shell prompt, as most things need to be. There are just too many repetitions necessary for other methods. Basically, what we have is a worksheet where we can rearrange the blocks but, we cannot view the inside of them. We can copy them in, and now I need to assemble the instructions for copying in one row at a time. Then, also for copying in all 25 at once. After finishing this, I will need to assemble the code to paste them back out, 1, 5, or 25.
394
395
Now, I need to keep going and, In-shallah, this will succeed.
396
397
398
399
**************************************
400
2024_06_June_04_Tuesday_23_23_27
401
**************************************
402
403
/home/emptyFile/work/2024_06_June_04_Tuesday_20_06_35
404
405
Everything is going smoothly. There has been good progress. It seems like it needs to all be assembled carefully in sequence. It's a good thing I have that backup built already, and the revert. I have used that frequently, and I have no reason not to take chances with whatever scripts I run in the shell. The risk is now zero. I can always revert if everything starts looking broken.
406
407
408
409
**************************************
410
2024_06_June_05_Wednesday_04_26_17
411
**************************************
412
413
/home/emptyFile/work/2024_06_June_05_Wednesday_04_26_13
414
415
All has gone quite well this morning, we can now copy 1 or copy 5 into the workspace. We still need to copy 25 but, that shouldn't take too much more work to get completed. Then, now that things can be copied in easily, we need to paste them back out again. That will complete those functions. In-shallah this will not be too difficult for me.
416
417
I am not a computer programmer, so I can only keep working my way through this process slowly. I'm at the point now where I must write all new components using the shell. Secondarily I add a few bits of code with vi. I've tried plenty of things that wouldn't work.
418
419
Slowly, I am beginning to get a handle on what won't work and why. In-shallah everything goes well today... Now for a morning nap.
420
421
422
423
**************************************
424
2024_06_June_05_Wednesday_11_38_20
425
**************************************
426
427
/home/emptyFile/work/2024_06_June_05_Wednesday_04_26_13
428
429
430
Yes, I guess that's what happens when you stay up too late... you sleep into the middle of the day. Now, I'm looking at a mess of preparatory files that I had assembled in the shell. It's good that I had dealt with the id naming structure before working through these functions. I'm not sure it would have been so easy if I had not done that first. It's much easier to assemble the functions when you can define the things you are referring to with two 'for' loops.
431
432
I just made up a file that gives the grid, with all the basic names. I keep reusing that part: Very useful. Why rebuild that every time? There should be some way of setting the color of each block. Right now, the color information travel with the block as you move it. To me this seems like the correct approach. This acts as an indicator for the user. They will visually know that the move has taken place without having to inspect the writing on the face of the buttons.
433
434
Now for my attempt at copying 25 into the workgrid. Or maybe I should rather work on the pasting out.
435
436
437
438
**************************************
439
2024_06_June_05_Wednesday_12_43_11
440
**************************************
441
442
/home/emptyFile/work/2024_06_June_05_Wednesday_11_48_06
443
444
445
Not sure why my brain is stalling me sometimes... it should be easy to do the 25 copy... it just uses the row copiers that I have already made up. Right?
446
447
448
449
450
**************************************
451
2024_06_June_05_Wednesday_15_08_51
452
**************************************
453
454
/home/emptyFile/work/2024_06_June_05_Wednesday_15_02_24
455
456
After making several attempts, I have succeeded in doing a paste1 function. This allows the user to paste the one item back into the grid of datablocks. It was a funny thing, and I am not sure what I wrote wrong on the command line: It seemed that I was writing everything to each area, then it looked like I had fixed it, and I tried it again with the same bad result... So, one more try and it succeeded.
457
458
It's one of those things where, you look at it and it seems okay but, there is some horrible flaw lurking. Good thing I have the backup and reversion scripts. I don't ever need to discover what went wrong. It just matters that it went eventually.
459
460
461
462
**************************************
463
2024_06_June_05_Wednesday_15_12_48
464
**************************************
465
466
/home/emptyFile/work/2024_06_June_05_Wednesday_15_02_24
467
468
469
Now I need to see if it can do paste5. Then, on to paste25.
470
471
472
473
**************************************
474
2024_06_June_05_Wednesday_15_39_10
475
**************************************
476
477
/home/emptyFile/work/2024_06_June_05_Wednesday_15_36_17
478
479
480
Yes, pasting is basically an exact duplicate of the copying function... clearly they could have been together with an 'if'-statement that would check the status of the button colorings that control their working.
481
482
No time for that now! I will instead just install the function calls to each button... From the shell of course. It shouldn't be too much trouble to get that little bit in there. Each button is named 'bn-[a-y][1-5]' so I will only need to use 'sed' to get to that specific line and then input the correct function call.
483
484
for k in {a..y}; do for j in {1..5}; do sed -i "/id=.bn-"$k$j"./s/onclick=./&pasteRow"$k"(); /g"; done; done
485
486
Does that seem like it'll work?
487
488
489
490
**************************************
491
2024_06_June_05_Wednesday_15_47_20
492
**************************************
493
494
/home/emptyFile/work/2024_06_June_05_Wednesday_15_46_03
495
496
497
Seems like I was missing one little thing... the filename!
498
499
for k in {a..y}; do for j in {1..5}; do sed -i "/id=.bn-"$k$j"./s/onclick=./&pasteRow"$k"(); /g" dcv.html; done; done
500
501
502
503
**************************************
504
2024_06_June_05_Wednesday_16_24_11
505
**************************************
506
507
/home/emptyFile/work/2024_06_June_05_Wednesday_15_46_03
508
509
That all worked out good. Ultimately, it was necessary to simulate a click on the top yellow buttons, the ones above the first row. Doing this in sequence allowed the pasteRow[a-y] functions to be almost identical to their sister copyRow[a-y] functions.
510
511
Now I need to install the paste25['one'-'five'] function calls.
512
The functions were once again, the same as the sister copy functions.
513
514
515
516
**************************************
517
2024_06_June_05_Wednesday_18_23_43
518
**************************************
519
520
/home/emptyFile/work/2024_06_June_05_Wednesday_18_23_40
521
522
So, those all worked out well, and we are now 'operational' as it were.
523
That is, we now have a basic functionality within the program. We can save files, we can open files in, we can move things around. We only don't have a way to save the data from the program into files that can be 'imported' later. This might be a crucial aspect. Importing and exporting.
524
525
That will be for another day. Just now, I will wrangle the button layout that is controlling the workspace that has just been assembled... mostly assembled anyhow.
526
527
528
529
**************************************
530
2024_06_June_06_Thursday_01_22_15
531
**************************************
532
533
/home/emptyFile/work/2024_06_June_06_Thursday_00_58_12
534
535
Put a new few peices of code together just now. Can duplicate the first item into the first row. Now can also duplicate the first row down through the workspace grid. Also, any block in the grid can be swapped with the first block by touching it. This gives the complete control over reorganization of the information blocks at the block level.
536
537
Next, it will be important to have a way to paste only select components. This will require a selection panel and then also many 'if' statements that rely on the checkboxes that are in the selection panel. This will allow specific data entry for things like the button name only, or the file component only, or simply the color only. Of course, you could make a selection of any or all of the components to make the input with. Then, pasting the entire grid of 25 squares will effect a data overlay. Depending on the user, this will be seen as absolutely necessary to effectively manipulate their data. It might be best, once it is functioning correctly, that the color be used as an indicator for the pasting process.
538
539
Clearly there will need to be a way of re-setting the color in the grid to some standard gradients or two color checker patterns. Obviously the user could leave a grid layer open for making up their own patterns. Whether it be a color pattern, or a data pattern. The color is a good visual idicator and organizational tool.
540
541
542
543
**************************************
544
2024_06_June_06_Thursday_09_35_01
545
**************************************
546
547
/home/emptyFile/work/2024_06_June_06_Thursday_01_30_36
548
549
Yes, another late night there... What can I do, and when I woke up this morning, finally I am think about the columns...
550
551
What about the columns of data? Don't we need to access those as well? And what about the 'vertical-columns'? For example, what if we want to select the same single datablock across all layers? Or the same row across all layers? or the same column? Or, what if we want to apply a full-grid overlay across all layers? Presently, we would need to switch between the layers and manually apply each change. So:
552
553
Press the layer button, Apply the same change.
554
Press the layer button, Apply the same change.
555
Press the layer button, Apply the same change.
556
Press the layer button, Apply the same change.
557
Press the layer button, Apply the same change.
558
559
Somehow, that doesn't seem appealing.
560
But, on the other hand, adding too much to the program might make it too complicated for the average user. We might end up with too many options, and where some of the options apply changes to data that is not visible to the user.
561
562
Still, I have a feeling that the inclusion of this functionality is crucial. How else would you easily be able to access a single data item across all layers?
563
564
Including all of the same operations for columns means having two modes: Row-mode and Column-Mode. This would completely confuse the layout.
565
566
This is really a crossroads that I have reached on this issue. If I don't include it now, I will be building the follow-up 'if-statements' without it... it will be more difficult to include them afterwards.
567
568
So, what do I need?
569
570
I NEED A BRANCH. A programming 'branch'.
571
If I make my branch at this point, I will be making two versions... one with columns, and one without.
572
573
It may be well enough that I have here identified the location of a potential 'branch'.
574
575
Now, just thinking on it, my inclination is to proceed without a second mode. There will not be a separate 'column-mode' occupying the same space accessible through a switch. Instead there will be a 'VCOL' option menu that will be initially closed. It will open to three options:
576
577
Option One: A single block insertion across all layers.
578
Option Two: A row insertion across all layers.
579
Option Three: A full grid insertion across all layers.
580
581
This is the path and premises upon which I will now proceed in the 'main-branch'.
582
583
584
585
**************************************
586
2024_06_June_06_Thursday_10_21_12
587
**************************************
588
589
/home/emptyFile/work/2024_06_June_06_Thursday_10_21_02
590
591
I guess that branch indication is a 'midnight-branch'.
592
593
594
595
**************************************
596
2024_06_June_06_Thursday_20_21_54
597
**************************************
598
599
/home/emptyFile/work/2024_06_June_06_Thursday_20_19_59
600
601
So far today I have fixed the coloration problem, I've completely changed my mind again with regard to the issue of covering off column entry and copying and pasting them... It's not that hard. I'm gonna just do it. If I don't like it I'll just make that part hidden or some such.
602
603
I have just now installed some id names to the intake buttons in each dataBlock. This way I can use my clk() function to click each button and that way I can automate the process of loading in just the file.
604
605
I have relocated the mailStack portion of the program and tracked down a few bugs in relation to that. I still haven't gotten around to installing an 'applesauce' indicator in each dataBlock for the purpose of checking whether translation has taken place. This could be used visually by the user to see that translation has been completed by the browser. Alternatively it could be used by an automated process and check according to some timeframe.
606
607
608
609
**************************************
610
2024_06_June_07_Friday_04_59_47
611
**************************************
612
613
/home/emptyFile/work/2024_06_June_07_Friday_04_51_56
614
615
It's keyed up for languages now... wow, once the language names are inside of there it really looks like something. I can impagine using them to produce and overlay to set up a 5 by 25 translation. If only I can finish up with that bit that will allow specific selection of the inputs. We need to be able to choose which inputs we are making, and which ones we are not. This way, we can really manipulate the data to however we like it to be. And, YES, there will need to be column pasting, and column copying. I haven't gotten to that just yet. It doesn't seem like such a big problem. I just need to write all of the same code as for the copying. Each column on each 25 layer gets it's own function. Then we need the associated 'if' statements that will handle it based on mutually excluding toggles.
616
617
I just finished up using it already to make the translation of the language names.
618
619
I'll have to re-build the set-up for the translation of the entire website using the browser. That gives a good universality. Once you have the file... You don't need the website anymore, the file should be independent. The user truly becomes the owner, and there is no cost to that person at any time.
620
621
That's how software should be, and it should come fully loaded with all sorts of good templates.
622
623
624
625
**************************************
626
2024_06_June_07_Friday_09_11_13
627
**************************************
628
629
/home/emptyFile/work/2024_06_June_07_Friday_07_55_50
630
631
All went well with the 'keying' of the program. I made keywords for each language location before writing a script that would assemble them into the files. More accurately, I used the shell to make keywords for each location, and then wrote a script that wrote another script that tells the shell to do all of the assembly for all of the keywords. This installs all 125 language names into all 125 files. It took my machine here maybe 10 minutes to do that. The only way to make it quicker would be to use the line numbers directly. But... then I wouldn't be able to freely re-write whatever I wish.
632
633
So, long story short: I decided, just now, to try uploading only the single file and the assembly script. Approximately 2MB size. So, first I put that one there. Easily done. So, the strategy I am attempting is to run the script on the server... It's still working on it while I am writing this now.
634
635
So, this way, when I want to do an update, I can just use the same 'keyed' file and the run that script again when I upload the new file. It's the names of the 125 languages in each of the 125 languages that I am installing into the file. I haven't keyed the portion that is the notes or instructions for the use of the website.
636
637
.... I guess there's no real way for me to know if the connection has frozen ...
638
639
The comparison here will be that, to upload 125 separate files, already assembled... Their size would be about 1.5MB each... so we are looking at approximately 180MB for an upload.
640
641
Not sure how that would figure in time difference. The time it would take to upload that from my poor connection could be quite a wait...
642
643
On the other hand... this shell script is taking it's time...
644
645
So, from the two files that I have uploaded: 'dcv.html' and 'script', all I needed to do was to put them into 'public_html', then I needed to get the terminal. From the terminal I carefully typed 'cd public_html' to get to the directory where the two files are. Then I typed 'chmod 755 script; ./script', that should cover me if I needed to set permission for the script to execute. And now the waiting. Not sure whether anything is really happening.
646
647
It's interesting that, I only began to write this logfile at the same time that the most interesting and productive work was happening. So, it will seem somewhat condensed. I had been working out some of the fundamentals for more than a month. I had also been working on learning the 'bash shell' with it's various utilities. 'sed' is a pretty important one, but I am also using 'tr' 'cut' 'paste'. It really has been an advantage to become familiar with several of those little programs. They are the helpful ones, the ones that do just one thing...
648
649
650
IT DID IT! Now I have to check.
651
652
653
654
**************************************
655
2024_06_June_07_Friday_09_30_44
656
**************************************
657
658
/home/emptyFile/work/2024_06_June_07_Friday_07_55_50
659
660
661
Looks like I can't get the English language version because the old version is cached...
662
663
Just imagine that!
664
665
666
667
**************************************
668
2024_06_June_07_Friday_09_39_09
669
**************************************
670
671
/home/emptyFile/work/2024_06_June_07_Friday_07_55_50
672
673
I'm not even quite sure what to do for my debugging run this week. Try all of the buttons? I did that last week. It's just so complicated now. I wonder what debugging method I can do. I know that there are three buttons that take you to nothing. They all needed to be re-written. Now, after I upload this, that's when I think about it. The main bit is functional, with the mailstack and the re-arrangable dataBlocks. The only thing is that you can't yet do the selective pasting in of data components. I just didn't think there would be time to do it.
674
675
I guess the other test... whether I can come up with some ideas to make some test. The one test is whether it is possible to operate this system on a bumpy busride. I think it might be okay... we'll soon see.
676
677
Well, here I go... Need to take my bath and head out by bus to the Friday prayer.
678
679
In-shallah everything goes well and I continue to advance in this website's construction.
680
681
File-size is more of a concern now that it was before.
682
683
684
685
**************************************
686
2024_06_June_09_Sunday_05_25_11
687
**************************************
688
689
/home/emptyFile/work/2024_06_June_09_Sunday_05_25_05
690
691
After going through some testing on the bus-ride on friday, I noticed that it was a bit slow. What I tested was the working of the translation. I used this log-file to test it. I translated this log into all 125 of the languages that are installed. The translations were successful. Of course, none of that relies on the code from this little program.
692
693
It did seem to slow down a bit, and I did crash it using the 'button-face' function. I saved the file with all of the copies loaded into every tab, observing the 7 - 8 MB filesize. This is large. So, I have a concern about the size.
694
695
The test I was doing would related to what I would call a '1 into 125' translation. I used only 1 file, and I was intending to translate it into 125 different languages. The solution that has come to my mind, in-shallah it will help, is to only load the file into one place at a time. That is, do not load the file, which is the subject of the translation, into all locations at the same time.
696
697
Most likely it is better to do this sequentially and build it into the process.
698
699
So, prospectively we will get three options for the sequential operation. There will need to be a brief menu for 'translation'. It will give three options: '1 into 125', '5 into 25', or '25 into 5'. These correspond to the size and shape of the data-grid layout.
700
701
702
The other thing that I found and am now considering to change, which should be easily done, is the border of each button. The button should have a 'ridge' border, not just plain with nothing. The way that it currently is, you can't even see that the two blocks are separate if they are the same color. Then the border of a selected block will need to be colored white. That will help, I think.
703
704
705
706
**************************************
707
2024_06_June_09_Sunday_16_28_42
708
**************************************
709
710
/home/emptyFile/work/2024_06_June_09_Sunday_16_28_35
711
712
Ran into a bit of a snag, lost concentration...
713
714
I changed my mind one way, and then changed my mind back. So, I wanted to remove some feature, I thought that was making the entire thing too slow. Then I tried it on the other phone.
715
716
It seems fine. The speed or capability might be hardware dependant. That's okay, it's always like that... as long as it can do most functions for general use.
717
718
Depending on individual hardware, it might be best to use certain features on a laptop or desktop computer. That will, of course work.
719
720
721
722
**************************************
723
2024_06_June_09_Sunday_16_33_05
724
**************************************
725
726
/home/emptyFile/work/2024_06_June_09_Sunday_16_32_49
727
728
I have cleared the directory of that horrible mess, and am now ready to move on to the issue of pasting columns... we can now copy columns without difficulty into the workspace, but, now we need to be able to paste them back out... etc.
729
730
It shouldn't be much trouble. As long as I don't start messing about with something unrelated and then have lunch and forget about everything...
731
732
733
734
**************************************
735
2024_06_June_09_Sunday_16_37_47
736
**************************************
737
738
/home/emptyFile/work/2024_06_June_09_Sunday_16_32_49
739
740
I guess another interesting thing that happened there was that I inadvertently created an endless loop using a 'vi' macro... I knew it right away when it happened. I just started trying various key combinations attempting to abort it... It aborted... then I have to 'undo' my way out of it. Weird.
741
742
743
744
**************************************
745
2024_06_June_09_Sunday_17_49_10
746
**************************************
747
748
/home/emptyFile/work/2024_06_June_09_Sunday_17_13_40
749
750
I was really considering just writing up a function to hack my way out of this one sticky issue... why was the '1' button coming on always after copying a column into the workspace?
751
752
Really I had no idea... so, when I checked it... I looked closely and saw it...
753
754
It said 'nset'...
755
756
It's supposed to say 'unset'! 'UN'!
757
758
No wonder now why it was not working as expected...
759
760
761
762
**************************************
763
2024_06_June_09_Sunday_21_29_03
764
**************************************
765
766
/home/emptyFile/work/2024_06_June_09_Sunday_20_32_05
767
768
Having success again here... I never thought I could ever do any of this computering work but, it seems that it has been made easy for me.
769
770
Now I just need to sort out a few simple things... then this pasting will be finished out. I will then need to begin dealing with the 'paste menu' where the user will be able to select which data will be pasted, and which will not be pasted. This is a very important aspect. Without this selection, we would have to do all of those individual selections. This is not necessary, In-shallah this will be easy for me to configure.
771
772
Many 'if' statements.. Many many
773
774
775
776
**************************************
777
2024_06_June_10_Monday_00_12_45
778
**************************************
779
780
/home/emptyFile/work/2024_06_June_10_Monday_00_12_42
781
782
This has gone quite smoothly... Finishing out that 'paste', after what became a bit of a fiasco, was not all that difficult. I only needed to put a few 'if' statements into the 'paste1' function and that pretty much finished it out. I did add a special function that would do the pasting for the workspace to ensure no loss of data in that place. It still accepts all of the data into the workspace, it only pastes out according to what is selected. I feel that the colors are a good indicator to always use... that way you can actually see that there has been a transfer. It will be up to the user to do this or not.
783
784
The last thing to do with these squares is to finish out with the 'vcol' aspect. This aspect will allow the user to put information into the same dataBlock in all layers at the same time. Either it can be done with a row selection, column selection, or with a complete selection. This will be a full data overlay. It will still be only in two dimensions. We won't copy in all of those dimensions, we will only paste out in that way.
785
786
Essentially the copying functions will stay the same. It is the pasting functions that will need to deal with the new aspect.
787
788
Somehow the only use I can imagine for this feature is to use a single dataBlock that will be in all layers. Or a row, or a column. I don't see copying out a square from a row or column as being particularly useful for the purpose of a language translation functionality. It seems that it would only confuse what are otherwise relevant functionalities. No sense clogging everything, and taking up space with jibberish.
789
790
I really can't see how it could be relevant. I suppose you could pull out a 25 by 25 grid of data in a unique way but, you would only be able to inspect it's contents if you were to paste it back in, as the workspace, at present, only allows a limited view of the contents of the dataBlocks. You can see three peices of information only. The titleBlock, the filename, and the language Code. The subject line, the email addresses, and the message/file, are all hidden. They can only be viewed in 'view mode'.
791
792
If I do make 'vcol' into all that it could be... there will always be those people who had 'vcol' turned on and didn't realize it and didn't know why everything was acting funny the whole time, and didn't even know that was unusual. They won't even realize that they are using a totally inhibited device.
793
794
Then again, we could make it so that 'vcol' turns off after every use. You would need to press it again for each usage. Maybe you should be able to use it for it's more obscure capability. You would be able to pull out a slice of 25 peices of data and inspect them in a way that would otherwise require you to flip back and forth between all layers. You would also be able then to insert data in three dimensions, which would be a very high customization... not sure to what purpose this could be put. I suppose if a person knew all 125 peices of data well enough, this method could be relevant. It would depend greatly on the capability of their hardware.
795
796
I suppose one trial I could run is to put something of significant size into each dataBlock and then test it out for speed with what I have so far.
797
798
799
800
**************************************
801
2024_06_June_10_Monday_08_48_17
802
**************************************
803
804
/home/emptyFile/work/2024_06_June_10_Monday_00_39_09
805
806
My first inclination relating to the implementation of what will be called 'vcol' in the website:
807
808
I should make it so that it uses only one item, and it will put that single item, whichever data is selected in the 'paste menu', it should put that into the selected dataBlock and the other four dataBlocks that are in the same location in the other layers. This will allow you to do a 'pinpoint' drop of information to that location. Depending on the arrangment that you are working with, this will be exactly what is needed to run a good email program. If the 25 dataBlocks are representing 'email', and then maybe the five layers are representing language, and maybe within the 25, we are representing when the mailout is scheduled for. It is then clear that we can pinpoint and change the email message of any day's mailout. The layer of 25 could be a weekday planner for the mailouts spanning an entire month.
809
810
Alternatively, there could be an arrangement of the emails into 'mailing groups'. So, we might be alerting one group of something specific to that group's information. A sports group is a good example. If we are sending out email to organize a jogging group, that would be one group. Another group maybe doesn't like jogging, they instead like bicycle pedalling. So then we have two groups, one for bicycling and one for jogging. These both get separate email information, or we use the keywords to put their specific information along with the general email message.
811
812
The possibilities are up to the user. There are many ways to promote islam. Communication and having social groups is very important to community and a sense of community among people. This is where having the multi-language email sending is very important. That way, the person receiving the email will be able to read and know immediately what the designated group is having planned as events, or as open invitations. The only thing we would need is to know what language the recipient prefers, then we can easily send emails out to that language group.
813
814
815
816
**************************************
817
2024_06_June_10_Monday_10_20_43
818
**************************************
819
820
/home/emptyFile/work/2024_06_June_10_Monday_10_09_08
821
822
823
Wow, I didn't know how easy this was going to be... I was able to write up a script in the shell that installed the function calls to each button, and at the same time it wrote up the functions to be called. That really made sense to do. If we already are using the names of the buttons... we just put in the completed requirements, and we then have the comprehesive result.
824
825
I guess I'll do 'break-time' now, and go for a short walk.
826
827
828
829
**************************************
830
2024_06_June_10_Monday_10_39_22
831
**************************************
832
833
/home/emptyFile/work/2024_06_June_10_Monday_10_09_08
834
835
Well, that was a good break... Now I can finalize the button layout for that section and give content to the descriptive help button. Then a next step to finish out that section would be to 'key-out' anything that is words or phrases so that I can use a script to insert the correct languages later. That way it can be universal. And when all of the sections are mostly complete, I can't neglect to add the section that will allow a complete translation of all of the website using the browser only. That will ensure that no matter what language version the user is able to access, they can always translate the entire website and save it in their own language. This is crucial and has been part of the design consideration from the beginning. I guess the one thing that I am seeing that is not quite in line with this is the international language code... they are in only one character set. This might not be the character set that the user is familiar with. So, that is why I have made it easy to just change those out.
836
837
For the purpose of indicating language in an HTML document, this has been the standard. Today, search engines are able to tell the language of a website without this declaration, which renders it antiquated or obsolete.
838
839
All the same, it is nice to have a short form so that we can see which data we would like to access. Really, I wish the whole filesystem was closer to this type of a layout. Our files would be presented in a tabular format. The filename could still be presented on the tabular format, and we could also have a short date-time indication if we wished.
840
841
There is an idea right there... we should have a button that will copy the current date-time info to the clipboard. Then we can paste it back into our document when we need it. A lot like this log does. It should happen automatically.
842
843
Then we are into a whole system on it's own, where the user can click the 'log' button and will begin into the log with the date-time stamp at the top.
844
845
846
847
**************************************
848
2024_06_June_10_Monday_11_00_13
849
**************************************
850
851
/home/emptyFile/work/2024_06_June_10_Monday_10_09_08
852
853
One problem I am seeing here is that if we paste over one color with another, How Do We Ever Get The Colors Back?
854
855
We can't do it. The colors are gone forever!
856
857
So, clearly, we need a way of resetting the colors back to the original gradients. It's a good thing that we have a 'clear' button inside of each tab with a backup of the original color and the original message that was inside of the tab. So... what I could do is make that 'clear' button also restore the color information back to the original settings for the tab. Then, I could make a function that will press all of those buttons sequentially, and that way it will reset all of the color informations.
858
859
860
861
862
**************************************
863
2024_06_June_10_Monday_15_19_48
864
**************************************
865
866
/home/emptyFile/work/2024_06_June_10_Monday_15_19_45
867
868
The project is at a good stage right now... it is ready to be used, although, I would not describe it as 'fully operational' yet. We need to be able to import and export a dataBlock or a complete grid of 25 dataBlocks.
869
870
This way layouts, templates and overlays can be shared easily with small file sizes. This way, collections of these things can be kept so that the user can switch them out easily to customize the usage of the website.
871
872
I think that the most suitable location for the importation of a file with either one or twenty-five dataBlock(s) will be through the workspace area via inputMode.
873
874
I have just now considered three more things to include in the input mode. They are simple and almost trivial but, why should we not have all of the things that could potentially save us time or frustration? I am now setting out to make three buttons. One will flip the workspace dataBlocks top-to-bottom, another will flip it left-to-right, and the third will invert it along the diagonal line. This gives us a quick, one-click solution to bring us those changes. Essentially, and it is obvious, that the inversion along the second diagonal will be complete by using the first inversion followed by doing the flips. I can't think what sequence exactly at the moment... I will know after I put it there... it will be obvious at that time. There should also be present somewhere a tab that is containing emptying information. So, when what you really want to do is clear out space, you can. I am also considering that we might want to have a color reset function for the workspace area, along with the same for the entire array of dataBlocks, either individually or by rows, or columns, or layers. That would be for the best, and it would solve our problem of the colors becoming lost by copying over them.
875
876
877
878
**************************************
879
2024_06_June_10_Monday_19_32_50
880
**************************************
881
882
/home/emptyFile/work/2024_06_June_10_Monday_19_32_47
883
884
I'm getting some kind of mental block happening to me just now. The thing is just so fascinating it's difficult not to just start tinkering with it. I did find a couple of minor programatical 'bugs' by doing that. So, it is not without any benefit.
885
886
887
888
**************************************
889
2024_06_June_11_Tuesday_09_41_53
890
**************************************
891
892
/home/emptyFile/work/2024_06_June_11_Tuesday_00_23_10
893
894
I think I need to make a short list of things to finish up the work in the 'inputMode' area.
895
I suppose that will be part of the direction I will take.
896
I think that I need to have the import/export worked out too.
897
Maybe that is the first thing I'll try to figure out.
898
899
I'll need to choose a filename extension. I have been thinking maybe it should be '.dcv'
900
901
902
903
**************************************
904
2024_06_June_11_Tuesday_23_48_14
905
**************************************
906
907
/home/emptyFile/work/2024_06_June_11_Tuesday_23_48_11
908
909
Two crucial idea have come to me which I feel need to be followed.
910
911
One: The onboard templates should give various font/background color combinations for all data locations. One should give font color with no declared background. The other should give font color with matched colored border. Another should give colored font withing background color. All need to have editable content with 'width: 100%' so that they can't get erased once installed.
912
913
The other thing that I have just now considered, and must clearly implement is to have the keywords switched upon paste, which is not yet happening. The keywords would only, given the current arrangement, be switched out if the file data is loaded through the intake area. It would be a much greater convinience if the the keywords would be applied no matter what route the file travels through. Pasting the file is the ablsolute best method for applying the file component to the dataBlocks. I am also considering that all 125 dataBlocks could have the same keyword capabilities. That way, each dataBlock would have the same functionalities. This way there is no reason to retain the first 25 dataBlocks for special use-cases.
914
915
Now I need to consider the feasibility of doing this. How easy will it be for me to transform what is currently there into this more capable format? In-shallah it will be easy. I am not a computer programmer. I am not even an amateur. I only pursue this for practical purposes, ... In-shallah this will answer my prayers for help.
916
917
918
919
**************************************
920
2024_06_June_12_Wednesday_00_06_42
921
**************************************
922
923
/home/emptyFile/work/2024_06_June_11_Tuesday_23_48_11
924
925
Can this be THAT EASY? All pasting functions refer back to 'paste1'. They all use the same method. So, I am trying the minimal change. The paste item will be sent to the intake area. Then there will be a simulated click of the button inside the tab where the file is going to be. This should accomplish this goal.
926
927
Now I will try to make it happen using the shell.
928
929
930
931
**************************************
932
2024_06_June_12_Wednesday_00_14_08
933
**************************************
934
935
/home/emptyFile/work/2024_06_June_12_Wednesday_00_09_07
936
937
SUCCESS!
938
939
It worked... that was so easy, I thought it would be impossibly difficult.
940
2113 vi dcv.html
941
2114 . ./log
942
2115 . ./backup
943
2116 sed -n '/id=.bn-[a-y][1-5]./ p' dcv.html
944
2117 sed -n '/id=.bn-[a-y][1-5]./ p' dcv.html | cat -n
945
2118 sed -i '/id=.bn-[a-y][1-5]./s/az-/open-/' dcv.html
946
2119 sed -n '/id=.bn-[a-y][1-5]./ p' dcv.html | cat -n
947
2120 . ./log
948
2121 history | tail
949
2122 history | tail >> ../logfile
950
951
952
953
**************************************
954
2024_06_June_12_Wednesday_00_15_29
955
**************************************
956
957
/home/emptyFile/work/2024_06_June_12_Wednesday_00_09_07
958
959
How can the most useful things be the easiest, while nonsense like 'color-scheme' are the most time-consuming? It seems I am spending more time on deciding what the visual appearance will be that working out any of the functional components. What were the other things I was saying to work on?
960
961
Oh, yes! I should put the keywords into every dataBlock. Maybe it's better to sleep at this reasonable hour...
962
963
964
965
**************************************
966
2024_06_June_12_Wednesday_04_15_14
967
**************************************
968
969
/home/emptyFile/work/2024_06_June_12_Wednesday_00_25_26
970
971
Now to investigate this situation of keywords, and to, In-shallah, install them to everywhere. Also, the other data, aside from the designate 'keywords' should also be possible to insert in replacement for keywords.
972
973
974
975
**************************************
976
2024_06_June_12_Wednesday_05_42_56
977
**************************************
978
979
/home/emptyFile/work/2024_06_June_12_Wednesday_05_42_53
980
981
THAT WORKED?
982
983
Somehow again it has been easy. I had a bit of a stumble, and was wondering why I was putting the same line in and doubling it. No need to figure out why... Whatever I eventually wrote succeeded. Now, I am wondering how it can be made so that we can install the keywords through the same copy and pasting system that is already working for everything else. Without being able to copy and paste the keyword-replacements into the dataBlocks, the entire keyword system seems somewhat 'disabled'. We would need to write each keyword in individually. Data entry is the most boring thing that anyone can do, and the potential for mistakes is high. It is best, and I can certainly imaging the uses for this. For example, if you would like to add in, using keywords, the dates and times of event, or special news, you could always do that by using the keywords. Further to this, all of the information should have keywords... not only the six designated keywords... but also the other 5 peices of data should also be having their own keyword. This way it is fully functional using keywords for everything we are looking at in each dataBlock.
984
985
Yes. This seems like a good outlook for the next upgrade to this project.
986
987
In-shallah this will be possible and easy to implement.
988
989
990
991
**************************************
992
2024_06_June_12_Wednesday_09_25_31
993
**************************************
994
995
/home/emptyFile/work/2024_06_June_12_Wednesday_09_25_27
996
997
I am just now looking at the project and thinking... It is ready to have part of the interface 'float'.
998
999
This would, of course be a dramatic improvement but, we should still make the floating menu optional. For certain usages, we might not want that menu to float. One example would be if we are using this webpage from a desktop computer. We might just open the entire webpage in a tall window. Floating would be useless to us in that case, and we would prefer the menu to be in the center as originally designed.
1000
1001
inputMode is a special scenario, where the layout does not change size because of open tabs, which are variable.
1002
1003
1004
1005
**************************************
1006
2024_06_June_12_Wednesday_10_10_12
1007
**************************************
1008
1009
/home/emptyFile/work/2024_06_June_12_Wednesday_10_10_08
1010
1011
This seems like a significant aspect... the copy and paste menu now floats. This is a good thing. It save time. BUT... it leads naturally into a re-evaluation of that area. Clearly the two possible phone orientations need to be considered. The menu system might need to be duplicated for the purpose of accomplishing this. Then we can have a menu that will be suitable for each orientation.
1012
1013
The strange thing which I have considered is the menu heirarchy. Somehow it seems logical and correct in my mind that the higher ranking menus should remain on the highest part of the screen... but then, here is the trouble with that. They will always be there! I don't want that. I want the higher ranking menus to be accessible through scrolling in the lowest ranking space.
1014
1015
To me that makes the most sense. If they are positioned incorrectly, that would clog the screen with menu items, providing a 'quick access' to the higher ranking menus. It would be like jumping in a tree, which, analogously, is not recommended.
1016
1017
1018
1019
**************************************
1020
2024_06_June_12_Wednesday_10_17_32
1021
**************************************
1022
1023
/home/emptyFile/work/2024_06_June_12_Wednesday_10_10_08
1024
1025
I feel strongly inclined toward leaving this change in the menu system to the last. I feel like, considering it is a good thing, the functionalities in the input area are nearing what I would consider to be complete. I need to resist the temptation to take on another new task before the last few bits of the functionalities are finalized.
1026
1027
1028
1029
**************************************
1030
2024_06_June_12_Wednesday_15_09_01
1031
**************************************
1032
1033
/home/emptyFile/work/2024_06_June_12_Wednesday_15_05_27
1034
1035
We now have the keywords working by pasting in the subject line in addition to the file area.
1036
This is good progress. Now I am going out to the field to do work.
1037
1038
1039
1040
**************************************
1041
2024_06_June_12_Wednesday_17_48_11
1042
**************************************
1043
1044
/home/emptyFile/work/2024_06_June_12_Wednesday_15_10_06
1045
1046
Again I am thinking about additions to the same 'workspace' area. I am considering to make a 'swap and roll' type of system happenning between the portion of the workspace which is diplayed and the layer. This would be a good thing considering that it would not erase or replace any dataBlocks in either part of the program. It would only move them around. It would be a good way of easily moving dataBlocks from one layer to another. Or, for selecting a group of dataBlocks for the purpose of reorganization only, without over-writing or removing any of them.
1047
1048
It would be a lot like the copying function, and it will use almost identical code. But, it will do a copy and a paste in sequence. There will be two directions available, maybe through a toggle.
1049
1050
Just now thinking it over... it shouldn't be too difficult to implement. I have already assembled the functions of the workspace that can flip horizontally, flip vertically, and invert along one diagonal. I can just simulate a click of those buttons in sequence to get the result easily. I just need to write down what the correct sequence will be, and that will be the function. Then I just write a button that toggles it.
1051
1052
1053
1054
**************************************
1055
2024_06_June_13_Thursday_10_05_54
1056
**************************************
1057
1058
/home/emptyFile/work/2024_06_June_13_Thursday_09_16_10
1059
1060
It has become sort of complicated... not sure why. I think that I can 'cheat' some way of accomplishing the swapping function so that it will also work for rows and the full grid. Single swap works fine in forward and reverse. Now we just need to swap rows and the full grid.
1061
1062
In-shallah this will not be so difficult.
1063
1064
Next for me is the grocery store.
1065
1066
1067
1068
**************************************
1069
2024_06_June_13_Thursday_14_29_22
1070
**************************************
1071
1072
/home/emptyFile/work/2024_06_June_13_Thursday_13_58_18
1073
1074
After making a first attempt at implementing 'swapping' in addition to copying and pasting, I have now resolved to revert to before the attemp began. The reason is that the route through which I was attempting to accomplish this has become overcomplicated and unwieldy.
1075
1076
I should try again through some simpler method. One positive thing is that I have discovered that the row pasting operation was not using the right code to effect the switching of keywords. Good thing that I know that now so that I can fix that.
1077
1078
Now I revert to before beginning this.
1079
1080
1081
1082
**************************************
1083
2024_06_June_13_Thursday_14_32_40
1084
**************************************
1085
1086
/home/emptyFile/work/2024_06_June_13_Thursday_13_58_18
1087
1088
When was that? I need to consult the logfile.
1089
1090
/home/emptyFile/work/2024_06_June_12_Wednesday_15_10_06
1091
1092
1093
1094
**************************************
1095
2024_06_June_13_Thursday_18_09_22
1096
**************************************
1097
1098
/home/emptyFile/work/2024_06_June_13_Thursday_16_02_43
1099
1100
So... after the earlier failed attempt, I have resolved to try to accomplish this thing through a different strategy.
1101
1102
Using the button clicks... I have made a function that will successfully swap one dataBlock with the workspace dataBlock.
1103
1104
The question now is, what button sequence, using the buttons and functions that already exist, will swap an entire row? or the entire grid of 25? or an entire column?
1105
1106
This seems like a 'dumb' or 'simplistic' approach. I think it will work. Now I try...
1107
1108
1109
1110
**************************************
1111
2024_06_June_13_Thursday_22_27_49
1112
**************************************
1113
1114
/home/emptyFile/work/2024_06_June_13_Thursday_22_27_46
1115
1116
I am now seeing that it will be necessary to review the copy and paste buttons, and I should do this at the same time as putting the new 'swap' buttons. The idea that seems best is to have them switch out with three buttons 'c' 'v' and 's' above three buttons '1' '5' and '25'. Copy Blue. Paste Red. Swap Yellow.
1117
So, a small button grid, two rows, three columns.
1118
1119
1120
1121
**************************************
1122
2024_06_June_14_Friday_17_57_02
1123
**************************************
1124
1125
/home/emptyFile/work/2024_06_June_14_Friday_17_57_00
1126
1127
I have found two issues today on my bus-ride. They seem to be related to the recent change to the interface. The first issue that I have found is that the subject line and message areas do not paste through all layers using 'vcol'. They only paste to the visually selected layers... all other paste operations succeed.
1128
1129
The second issue is that 'copy25' seems to produce a duplication error in the top row. All other rows become shifted. Not sure what the root of this issue could be.
1130
1131
I will attempt to resolve these issues, and In-shallah it will not be difficult for me.
1132
1133
1134
1135
**************************************
1136
2024_06_June_14_Friday_18_10_20
1137
**************************************
1138
1139
/home/emptyFile/work/2024_06_June_14_Friday_17_57_00
1140
1141
That was not so difficult to fix that first one. 'vcol' now pastes the subject line and message, in that order. This is done after changing all of the keywords for their replacement values. The subject line itself has a keyword that can be used to insert it.
1142
1143
Now I need to check on the more serious issue, and, In-shallah it will be easy for me to fix. The 'copy25' function. Top row doubling for some reason.
1144
1145
1146
1147
**************************************
1148
2024_06_June_14_Friday_18_34_01
1149
**************************************
1150
1151
/home/emptyFile/work/2024_06_June_14_Friday_18_33_59
1152
1153
It is so good when something is resolved easily. There was no major problem, I just needed to look at the relevant functions and, I was able to determine that the problem was related to a condition of exclusive use. The condition was eliminated for whatever reason when I reconfigured the interface... yes, the thing that I had earlier written 'I will do that part last'. Instead, I have gone ahead with it. Once I tried the smallest bit, it seemed somewhat fascinating. I saw what a dramatic effect it had on the program. It is suddenly easy to choose any function and apply it from one screen. It really looks and feels like a computer program after that change.
1154
1155
Next on the agenda is to finish out the swap functions with a row swap, a column swap, and a full grid swap.
1156
1157
Another interesting thing that I have considered to change is a function that I had written early on. The function would update the button faces to reflect the change in the data that is made inside of the dataBlock and which is then displayed on the face. The bad thing, which I am now realizing the silliness of, is that it updates all 125 button-faces. So, when you want to update a button's face, you are updating 125. So... for the copy25one function, just as an example, you will update all 125 buttons... and this will be done 25 times. What is 125 times 25? Whatever it is, it is too much. The copy function has all of the information through it's arguments to update only the relevant buttons. So, this will be one job.
1158
1159
There are, of course, several other jobs still remaining.
1160
1161
One very important thing that I have considered just today is that there should be some way of handling a textual format, and bringing it into the program. It should be possible for the user to import data, maybe a mailing list, or other data. It should be possible to send such a mailing list through the email program itself. This will be a good thing to do.
1162
1163
Otherwise how will the user be able to have all of the same things like any of the 'social network' websites?
1164
1165
I am not sure yet whether I should leave the ability to have the mailto links made up with the innerHTML. Maybe it could be an option. My email program doesn't support it but, maybe there is an email program that will support HTML inside of the mailto link.
1166
1167
That would be very ultimate for this program, if it could also have HTML emails. Then all of that nice styling that everybody like to see would be available.
1168
1169
1170
1171
**************************************
1172
2024_06_June_14_Friday_19_41_12
1173
**************************************
1174
1175
/home/emptyFile/work/2024_06_June_14_Friday_18_46_52
1176
1177
Every time I start playing with this computer program, I am fascinated with it. It is hard to believe that it is doing what it does. The process was not one where I deliberately assembled a program with full knowledge of what was possible, neither was it one where I even knew what it would be the eventual result. The corrections, the format, the functionalities: these were all presented to me gradually, and the selections to be made became clear as the possibly arrangements began to narrow into the current result.
1178
1179
The path seems clear. The program needs to be an example of what is possible. It needs to have all of the functionalities that can be imagined for accomplishing tasks that would otherwise be difficult for an individual to do. We can't enter data specifically for evey single entry, that would take so much time. We can, instead, write out our basic email message once and then bring other aspects into a final result that is fitted and shaped to our intended recipient. The language translation is especially important, but, the keyword system is vital as well. The keywords allow us to add and match components to our recipient. The keywords could be used in a way as generic as entering a person's name into the message to give the appearance of personalization. This method is used by companies and political entities, etc. My view is that this is somewhat insulting: kind of a bad trick. The better use is to add real valuable content specific to a group. It will give the advantage, if a user is capable of using this, of reducing the workload on the person sending the emails. It's not for generic messages or 'fooling' people. The basic usage will be to allow the user who prepares the emails to prepare a large amount of possible components in advance. The components can then be 'switched-out'. This, In-shallah, will reduce the burden on that person and at the same time actually improve the quality of the content which is being sent.
1180
1181
The keyword system can allow the insertion of reference material that has already been prepared. We don't need to open each individual email to do this, we can simply structure our basic email such as to allow for the inclusion of the additional material. Certain information or references might be relevant to one emailing group and for another not as much. It could also be used to include information about the date and time of upcoming meetings or events. So, for Islamic newsletters, this really does make sense. We can have an emailing list, we can have the preferred languages making up one type of group, and then, of course, other groupings can become part of an arranged system. The columns, rows, and layers of the dataBlocks should facilitated the grouping of emails, and the subsequent customizations which can be updated at any time.
1182
1183
1184
1185
**************************************
1186
2024_06_June_14_Friday_20_30_12
1187
**************************************
1188
1189
/home/emptyFile/work/2024_06_June_14_Friday_18_46_52
1190
1191
1192
1193
1194
1195
**************************************
1196
2024_06_June_14_Friday_20_31_54
1197
**************************************
1198
1199
/home/emptyFile/work/2024_06_June_14_Friday_18_46_52
1200
1201
On further inspection... I had only resolved the issue for the function called 'copy25one'. Of course, it needed to be made the same for the other layers. All five now have the fix.
1202
1203
1204
1205
1206
**************************************
1207
2024_06_June_15_Saturday_21_56_22
1208
**************************************
1209
1210
/home/emptyFile/work/2024_06_June_14_Friday_20_32_52
1211
1212
So, we are now starting fresh after the sabbath. I am thinking it is best to round out the swap function so that it has a column and row swap, and a full grid swap, the same as 'copy' and 'paste' functions. This will bring a sense of unity. All of the three will have this in common. This should create a more 'user-friendly' environment.
1213
1214
The other thing that I need to finish out in that section is the floating workspace. It needs to be toggled from row to column by the same button that toggles those modes. Then there needs to also be given a way to toggle to single mode and full grid mode. Maybe these can all be on the same button but, then there is a cycle through four workspace layouts... that may be too many.
1215
1216
Another thing was the issue with the updateAll() function, which updates all 125 button faces. This can be easily changed to update the relevant button faces only. This should reduce unnecessary processing.
1217
1218
1219
1220
**************************************
1221
2024_06_June_16_Sunday_15_16_04
1222
**************************************
1223
1224
/home/emptyFile/work/2024_06_June_16_Sunday_15_16_02
1225
1226
I was beginning to think it was impossible to do these swaps... then, I thought... just use the clicks...
1227
Wow, so much easier than thinking about what complicated things the functions are doing. I instead just simulate the clicks I need to complete the swaps.
1228
1229
'Any way that works' should be the standard. I have no reason to think that one way is 'more correct'.
1230
1231
1232
1233
**************************************
1234
2024_06_June_16_Sunday_16_09_06
1235
**************************************
1236
1237
/home/emptyFile/work/2024_06_June_16_Sunday_15_40_35
1238
1239
Finally, I have gotten this nonsense done. The column and row swaps are now possible. They don't roll, they stay where they are, so they can easily be moved about in the layer.
1240
1241
The workspace is very much overlapping the view of the layer, so, it is not great to have them both open simultaneously and trying to work with both. As a consequence, having either the rowMode, or columnMode, is much better than the full workspace view.
1242
1243
1244
1245
**************************************
1246
2024_06_June_17_Monday_15_24_25
1247
**************************************
1248
1249
/home/emptyFile/work/2024_06_June_17_Monday_15_24_21
1250
1251
I started working on adding the keywords and replacements to the copied data... now I'm giving up because that seems like a lot of work. The keywords stuff can be transferred in some other way, maybe with the 'select-all' import-export.
1252
1253
Yes, there may be a second method of import export. That way the information can itself be sent through email and then imported back into the program using 'select all' and then pasting it into a textarea. Does that sound okay for the average user? With 'select-all' there should be no danger of corrupting the information. Then you would only need to paste it into the text area. Not much risk there either. Then it would be one button for the 'install'.
1254
1255
1256
1257
**************************************
1258
2024_06_June_17_Monday_16_13_30
1259
**************************************
1260
1261
/home/emptyFile/work/2024_06_June_17_Monday_15_51_14
1262
1263
I think a major issue of mine is and has always been boredom. I become bored with things easily and then want to abandon them for some other new, or seemingly more exciting thing.
1264
1265
I realize that the single swap feature doesn't 'roll' like how the single copy does. Also, the row swap and row copy doesn't roll. So, to get anything inside of the grid in that workspace, we need to do a 25 copy or 25 swap. We can manouvre things from that stage.
1266
1267
I have been looking at the full grid shift as a bit of a nuisance in an environment where there is, and will not be, a global 'undo' function.
1268
1269
Rolling in can be done for the row or column... for the purpose of the single swap. But then, to turn it on and off, you would need to either have a separate toggle... it seems like it might not be worth having. You can always swap in an entire row and change it around with the swaps in the workspace, where any dataBlock is easily swapped with the 'prime block'.
1270
1271
I have turned my attention to a different location for now. The keyword area is in need of some upgrading and finalizations. It needs to have a 'showhide', and another thing that would be handy would be a single button to update them into the message/file area. They should also get a button between them, to swap them back and forth, effectively offering an 'undo' after an update. These keywords are so very important to the program, they can even be used to enter HTML into the message/file area. That is soooo interesting! You could put anything into anywhere that way! Basically, you could set them up so that you can paste in something interesting into your message/file, like a link to another website! You could have it set up so that you will have the main bit of the HTML for the link already there ready to paste. Then you would just insert the copied link.
1272
1273
It would be like 'using HTML' while 'avoiding HTML'.
1274
1275
1276
1277
**************************************
1278
2024_06_June_17_Monday_18_53_13
1279
**************************************
1280
1281
/home/emptyFile/work/2024_06_June_17_Monday_18_53_10
1282
1283
I keep thinking about other interesting things and features to add in. The possibilities are really there. What an interesting range of possible inclusions. I guess most of what I have been thinking about is 'how do I make this more like vi'. 'vi' has a macro recorder. That's such a great feature. I have been using that instead of bothering myself to learn 'regular expressions' and the correct syntax for 'sed'.
1284
1285
It's definitely 'stupider' to use macros than it is to use 'sed. That's a good thing. I almost giggle when I am holding the shift key down and tapping the '@' symbol quickly... the whole time wondering 'where is that Homer Simpson dipping bird when you need it?'
1286
1287
Seriously: Is that a real thing?
1288
1289
1290
1291
**************************************
1292
2024_06_June_17_Monday_19_23_32
1293
**************************************
1294
1295
/home/emptyFile/work/2024_06_June_17_Monday_18_53_10
1296
1297
To do the same thing here, I could use the clicks, and make a click recorder to give a semblance of 'macros'. You could basically make up your own functions with that, then keep them inside of one of the dataBlocks. Let's face it, the program is so complicated right now, that is basically what I am doing anyhow.
1298
1299
To make this happen, I will need to replace any call to the 'clk' function with the entire 'onclick' from that button. This is possible, but it will inflate the size of the program. Maybe by a lot. Not sure yet. Then, hypothetically, I would make a function that every button would have which would append a 'clk' function call to a textarea and ultimately write up a function to call all of it, with a button to click to call it.
1300
1301
It just seems so dramatic and extreme. How can I resist? Such a macro could be used to do anything at all. It could be used to rearrange the dataBlocks, to update keys, to paste specific information into certain locations... A complete sequence. Ideally the button and the new script/function will be brought into a dataBlock in the message/file area.
1302
1303
How... HOW can i resist attempting this?
1304
1305
In-shallah.
1306
1307
1308
1309
**************************************
1310
2024_06_June_17_Monday_19_35_43
1311
**************************************
1312
1313
/home/emptyFile/work/2024_06_June_17_Monday_18_53_10
1314
1315
It seems there are 2972 calls to 'clk'... if I replace all of that with whatever the 'onclick' is... that might be huge...
1316
1317
Okay... forgetting about it... forgetting...
1318
1319
1320
1321
**************************************
1322
2024_06_June_17_Monday_20_42_42
1323
**************************************
1324
1325
/home/emptyFile/work/2024_06_June_17_Monday_20_42_39
1326
1327
I just realized... it saves a lot of time if I just key in the repeats before using the macros. Downside: that can mess things up really really fast.
1328
1329
1330
1331
**************************************
1332
2024_06_June_18_Tuesday_01_13_49
1333
**************************************
1334
1335
/home/emptyFile/work/2024_06_June_18_Tuesday_01_13_45
1336
1337
Now, I have finished the mailStack auto functions... a good group, 18 options in all. 'stack & burn' is a good option for when you want to keep it light. It might be the only option for someone with hardware limitations. It loads the message/file from intake, then does the mailStackHTML, then clears the message/file area. This way it doesn't leave anything in there using up valuable memory or computering power.
1338
1339
The other ones are good if you had a whole bunch of stuff set up and it was all different.
1340
1341
The mailStack that is accessible through every dataBlock is best for where you want to do a translation sequence. That has to be managed somewhat 'manually', which is necessary because of the switching of the languages through the browser anyhow. So, for that you will need to monitor and manage your own process either way. I can imagine using color schemes on my dataBlocks for that use-case.
1342
1343
1344
1345
**************************************
1346
2024_06_June_18_Tuesday_01_18_27
1347
**************************************
1348
1349
/home/emptyFile/work/2024_06_June_18_Tuesday_01_13_45
1350
1351
The next thing that I will attempt, and in-shallah it will work, is a 'select-all-export' and 'select-all-import'. This will export one portion of data from each block and set it up to be transferred using email. It will be sent as HTML but in the body of the email. It should be set up with it's own function and a button that will install the data on the receiving end. The text will need to be gotten by using 'select-all' from the email which is received. The text will then be pasted into a textarea which will load into a dataBlock. The button will then be functional and able to install the accompanying data portion.
1352
1353
This should be okay because, pretty much everybody knows how to do 'select-all', and everybody knows how to do 'paste' and then click one button to import/load it.
1354
1355
... and just think what interesting stuff you could send that way. It would be far superior to sending a file attachment, and what's the difference really? No download necessary, it would just be the email message itself that we use. We could import anything that is HTML in this way. Even a mailStack that someone sends to us. Or a complete emailing group of new friends. Or templates of various kinds that friends have customized and wish to share. This really is a worthy inclusion into this program.
1356
1357
I'm starting to think that I will need to work on the notes/manual at some point. Not sure when to start that, it will need to be all translated per language and so on.
1358
1359
1360
1361
**************************************
1362
2024_06_June_18_Tuesday_07_28_49
1363
**************************************
1364
1365
/home/emptyFile/work/2024_06_June_18_Tuesday_01_13_45
1366
1367
I have been thinking that maybe the way to macros is still there... maybe it's so much easier than I have originally thought.
1368
1369
Can't we use the 'this' and the 'onclick' attribute?
1370
1371
Stack the attributes? Then call that with a button?
1372
1373
Name the function 'minute-second-millisecond'?
1374
1375
1376
1377
**************************************
1378
2024_06_June_18_Tuesday_11_45_32
1379
**************************************
1380
1381
/home/emptyFile/work/2024_06_June_18_Tuesday_11_45_04
1382
1383
I tried it on the first shot... something wrong... now I need to check it over again. I already reverted... it did some things... but, it's just not right. The numberings were not right.
1384
1385
1386
1387
**************************************
1388
2024_06_June_18_Tuesday_15_58_52
1389
**************************************
1390
1391
/home/emptyFile/work/2024_06_June_18_Tuesday_15_58_50
1392
1393
It all seems to be working good. We can send the templates via email now. The only thing is that, after we load them in, we need to save the entire file again using 'save all'. This is the only way that we can use the javascript that will load the templates.
1394
1395
Now I just need to make it so that we can select multiple things to export instead of just one at a time. Maybe it will use the same menu like the 'paste menu' has.
1396
1397
I am also thinking that there needs to be a way to append the imported data to the message/file area and to the email addresses area. This way, it will be better for collaboration. We can combine our information, send it to each other and then still keep our own file set with it. And, as for appending the email address list, that has obvious benefits. One drawback is that we might accidentally put the same email in a mailing list twice.
1398
1399
Not sure what to do about that, and I'm not sure whether checking for uniqueness in a list is a business I would like to get into. Not just yet anyhow.
1400
1401
1402
1403
**************************************
1404
2024_06_June_18_Tuesday_16_32_32
1405
**************************************
1406
1407
/home/emptyFile/work/2024_06_June_18_Tuesday_16_32_29
1408
1409
I the template exports together with the 'HTML stack and burn' should allow a group to interact and share templates and information that can be appended, at the option of the sender. It can always be appended later by the user who is the recipient by doing the same process themselves and then appending. It would just save that one step when you know what the intention is.
1410
1411
Now I'm still thinking about how to do the 'click macros'. I am starting to think that it might not be as much trouble as I had earlier suspected... can't I use the 'this' of the buttons? and then append the 'onclick' attributes until the user finishes recording the macro?
1412
1413
1414
1415
**************************************
1416
2024_06_June_18_Tuesday_16_46_00
1417
**************************************
1418
1419
/home/emptyFile/work/2024_06_June_18_Tuesday_16_32_29
1420
1421
Trying for the macros...
1422
1423
1424
1425
**************************************
1426
2024_06_June_18_Tuesday_17_45_12
1427
**************************************
1428
1429
/home/emptyFile/work/2024_06_June_18_Tuesday_17_45_10
1430
1431
It's hard to believe but, the macros work. It was the easiest thing so far to write. Just put 'macroRec(this); ' into every 'onclick'... Now I just need to figure out how to set everything to zero before the macro begins recording. And then, for playing the macro, we need to zero everything out again. Maybe that needs to be a function. It needs to set every state to a default.
1432
1433
Not sure how to do this. In-shallah it will not be too difficult for me... The program keeps getting bigger and bigger. The size is not a good thing. I can reduce it later through a 'namespace reduction'. Not difficult. I will just get all id names and then replace them all with three letter codes. Then get all function names and reduce those as well. There is some duplication in the calls that can be combined. That would split their size in three.
1434
1435
Some time I will need to get all of the notes written to accompany the program. Then key those out for translation until it is fully keyed out.
1436
1437
Then run the translations, then write up the script for that to be run on site.
1438
1439
1440
1441
**************************************
1442
2024_06_June_19_Wednesday_13_25_43
1443
**************************************
1444
1445
/home/emptyFile/work/2024_06_June_19_Wednesday_13_25_39
1446
1447
I have been working at optimizing some of the button behaviours in the input area... The paste menu is now in a neat little spot, with a matching border etc. It should be obvious what that does. There is now a button that toggles the rolling if we are using 'swap'. The numbers '25', '5' and '1' are now 'locked' together... when you change the value for that when you are in paste copy or swap, the value changes in all three. This will be imperceptible to the user, who will never know that it was every an option to have them remain separate. I feel that it is more natural to make them change together. That way, we switch from a copying operation to a pasting one of the same kind, or swap. This way we could 'grab' something out, use it for it's color(as an example), and that will be quickly done. I like how the program is progressing, size is an issue.
1448
1449
Also added is a color change around the ring select for the column or row. This helps to remind the user of the mode.
1450
1451
1452
1453
**************************************
1454
2024_06_June_19_Wednesday_17_08_00
1455
**************************************
1456
1457
/home/emptyFile/work/2024_06_June_19_Wednesday_17_07_56
1458
1459
I'm trying for the macros... one little snag: I am finding that if I have a function call at the end of the list that says )" ... that's not good, I'm going to now try to change it for );"
1460
1461
1462
1463
**************************************
1464
2024_06_June_19_Wednesday_17_17_12
1465
**************************************
1466
1467
/home/emptyFile/work/2024_06_June_19_Wednesday_17_07_56
1468
1469
It worked! Success finally. It wasn't very much code. I am sure any other person would have already known this is actually not much of a task. Not me, I thought it would be impossible. I keep praying every time for help.
1470
1471
Now we can send the macros to our friends. This way, when we want to automate some boring task, we can!
1472
1473
I am now thinking that these macros should have a little editable note area on the top, and a gimmicky sounding name wouldn't hurt
1474
1475
I do need to check the function again and make sure that we 'zero-out' any toggle buttons before the recording begins, and then we should 'zero-out' on the end of the recording as well. That way when it plays we don't have any unusual results.
1476
1477
1478
1479
**************************************
1480
2024_06_June_19_Wednesday_20_42_26
1481
**************************************
1482
1483
/home/emptyFile/work/2024_06_June_19_Wednesday_20_42_23
1484
1485
Now I'm starting to think... 'What was left to do?'
1486
1487
I'm not really sure... you can do .... OHHH... the emailExp menu. We need a good menu... it will be the same as the paste Menu.
1488
1489
I will just copy the same menu, and rename it... then we will need to write a brief function that will decide what to write up based on the menu selections. Oh! and there needs to be another function that can input the data conditionally. There will need to be a special dataBlock in the input area that will nullify a dataBlock conditionally on import based on it's values.
1490
1491
1492
I might have found a mild conflict/complication in the 'macro' function... a related function... maybe I need to 'not click' in that part... and just replace the 'click' with the 'onclick' of that button. Does that sound weird? Or is it just me?
1493
1494
1495
1496
**************************************
1497
2024_06_June_20_Thursday_20_30_35
1498
**************************************
1499
1500
/home/emptyFile/work/2024_06_June_20_Thursday_20_30_15
1501
1502
No matter how I keep thinking to myself that I am pushing towards the end of the project... I keep thinking about that 'one other thing' that I was meaning to include...
1503
1504
Strangely, the most time consuming thing seems to be positioning the buttons in the graphical interface, not writing the functions or 'coding' as it were.
1505
1506
The macros are working fine, there seems to be some limitation but, I am not interested in tinkering with it. It works for almost every 'single operation', and it works for the basic stuff in inputMode.
1507
1508
The 'select all exporter' is working great, no problems there. None that I have found anyhow. I used the same selection menu that was used for the 'pasteMenu', with the appropriate additions. Now, the selections are written up and then the whole works of what has been selected ends up in dataBlock 'A1'.
1509
1510
The macros are put into zulu, which is 'y5'. I am thinking of putting a special button in zulu to stack the macros back into yoruba. That way you can get more than one macro happening. The macros could be used to accomplish interesting tasks that are completely customizable for the user. I put a little note area 'heading' each macro.
1511
1512
Of course, the user can send the 'a1Export' or the 'zuluMacro' via email using the emailHTML or mailStackHTML features.
1513
1514
There seems to be some size limitation on the exporter... email can't handle the whole thing... we'll just have to break it up, only sending some parts, not everything at once.
1515
1516
So, we just send the raw HTML in an email message, then we select all from that message and can paste it back into a dataBlock where we can load in the new template.
1517
1518
An interesting change I made to this a1Exporter is that I made the import conditional. It will not transfer anything that is 'blocked-out' by 'xqn'... if there is a dataBlock part that has only 'xqn', it does not transfer anything into that dataBlock when the button is pressed. This way we can have a 'partial transfer' of information. This is a very interesting thing. It is much more useful for the user to be able to 'selectively transfer' data into their existing data. Imagine, as an example, collaboration between two or more people. They would each have a portion of the 'collaboration array' assigned to them. When they export the data, they simply 'block-out' the areas used by their friends using 'xqn'. Really it would be a 'paste' operation, and that 'paste' operation could be done using a zuluMacro!
1519
1520
The exception to the blocking is the first keypair. The first keypair in every cell is always transferred.
1521
1522
I haven't yet worked out how to block the transfer of the colors. I have been considering using the HTML color 'black' for this purpose. I am not sure whether it will be easy to do that same thing for the colors... I noticed that my hex-colors are being converted into rgb values. In-shallah it will not be too difficult for me. I hope that the color name 'black' will not be getting transferred into rgb. If it is, then I guess I'll just have to use that as my 'blocker'.
1523
1524
1525
The one thing that I haven't even started into is the 'webSave' feature. It need to save HTML files using the filename, on the right in each dataBlock, '-' and then the country code from the left of each dataBlock. That way, someone can just 'waltz in' with their files, set up what languages the files are going into, and then begin translation using the browser. Other features related to this are obvious. Clearly, if we are having many filenames given to us, we should make use of them by assembling an 'automatic table of contents'. Obviously this will not be hard to do. Then the other things we can assemble are the 'sitemap.xml' and the 'robots.txt'. Why not? Then, there could also be a way of linking the files to each other in the program and then swapping out the links for HTML links when the files are saved. I'm not sure exactly how to do that yet but, getting to a different dataBlock inside of the program is virtually the same as getting to a different page on a website.
1526
1527
Having that as a function would really be crucial to anyone who wants to use the program for translation of a website and for developing a website generally.
1528
1529
This program just keeps getting bigger an bigger... it's close to 3MB at the moment, and it's only creeping it's way up on the scales.
1530
1531
The size issue is not really such a problem, considering that the 'namespace' is now filled with 'descriptive' names. All of the function names, class names, and id names, can be reduced to three digits. That should cut the size down significantly. Then there is the ultimate, and maybe it isn't within what I can even do... An 'assembly script'.
1532
1533
An assembly script would really be the minimal size reconfiguration of this program. Just think about it. If I used the command-line to write the majority of this program, then a significant portion of this program is just an array of things that are almost identical except for the 'name' associated with it. Each dataBlock is identical except for it's 'id names'. Right? So, can't we just assemble those 125 blocks with javascript in a textarea or something? And then what about the functions that are identical to the other functions? Can't those just be assembled too? And then, if that is possible, finally, we compress the resulting file and offer it with only a two color checker pattern and no contents.... well that might be a little bare.
1534
1535
I have been considering that the help section could be in the form of a 'single spec'. All in one place and give a brief on each routine. One by one naming their gimmicky names.
1536
1537
Ohhhh... and I am almost forgetting that I will need to write up the section that will allow the user, in a 'single click' to transfer the entire stuff of the website into their own language and then save it. For that bit I'll use 'micro-font'.
1538
1539
That part will be last after I write up the spec. It doesn't seem that far off.
1540
1541
1542
1543
**************************************
1544
2024_06_June_21_Friday_09_57_36
1545
**************************************
1546
1547
/home/emptyFile/work/2024_06_June_21_Friday_09_57_30
1548
1549
Good progress this morning... okay, I worked through the night. It was just so exciting with the macros working... Then I had to try some other functions... more than seven hours since the last backup... weird... I just kept thinking of functions and then writing them up at the prompt until I made what looks like a 'function wall' in the program. I didn't get around to the 'webSave' stuff or their links. There's plenty left to do to 'round-out' the functionalities before I finish it off.
1550
1551
Then again, the garden needs to be planted, and soon.
1552
1553
1554
1555
**************************************
1556
2024_06_June_21_Friday_19_04_59
1557
**************************************
1558
1559
/home/emptyFile/work/2024_06_June_21_Friday_09_57_30
1560
1561
I, once again, worked through a few trials while travelling on the bus to my friday prayer. I found two issues. One is related to the 'VcolOn'... which seems to remain on even when we go into viewMode. I'll have to check that out later. Not much time today to do it and tomorrow, of course, there is no work. It was raining over-night and it rained a bit on the way back on the bus. Good for me that I wasn't rained on.
1562
1563
The other issue I found will be a simple fix... the button to send the message to the subject lines remains visible and stuck on the screen if you click 'options' instead of toggling back out with the same button... weird... I just need to include that one with the rest. I added a new button, and it looks like I haven't finished the job of adding it completely just yet.
1564
1565
Then there are three other things I would like to add to 'writer'. It's a really neat part of the program. If you use that with a macro, you can write something to another person's program. That is so funny! Just imagine, they are getting an interesting or useful macro from you, and then you can write them a surprise message to go with it! Or... you could have the macro put the result of it's work into a specific dataBlock and then change the labels of the dataBlock to reflect the contents. That would be really neat. So, I have been thinking that it has a set of characters that are set to the grid with a button. Of course everything needs to be done in sequence for a macro to work correctly. So, then we can click the buttons which enter their data via 'append' to a div that we can see on the screen! Then we can send it to the intake textarea or we can send it to the subject lines of the dataBlocks.
1566
1567
I don't know why, I have always felt that the subject line of an email is not entirely different from a 'text message'. Their lengths are both short. You can only see a limited number of characters without opening it... this is identical. An interesting thing about the subject line of an email is that, at least with the program that I use, Gmail, it will only copy the entire subject line when you try to select it. It simply uses 'select all copy' every time. This is helpful.
1568
1569
Moving forward is difficult for me... there is a lot of temptation to just keep making another function, then another, then another.... There needs to be some kind of selection process, or a thinning of the 'idea-stack'. And, really, it's so easy at this stage to write the functions up, all I should really be doing is contemplating what is possible.
1570
1571
The macros are such a neat thing... I need to do a complete button-by-button test of their ability and check each one. It's just such a boring task. I want to write more and more but, alas, I need to check what I have already started. I need to sort all of those things out... or at least attempt to correct anything that is preventing the operation of the macros. I checked just a little while ago, and it seems that there are three buttons in the 'workspace' that cannot use the macro. I am not sure the cause of this, there might be some kind of circular calls happening. I know that each of the three buttons accomplish their jobs by clicking other buttons. This might be part of the problem. I have also considered that I should attempt to remove the 'macroRec(); ' calls from the finalized macro button. Then there would be no conflict if someone were to click a previous macro while recording a new macro. Another thought I have had... "Can we record a forward and reverse macro simultaneously?"
1572
1573
No all operations are reversible. The reverse macro is a bit of a tricky thing... you need to make sure that any toggles you would normally need to press first... You also must press them last! And in the appropriate sequence! So, if we were recording forward and reverse simultaneously, then we would need to do the toggles before and after the operation. It would limit what we could do severely... but, is it in any way conceivable that this could be a useful thing? All I need to do is separate their programs carefully that they don't overlap, which I am sure that they don't. Then unlatch their buttons, and try it.
1574
1575
I feel like I could fall asleep at any second...
1576
1577
I am also thinking about combining the function calls in the 125 face buttons of the dataBlocks. This would cut two thirds of the character count right in their onclicks. The swap copy and paste functions have almost all of the same arguments, and their conditions exclude each other anyhow... why make three calls when the arguments are identical, right?
1578
1579
There are the copy1 paste1 and swap1 functions, then their are row and column functions for each, those can be combined as well. I somehow think that I can just put the code all into one function from the three, the erase the leftovers and erase the useless extra calls. This doesn't seem like any difficulty, just a re-stacking of them.
1580
1581
I'm going to lay down a minute...
1582
1583
1584
1585
**************************************
1586
2024_06_June_22_Saturday_22_29_02
1587
**************************************
1588
1589
/home/emptyFile/work/2024_06_June_22_Saturday_22_28_59
1590
1591
I think I'll have a go at trying to amalgamate the copy1 paste1 and swap1 functions to reduce the size.
1592
1593
1594
1595
**************************************
1596
2024_06_June_23_Sunday_00_30_38
1597
**************************************
1598
1599
/home/emptyFile/work/2024_06_June_22_Saturday_23_54_53
1600
1601
I have also been wondering... why is my macro recording function getting the attribute of the button it clicks? can't it just get the id and then make a "clk('id');"? wouldn't that be the maximally minimal thing to have? Then it would really only record the click sequence, not the function calls. Also, can't the writer just continue writing even if we close our view of it? and can't it have a button that lets us put the written info into a data position in a dataBlock? That way we could put data out from it directly into a location. Then that location could be accessed through copy paste or swap. This way we could really have full access to the data through that function and potentially through the macros.
1602
1603
1604
1605
**************************************
1606
2024_06_June_23_Sunday_01_39_19
1607
**************************************
1608
1609
/home/emptyFile/work/2024_06_June_23_Sunday_01_39_16
1610
1611
The macros work for almost everything now... I suspect that the issue with the remaining "un-macro-able" buttons is that they simulate the click of other buttons. This might be a 'bad javascript' thing. If I just substitute those calls for the function equivalents, in-shallah that will make them all work. Then my macros would be fully operational.
1612
1613
1614
1615
**************************************
1616
2024_06_June_23_Sunday_09_45_32
1617
**************************************
1618
1619
/home/emptyFile/work/2024_06_June_23_Sunday_09_41_28
1620
1621
I've headed into the direction which is 'code-cleanup'. The code is messy. My writing style can only be described as 'scrambled' or 'exploded'. There are multiple calls to the same function residing in a single onclick. It's a problem when it's 125 times. The size is multiplied and that explains this coding balloon. So, now we must deflate this balloon and minimize some of the code. It will be easier to look at, right?
1622
1623
'Housekeeping for the code'
1624
1625
1626
1627
**************************************
1628
2024_06_June_23_Sunday_15_17_58
1629
**************************************
1630
1631
/home/emptyFile/work/2024_06_June_23_Sunday_15_17_55
1632
1633
I got it down from a high of 3.5 MB to somewhere around 3.1 MB. That's not bad... I haven't yet done all the possible reductions. ID naming is still large, I expect that to reduce the size significantly. I am also seeing that, the calls that I am making from the buttons, they all have the same information! I should be passing the barest information, a two digit number that is unique for the button. The function really only needs those two digits. It can't be just one because there are 125 buttons.
1634
1635
1636
1637
**************************************
1638
2024_06_June_23_Sunday_20_02_46
1639
**************************************
1640
1641
/home/emptyFile/work/2024_06_June_23_Sunday_20_02_42
1642
1643
I had no success with the mild id renaming... maybe it's too soon in the process anyhow. I have worked out a few other things that I have found, and finally fixed up that open button, now I'm looking at making some of the tool buttons float on the screen, that should really help for a user who wants to use the buttons that advance through the datablocks... That way, we won't need to keep scrolling down the page to find the button we want. We do still need to toggle the 'show-tools' button.
1644
1645
1646
1647
**************************************
1648
2024_06_June_24_Monday_02_39_27
1649
**************************************
1650
1651
/home/emptyFile/work/2024_06_June_24_Monday_02_39_21
1652
1653
The colorReset doesn't seem to work correctly. Need to test and revisit it.
1654
1655
There needs to be a 'languageGrid' button to install the language names to the grid.
1656
1657
There needs to be a button to assemble a sitemap based on the filenames present in the dataBlocks.
1658
1659
There needs to be a button to assemble a 'Table of Contents' or 'Website Index'.
1660
1661
Beyond that is the 'Full Spec' section that just tells about each feature one by one.
1662
1663
Then, there needs to be a spot to translate the full text of the site.
1664
1665
Maybe the grid numbering/lettering needs to be editable somehow, maybe on the left and the bottom.
1666
1667
1668
1669
**************************************
1670
2024_06_June_24_Monday_08_50_14
1671
**************************************
1672
1673
/home/emptyFile/work/2024_06_June_24_Monday_08_50_08
1674
1675
I need to remove the buttonFaceUpdate() from the places where it is... it's a silly function. It updates ALL button faces. For things where we don't really need to do them all... we could just do one!
1676
1677
This has to be changed.
1678
1679
1680
1681
**************************************
1682
2024_06_June_24_Monday_09_54_39
1683
**************************************
1684
1685
/home/emptyFile/work/2024_06_June_24_Monday_09_52_04
1686
1687
Yes, I have reverted... not sure what was going wrong but, it's better to abandon it earlier than later. I guess I'll need a different strategy for updating the button faces. Maybe a function for each button?
1688
1689
1690
1691
**************************************
1692
2024_06_June_24_Monday_10_13_30
1693
**************************************
1694
1695
/home/emptyFile/work/2024_06_June_24_Monday_09_52_04
1696
1697
I'm completely forgetting about the button sizes! They need to be able to have more than one size... two might be enough. It just needs one that is taller so that users who want to use it to have notes visible, they can do that too.
1698
1699
1700
1701
**************************************
1702
2024_06_June_24_Monday_18_12_11
1703
**************************************
1704
1705
/home/emptyFile/work/2024_06_June_24_Monday_18_12_08
1706
1707
I have been working on the styling a little bit. I have put a left and right button in each dataBlock which floats on the screen... This way we can cycle quickly between the dataBlocks in a linear fashion. The buttons roll over at the end, so y5 goes back up to a1, and vice-versa.
1708
1709
I have also installed a little block in the middle that does not do anything at all. That might be an understatement. It is simply there for when you have the 'phone keyboard popping-up' and you want to click out of it, but you just can't because there is nowhere to safely click.
1710
1711
My next thing that I will try is to make a 'read-mode' where we will not have anything except for the file area visible in the dataBlocks. This will really help if we are just trying to read. We don't need all of that extra stuff if we are only reading, and it is important to facilitate that. I am wondering also about stopping the 'contenteditable' at the same time or separately. Maybe separating these two things is best. That way the user can have the maximum of choice. How do I know what task someone will do? I don't, so it is best to allow these decisions to be left to the user. I don't want to remove vast areas of possibility, that would be improper.
1712
1713
1714
1715
**************************************
1716
2024_06_June_24_Monday_22_27_47
1717
**************************************
1718
1719
/home/emptyFile/work/2024_06_June_24_Monday_18_34_32
1720
1721
Tired... need sleep now...
1722
1723
1724
1725
**************************************
1726
2024_06_June_25_Tuesday_06_05_34
1727
**************************************
1728
1729
/home/emptyFile/work/2024_06_June_25_Tuesday_06_05_27
1730
1731
I start just a few minutes ago trying to change the border color for the copy function to blue, the paste function to red and the swap function to orange... it just doesn't look nice... better to just revert and keep them as all white.
1732
1733
The blue and orange(which looks yellow to me), don't really come out well, whereas white really stands out and looks nice. White is not 'clashing' with any of the colors that are present.
1734
1735
1736
1737
1738
**************************************
1739
2024_06_June_26_Wednesday_19_44_49
1740
**************************************
1741
1742
/home/emptyFile/work/2024_06_June_26_Wednesday_19_44_46
1743
1744
It's another day where I have not done much backup. I have been mostly working on the styling and have finished out some brief functions. BUTTON FACE has made a return, the font sizes have been worked out. The size of the button faces is now selectable, that was a couple of days ago I think, maybe yesterday.
1745
1746
I have also made some strides in the direction of integrating the idea of the 'block piece'. It is an important thing for the program. We can choose not to use certain dataBlocks by putting a 'block' on them. The 'block' is found in the inputMode workspace and can be pasted into any of the data locations. The 'blocking' feature applies to many things. Right now, it applies to exporting of data using 'a1Export'. It has also been applied to 'labelGrid'. They will not be overwritten by 'labelGrid. Also, 'showLabel' will not show the label if it is 'xqn'. It will remain hidden while others will be revealed.
1747
1748
The 'keyBoard' function is now available when 'writeOn' is active. We can turn editable off and then back on again but, only if it was there to begin with.
1749
1750
It's coming along pretty good. I still haven't started to work my way through the 'sitemap' or 'index' functions but, I did make buttons for them. Their buttons just don't do anything yet.
1751
1752
The new thing that has occurred to me is that I have made a way of swapping keys out... but, what if we want to swap them back in? What if we want to toggle them? Isn't that far more effective? That way we don't take irrecoverable action, we can reverse it. Then we can render out formats to get templates from any source. This would be a great convinience. Naturally, we must have this capability.
1753
1754
Inshallah it will not be to difficult for me.
1755
1756
1757
1758
**************************************
1759
2024_06_June_27_Thursday_02_08_31
1760
**************************************
1761
1762
/home/emptyFile/work/2024_06_June_27_Thursday_02_08_28
1763
1764
I was looking at it... yes there were things wrong with the sitemap function... Still, it didn't seem to work. The more I looked at it, the more I was convinced that nothing was wrong at all. Then I saw it...
1765
1766
"document.geElement...." Do you see it?... I didn't, not for some time...
1767
1768
"What is wrong that this doesn't work!"
1769
1770
1771
1772
**************************************
1773
2024_06_June_28_Friday_09_51_49
1774
**************************************
1775
1776
/home/emptyFile/work/2024_06_June_28_Friday_09_51_15
1777
1778
Yes... some of the conditions for the assembly of the index... well, yes, I have abandoned them...
1779
1780
All together, the index seems to be fairly good. There should be no styling applied to it at this point, and I have considered also that there should be absolutely no styling applied directly, or 'in-line', with any of the HTML that is assembled through this website.
1781
1782
To be 'correct', the best way is for the styling to be in a single file. This way, we can change the styling of many file, or even the entire website, from a single location, and by changing a single common reference. I understand this but, there is another use for HTML, and that is with HTML-particles.
1783
1784
1785
The work has been going along well on this website. It is very nearly finished. The main part of the work is very nearly finished. The next step seems to be that I will write the specifications of the functions and what is and is not possible. It is important to give some instructions about the use of the functions, and their combined use. I cannot cover all possible use-cases, I cannot even test this 'monster' sufficiently. I will attempt some tests, but, I will just assume everything, most of the time, works successfully, as it does appear to be the case at the moment.
1786
1787
So: Write the specification, Key the entire website for translation, reduce naming in the website, convert anything produced by a 'for' loop to a javascript 'for' loop if possible. Also, it is unclear whether it is better to pass two letter string arguments to the functions to save space. Then last... compression. There is always compression. And, can we have an assemble script please? Maybe... just maybe on that one. If it is possible, then that script is done before the compression, then the compression is done on the script.
1788
1789
I really don't know how 'computer programming' works, and it is becoming more and more apparent that I do not need to know how computer programming works.
1790
1791
Inshallah it will be easy for me.
1792
1793
1794
1795
**************************************
1796
2024_06_June_28_Friday_20_22_12
1797
**************************************
1798
1799
/home/emptyFile/work/2024_06_June_28_Friday_20_22_07
1800
1801
Strange as it may sound, I was looking just now at my backup script... and... what does it even mean? It works, I know that. It's useful, that's for certain. I can't quite tell what it does by looking at the script. I am just glad that works, it really did change the dynamics of how I was approaching this job. Writing that script, and that it functioned well, that really helped along with writing this program. Sure, I have written the majority of the most useful functions from the prompt here. And, yes, their current form is a giant list making up the large functions. Of course, the giant lists are there because I simply do not understand how to write a 'for loop' in javascript. That actually seems like it presents a difficulty. It's a good thing that I didn't bother ever trying to learn the javascript 'for loop' and apply it immediately.
1802
1803
What use would that have been when I was not even certain of what functions I wanted or how they would work? It would have been a hinderance, not a help. I feel like the method that has been employed is actually not incorrect. I wrote the functions at the prompt, which has a very good 'for loop'. You can use numbers, letters, you can even use a list of terms. Javascript is minimal, it seems like it can use numerical only. I'm not really sure about that yet. Keep in mind, it is possible to change the functions over to a javascript loop at any time. To do that, I will need to rename the 'id' of the entire program. It would be easiest and the most safe, to rename all 'id' at the same time. This way would avoid conflict in the naming structure. The naming structure, as it is currently, is one letter and one number for almost everything in the datablocks. We have the letters a-y, then we have numbers 1-5. This made it very easy to think about and to manage the function assembly from the prompt. The naming corresponded exactly to the grid on the telephone screen.
1804
1805
When I change it: the numbering system will need to be numerical and linear. 1, 2, 3, 4, 5. Maybe we can use leading zeros: 001, 002, 003, 004, 005. Then also, there should be a leading letter which will tell the location within the dataBlock.
1806
1807
All has been going well, there are a couple of very minor 'bugs' which I noticed while on the busride. Also a minor addition that I have thought about. 'writeOn' should have a three button selector always visible, left and right. We don't always need the 'full' selection menu. The three buttons will allow us to toggle between what is visible. The other thing I have been thinking of: we have a way of 'blocking' dataBlocks from certain processes. This is good, a very important inclusion. What about having a marker that is a 'selector'? Should there be a manual entry for a selector based on the label? It seems to be that this would be a good idea. That way we can have grouping, aside from the groupings that can be made by using the rows, or the columns.
1808
1809
We could define that any dataBlock is a member of the group and then select them on that basis for a process. One issue there seems to be that we can only define one label. Therefore we define only one group using the label. Even so, with this idea, we could easily paste the letter code into the dataBlock labels and define our groups that way. This would be completely visible. It would also not be too complex as it allows only one group to be defined through this method. So, then we have two similar implementations, one which 'blocks', and one which 'selects'. Of course, we would use a manual entry, or several manual entry areas, maybe checkboxes? That way, we could use a custom defined code for the group. Each dataBlock could only have one group defined in this way, and the maximum number of groups will be 125, if each dataBlock is it's own group. That case might be rare. Strangely that is the default.
1810
1811
When the naming structure is reduced, and it should be, at the right time, I have been thinking that it will be best to favour the most commonly used buttons with the shortest names. This way, we don't end up with the 'macros' becoming too long. We want the click sequences from those to be a small as possible. I have even considered making it minimal, even less than what it is now, removing the unnecessary styling and so on from the button. As bare as possible. You could even tweet a click sequence, or send it in the subject line or in an instant message. How neat would that be. Imagine being about to share a useful macro that you had done. So, we have forward macros, reverse macros, and those can be done simultaneously. I am fairly certain that there is virtually no use at all for reverse macros, or simultaneous macros. I don't really know of any use for that. I just think it's amusing and sort of 'fun'.
1812
1813
1814
1815
**************************************
1816
2024_06_June_30_Sunday_01_30_29
1817
**************************************
1818
1819
/home/emptyFile/work/2024_06_June_30_Sunday_01_30_26
1820
1821
Just for interest, I have just tried using 'zip' on the file. It's so small. We get down from 4.8MB to less than 400kb. Wow... nothing to worry about for size but, that's not to say that I shouldn't still reduce the size as much as possible and follow through with all reductions etc. I should still do all of that. There maybe be a good argument here for including all translations of the program internally so that it doesn't even require browser translation. That might be a good option. I am also thinking just now to change the button faces so that they will display the titleBlock, the label, and the subject line. Instead of the filename. Is that better or worse?
1822
1823
Should I make it display both? They are both things that you would want to have visible... Then again, the subject line will go along with the email message in that case. I wonder what a compromise will be. Is it better just how it is?
1824
1825
I shouldn't fret too much about the little details.
1826
1827
I need to consider what the ultimate strategy is. What arrangements or usage will be optimal. Do we have contacts loaded per dataBlock? Then we apply the message to the contacts/groups? Or are we gathering contacts with 'writeOn' and then assembling them for a mailout with that way? Both ways? Either? Does that have any bearing on which thing should be displayed?
1828
1829
Can we flip the label for the filename instead of just hiding the label? That might be it... but then the font size would be too big. Forget it... it stays. We can easily embed a reference to the filename in the subject line. NO
1830
1831
1832
1833
**************************************
1834
2024_06_June_30_Sunday_12_28_36
1835
**************************************
1836
1837
/home/emptyFile/work/2024_06_June_30_Sunday_02_44_06
1838
1839
It took some time for me to finish it, but I was able to assemble a script that will give the very same backup revert and logfile features which I have been enjoying while I have worked on this project. I suppose it would have been quite difficult without those advantages. The double revert script was never included... My opinion is that it would most likely complicate the directory structure, where the present structure is more 'linear'.
1840
1841
Next, I will attempt to select the items which will become part of a translation. I will substitute them for unique keywords. Wait... one more thing I have just noticed... I need to make 'show tools' set the mini-tool panels to being visible.
1842
1843
Then! Then I will move on towards completion.
1844
1845
1846
1847
**************************************
1848
2024_06_June_30_Sunday_13_06_22
1849
**************************************
1850
1851
/home/emptyFile/work/2024_06_June_30_Sunday_02_44_06
1852
1853
Now I am really hoping that In-shallah this will not be a difficult task. I suspect that the best method will be to use the program itself. I should try to write the transfer function in reverse and have the button that will call it finished. Then I will use that to load the textual information into the divs that will eventually hold the text that will be the original english and will be retained for the exclusive purpose of translation. Later, these texts will be used to translate and install into the respective locations in the website. Here, there, everywhere. I really should just install the english language text to the entire website, and forget about the old keynames that were used in the 'beta' version.
1854
1855
That way I will be able to work with a full keylist and with a function already in place for the onboard translation. This way we can have both. We can have version where the translation has already been done in advance, and we can have the internal and independent capability to translate it for the purpose of future users.
1856
1857
This way, when a new user is first encountering the website, they will be able to use it immediately without any difficulty, and without needing to discover the site translation method. This might be important for the short term to improve popularity and acceptance among new users. Of course, the gimmicky sounding names don't hurt the overall appeal.
1858
1859
1860
1861
**************************************
1862
2024_06_June_30_Sunday_23_32_46
1863
**************************************
1864
1865
/home/emptyFile/work/2024_06_June_30_Sunday_18_42_29
1866
1867
Need still to 'sure-up' all of the translation spaces. We need to be sure that all of the basic parts of the program can be easily understood by a new user. I am now considering symbols for some of the buttons. This would make it easier, and reduce translation. Icons are not so bad, I would just need to select form available emojis. That will be a job for another day.
1868
1869
1870
1871
**************************************
1872
2024_07_July_01_Monday_07_06_22
1873
**************************************
1874
1875
/home/emptyFile/work/2024_07_July_01_Monday_07_05_49
1876
1877
Sometimes it's best to say 'good enough' and move on to the next task... Renaming. Here we go...
1878
1879
1880
1881
**************************************
1882
2024_07_July_01_Monday_20_50_54
1883
**************************************
1884
1885
/home/emptyFile/work/2024_07_July_01_Monday_20_50_43
1886
1887
After fixing up some styling that I had forgotten about... (mailStack), Now it's time to try the size reduction again.
1888
1889
1890
1891
**************************************
1892
2024_07_July_02_Tuesday_15_20_37
1893
**************************************
1894
1895
/home/emptyFile/work/2024_07_July_02_Tuesday_06_41_24
1896
1897
I have now been thinking... there is one minor issue that I would like to change... and I can't remember if I have changed all of the ids and the function names... maybe I can still see where I need the change. I need to build in an 'if statement' that will make sure that the keyword is not empty before doing the 'search and replace'. If it's empty it puts in a mountain of jibberish.
1898
1899
It's slightly amusing but, it's better to change this, then it can't happen.
1900
1901
Maybe I can just access it easily from the search and replace function... I have renamed it though... so I will need to 're-discover' it's location.
1902
1903
1904
1905
**************************************
1906
2024_07_July_02_Tuesday_21_55_27
1907
**************************************
1908
1909
/home/emptyFile/work/2024_07_July_02_Tuesday_16_39_28
1910
1911
1912
1913
1914
1915
**************************************
1916
2024_07_July_03_Wednesday_22_58_13
1917
**************************************
1918
1919
/home/emptyFile/work/2024_07_July_03_Wednesday_22_58_10
1920
1921
I'm finding a few flaws in general use case. Example: how can I load a template that uses keys if keys are exchanged upon load? Impossible right? Exactly... so this needed to be altered somewhat. Another thing... after I changed a few buttons to symbols instead of words, I'm looking at that one button and just thinking 'I don't know what that one does'. A lightning-bolt? What could it possibly mean in the context of this program. No idea. It locks the translation into the div. A lightning symbol somehow just does not convey that as being it's function.
1922
1923
1924
1925
**************************************
1926
2024_07_July_04_Thursday_13_13_30
1927
**************************************
1928
1929
/home/emptyFile/work/2024_07_July_04_Thursday_13_13_23
1930
1931
Not sure why I am having difficulty today. It seems like I have already exactly the button that I need, and instead of using it, I have been trying to make another button that does the same things some other way... why? All I need is this same one, and just install it everywhere... Write up a function and call it with the argument that is the difference, what's so difficult?
1932
1933
I've discovered that I haven't been installing all of the keynames from the central keyPoint area. Oops.
1934
1935
Another thing to write up.
1936
1937
1938
1939
**************************************
1940
2024_07_July_04_Thursday_20_18_47
1941
**************************************
1942
1943
/home/emptyFile/work/2024_07_July_04_Thursday_20_18_45
1944
1945
I'm at the point where I'm just looking for little things that are not working... I have found a couple. Good thing, because now they are fixed up and ready to go. I suppose it is not so easy to test this thing, because it has so many functions. It might be good practice to draw up many various tests to make sure about the functionalities but, I feel okay if it is sometimes wonky. For example, because you can put in your own HTML content: If there is anything wrong with your HTML, the entire website will start looking 'broken'. So, I guess that's understandably unavoidable. Aside from that, it is possible, and easily so, to move around parts from the website into locations where they might not look correct or might cause 'overflow' issues. I have completely ignored this, and I have no concerns about it.
1946
1947
Most of the program works successfully. The naming of the buttons might be confusing if there are various language users. It shouldn't become so complex that it is impossible to use, so, I hope that it is easy and clear enough. There are eleven labelled buttons in each dataBlock. I didn't do the transfer of their translations. They seemed too many for me. The other option was putting a symbol on the face of the button... not sure how much better that will be.
1948
1949
So, the correct approach for that is unclear. Maybe in future, in-shallah, it will become clear how to treat this.
1950
1951
1952
1953
**************************************
1954
2024_07_July_06_Saturday_22_55_09
1955
**************************************
1956
1957
/home/emptyFile/work/2024_07_July_06_Saturday_21_31_36
1958
1959
I have discovered that I have somehow, at some point, doubled my function space. Almost every function has a duplicate. I am not sure how this could possibly have happened. Maybe I 'mashed the keys' at some point. Bit of a mystery. Anyhow, the question now is how to remedy this. For motivation... this is giving an extra 1MB of completely useless weight to the file. Funny how I had not realized this.
@
@
@
@
end of logfile
@
end of logfile
@
end of logfile
@
The work continued beyond this crucial turning point in the project. The implementation of the backup/revert script effected such a dramatic change, it cannot be overstated. Those simple scripts were later re-written into a single 'setup' script which is provided in the emptyFile.html program.
@
@
@
logfile
"logfile" 1959L, 138974C