March 2002
Sun Mon Tue Wed Thu Fri Sat
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31          
Feb   Apr
 Find out about the XML feeds of this site  
00:59 03/15/02
#sidebar.txt
on now () { kernel (clock.now)}3/16/2002; 9:38:09 PM

 

Sporadic notes about working with radio No Simpler than this Radio :

Radio

Below is an index to the messages shown on this page. For the most recent messages, click on Radio.
Older Contents is in the archives, accessible through the calendar.

tool installation defaults #
  20:49  Asc Mo

using the new title feature <#
  16:51  Asc Mo
using the new title feature <<#>
  16:43  Asc Mo

data store concept to emerge in windows gui.. for real this time <#
  17:38  Asc Mo

 #>
  14:58  Asc Mo

fun with javascript.  #>
  16:53  Asc Mo
A quick and dirty summary of my customizations to the weblog to date <<#>
  16:23  Asc Mo
calendar enhanced #>
  14:41  Asc Mo

discovering 'flip' pages #
  12:36  Asc Mo

editor only features <#>
  18:41  Asc Mo

post weekend bug purge <#
  20:34  Asc Mo

clarifying how to integrate cloud and desktop. the hard way. <#>
  13:48  Asc Mo

breakthrough! nosimpler introduces threaded messages in a radio blog. <#>>
  17:34  Asc Mo

first upstream of threads <#
  14:30  Asc Mo

almost threading <#>>
  22:51  Asc Mo
quicker? symetrical assertion #
  18:38  Asc Mo
datestamped permalinks <#>
  18:34  Asc Mo
integrated pop-out edit windows into the site <#>
  13:16  Asc Mo
hyperlinking posts - optimistic first <#>
  11:23  Asc Mo
hoping to 'be done' soon <#>
  02:10  Asc Mo
enhancing pop-out integrations #>
  02:03  Asc Mo

rescue from the template killer macro <#
  17:04  Asc Mo
hah! got me a macro for adding inline hints #
  16:16  Asc Mo

an include-based sidebar. it handles #file's. #
  19:58  Asc Mo
from the 'yikes!' dept. <#>
  17:18  Asc Mo
first notes on the integration of pop-out windows #
  17:03  Asc Mo
radio template consolidation and switchable 'functionality' #
  16:03  Asc Mo


Saturday, March 16, 2002

# 20:49  Radio 
tool installation defaults  
 Asc Mo
wouldnt it be nice if any tool which uses <upstream=none/> would simply install under /system/?

Thursday, March 14, 2002

<# 16:51  Radio 
using the new title feature  
 Asc Mo
the way i read it... if i use an unadultered <%itemtitle%> in the #daytemplate i wind up adding another hotlink to the item's archive locale (by category) onto the page.

the way i read it, i better leave the itemlink field alone.. this way i will always get a permalink to the item included in the rss feed.

to add a 'primary link' to the outside, i think i'm going to use the enclosure field more and more. i like that it has no relation to anything else mattering right now.

for now, because i like my itemtitles without links, i set up my own value in the publish callback and adjusted the 'new/edit post' window to accomodate the new field.

<<#> 16:43  Radio 
using the new title feature  
 Asc Mo

Wednesday, March 13, 2002

<# 17:38  Radio 
data store concept to emerge in windows gui.. for real this time  
 Asc Mo
New Windows could solve age-old puzzle - Tech News - CNET.com

the outliner moves into the os. congrats to the devotees!

Tuesday, March 12, 2002

#> 14:58  Radio 
  
 Asc Mo
Radio UserLand : New feature: Titles and Links in Radio-generated RSS: "Posts with Titles and Links are rendered through a new item template macro which you can use to control the placement and formatting of the title. "

this is cool!

Friday, March 08, 2002

#> 16:53  Radio 
fun with javascript.   
 Asc Mo
i wrote this imageswitcher for my dojo buddy randall. he's selling sliced panax ginseng root cured in linden honey. neat stuff. have him send you a sample. this shows his product on the home page. three pictures in one spot.

<img src=i2.jpg name=image border=0 width=400 height=300><br>
Select Image:&nbsp;
<b><font size=-2>
<a href="." onclick="image.src='i3.jpg'; return false;">Box of 10</a>;&nbsp;
<a href="." onclick="image.src='i1.jpg'; return false;">Sealed</a> and
<a href="." onclick="image.src='i2.jpg'; return false;">open</a> packet.
</font></b>


Select Image:  Box of 10Sealed and open packet.

<<#> 16:23  NoSimpler, Radio 
A quick and dirty summary of my customizations to the weblog to date  
 Asc Mo
Friday, March 08, 2002 - No Simpler than this Radio: "A quick and dirty summary of my customizations to the weblog to date"

i've been a busy guy. this document outlines some of the whats, hows and whys. screenshots still to come.

#> 14:41  Radio 
calendar enhanced  
 Asc Mo
i added some code to the calendar so that it renders days with 'day contents' in bold with links alternating between, say, 05.html and 05/index.html

with this new 'spot' available in my blog i can store stories for the day with its media inside the main and category trees without actually having to 'post a new story'.

so far just the rendering is worked out and i have to put a handmade #prefs.txt file into the directories.. but i can see how to make this ever more automatic as i start coming into the '+' with this feature :)

Thursday, March 07, 2002

# 12:36  Radio 
discovering 'flip' pages  
 Asc Mo
amazing what i'm learning from my mistakes. my latest 'discovery' is about the calendar and how it builds the link targets. turns out that i can use directories inside the yyyy/mm/ roots containing the daily text files and have the calendar automatically link to them. with that, i can simply edit the index file in that day's folder to integrate custom 'stuff' on that page for the day, apply custom templates, and IMAGES that are used just for that day.

I ran into this by accident and like it. It means a few changes to my 'day' pages and perhaps a tweak to the calendar which will alert me to existing files for that day. certainly a tweak to radio.weblog.publish so that it doesnt make useless txt files for days where a dir exists.

perhaps i'm just running into artifacts that were dumbed down from userland's higher end tools. neat anyway!

Wednesday, March 06, 2002

<#> 18:41  Radio 
editor only features  
 Asc Mo
I wrote about the cookie to identify myself to the site a few days back. Here is a link to the page I use to enable/disable the desktop link. The JavaScript to do the actual link is in Link127().

Tuesday, March 05, 2002

<# 20:34  Radio 
post weekend bug purge  
 Asc Mo
there had been so many little bugs when i took off for the weekend that i couldnt really post anything until i had taken care of them. i have more tweaking to do but at least since i'm caching the calendars things run a wee bit quicker here. also got a good handle on showing the page-creation time as seconds and 60th of seconds.

Saturday, March 02, 2002

<#> 13:48  Radio 
clarifying how to integrate cloud and desktop. the hard way.  
 Asc Mo
research shows.. i'll have to use cookies to identify myself to the
weblog so that it can generate a link back to the corresponding local page from which i can edit. bummer.

Friday, March 01, 2002

<#>> 17:34  NoSimpler, Radio 
breakthrough! nosimpler introduces threaded messages in a radio blog.  
 Asc Mo
yahoo! finally the back link of the most recent items to work! this means this weblog now does threads! and that i can start thinking about what i need to make linking easier yet..

i get the sense that i should modularize the render extensions so that i can reuse some of the elements they produce from the 'recent' pages. being able to title, link and view from there would be good. need a one-click delete and 'edit when' too.

and screenshots. before making screenshots i should give the system pages better titles though..

using script's modification times i think i can automate undoing and storing userland's variation of the three procs i altered. i need to do that to contain the system. before i even think of turning it into a tool - and my tools are still all screwed up.

 

Thursday, February 28, 2002

<# 14:30  HelloWorld, Radio 
first upstream of threads  
 Asc Mo
well, hello. its been a beautiful few days outside now and i have enjoyed all to little time out. i'd been wanting to see through to completion the ideas i had about hyperlinking my site and i now have done that. i've also re-upstreamed the site in full as large pieces of it got broken over the last few days. anyway, a few more upstreams are ahead but the meat of the code has been written and the bugs have been pushed to where i can deal with them. knock on wood :)

Wednesday, February 27, 2002

<#>> 22:51  Radio 
almost threading  
 Asc Mo
ok! i got the missing ui tweaks in and worked out the how to maintain links between posts really simply. too bad i have a bug in the basic renumbering routine.
# 18:38  Radio 
quicker? symetrical assertion  
 Asc Mo
this was so pretty that i'm not sure that there is not a built-in to handle it. didn't see one in many examples... anyway, here's the "pretty piece of code of the week" :)

bundle { //assert path to day
 if !defined(adrblog^.dates.[year].[month].[day]) {
  if !defined(adrblog^.dates.[year].[month]) {
   if !defined(adrblog^.dates.[year]) {
    new (tabletype, @adrblog^.dates.[year])};
   new (tabletype, @adrblog^.dates.[year].[month])};
  new (tabletype, @adrblog^.dates.[year].[month].[day])}}

is there a better way?

<#> 18:34  Radio 
datestamped permalinks  
 Asc Mo
distracted myself into smartening up the perma-links. i wanted the link-title to tell you what i know about the post. i think its important for one to be real about whats being published. for example i know that there are a few posts that i want to 'tone-down'. i have my max.link.note.(*) and will probably use that. i want the weblog to reflect when i made the edits. i think thats just fair.. especially since i have the ability to insertpostsintothepast now.

in the process i learned that the abs() of a delta date is still a date. idiosyncratic but coercable:

local {tc=timeCreated(@adrpost^.text); tm=timeModified(@adrpost^.text);};
if number(abs(tw-tc))>(60*20) {s=s+" created "+max.dates.dtRelative(tw,tc)+"."}

<#> 13:16  Radio 
integrated pop-out edit windows into the site  
 Asc Mo
<div class=small><a title="Edit a new post in a pop-out window." href="radio://# New Post"
onclick="window.open('http://127.0.0.1:5335/?e=&popout','','width=590,height=540,resizable=yes'); return false;">New Post</a></div> YES!
<#> 11:23  Radio 
hyperlinking posts - optimistic first  
 Asc Mo
a new 'design-time' icons for each post. click to open a 'receiver' window. navigate to another post, click the icon there.. you have connected the two posts and will get hyperlinks between them next time you render. i think i should write that tomorrow.
<#> 02:10  Radio 
hoping to 'be done' soon  
 Asc Mo
i'm 90% ready to think of the chart and symbol processing as automated. i want to anyway.. and get back to me. * need to track new for posts and touch iblog.html whenever index.txt files get upstreamed. that should keep it in sync. * sort feeds on homepage, rewrite and add descriptions to db * how to generated the xml feed for dailySymbols from its data rather than its text?
#> 02:03  Radio 
enhancing pop-out integrations  
 Asc Mo
tweaked my navbar-opt-out concept to leave just the bar in place while viewing recent posts. worked over archivelinks and added a local-only link to editing recents from each day-header. this makes potentially editing my contents seem a lot easier. archivelinks now truly integrate daily symbols and give me a place to track some 'net-history' and see my weblog in a symbolical context too.

Sunday, February 24, 2002

<# 17:04  Radio 
rescue from the template killer macro  
 Asc Mo
when radio crashes on startup because you're calling a bad macro -- kill the iexplorer.exe task as soon as it appears.  i am low-key worried about serious data-loss and want something better than keeping a generation of copies each time i start. i wonder how the established manilla sites do backups of code and data while 'live'.
# 16:16  Radio 
hah! got me a macro for adding inline hints  
 Asc Mo
hints/link-titles in navigators.

new macro for hinting! <%max.link.note("Here's another thought on this..")%> +

i started 'hinting' when i first learned about alt tags and find it useful combined+ with <strike> tags.

Saturday, February 23, 2002

# 19:58  Radio 
an include-based sidebar. it handles #file's.  
 Asc Mo
on max.wl.sidebar.get(bgcolor="green", filename="",pta=html.getPageTableAddress()) {
 if filename=="" {
  if defined(pta^.radioResponder.atts.sidebar) {
   filename=pta^.radioResponder.atts.sidebar}
  else {
   return("")}};
 local {
  s=string (file.readwholefile (filename))};
 if string.length(s)>0 {
  s=html.processMacros(s,adrPageTable:pta);
  «bundle //format box
  s="<!--***SIDEBAR***-->\n<tr><td valign=top bgcolor=\""+bgcolor+"">n"+s+"\n</td></tr>\n<!--***/SIDEBAR***-->"};
 return(s)}

 

<#> 17:18  Radio 
from the 'yikes!' dept.  
 Asc Mo
another interesting thing to NOT DO is to open copied database. copies have roots with the same names as other roots you already know about :)  i've confused myself for several hours the other day before i came accros (finally!) a page describing CTRL-; .. a mini-script window. take that with msg(@wherever.you.think.you.should.be) and bingo! un-confusion. save yourself some time:

if you need to copy and paste from a copy of your data.. exit radio afterwards. do not count on you or it knowing which version of the data will be used by any other scripts you may want to run by hand - even if they are in that database.

(if you read the previous post you'll know i had a hard time with 'subtable not found' while working out the localized preferences thing) :)

# 17:03  Radio 
first notes on the integration of pop-out windows  
 Asc Mo
more usability notes.. news-aggregator modified to link to popup-windows when posting new items.

this lets me pop-open multiple candidates for posting and/or surfing. so far it rocks. had to figure out how to clear the aggregator's cache first.. then to modify my pop-up's javascript to optionally NOT refresh the window that opened it. it makes no sense to refresh the news-aggregator.. but it usually makes sense to refresh after you edit an older post. that said..

let me tell you about this javascript object model page. It brought to an end totally fruitless attempts at reading internet explorer settings. i'm no big expert in js but i went down so many wrong tracks until finally settling on the referrer-string to identify where i was.. on the first view of the page.. or the reload after posting. .. i suppose i didn't want it to be that simple: there's no way to see if the menubar is active in the ie browser. not from js. forget it. use the referrer.

anyhow, i want to take up a little more space about how i've structured this inside of radio.

first, for this to work i need to patch and track at least radio.html.viewNewsItems. I changed the end of the "bundle //add EDIT button, checkmark" to read:

«local(lnk="<a href=\"" + url + "" title="Add this story to your weblog.">" + postbuttonimg + "</a>")
local(lnk=max.wl.desktopwebsite.newspostlink.get(postbuttonimg,url));
add ("<td class=\"dwsTableCell" valign="top"><center>" +lnk+ checkmark + enclosure + "</center></td>")

this is a paste of the database node containing the function:

max.wl.desktopwebsite.newspostlink:
get script: (see below)
flPopOut boolean: true
params string: &popout
WindowOpenParams string: width=590, height=590, scrollbars=no, toolbar=no, directories=no, location=no, menubar=no, status=no

this is the function:

max.wl.desktopwebsite.newspostlink.get:
on get(linktext="",url="",title="Add this story to the weblog.")
{ with max.wl.desktopwebsite.newspostlink
{ if flPopOut
{ return max.link.popout(linktext,url+params,title,WindowOpenParams)
else { return max.link.href(linktext,url,title)}}}

by using a few more nodes i've structured this extension to mostly contain the things i dont want to tweak.. and to mostly expose the things i want to tweak. i dont even want to give this way of organizing my extensions and their settings any object type of name. its charming, its messy and it works to keep things simple for me. ok, i'll leave you with the .js included in pop-out pages:

<script>
<!--
var s="";
var n=0;
document.write('<script>s="'+document.referrer+'"</script>');

n=
s.indexOf("popout");
if (n>=0) {

  n=
s.indexOf("reload");
  if (n>=0) {

    window.opener.history.go();
    window.opener.status="Reloading...";}
  window.close();}
-->
</script>

and my desktop template:

<%max.wl.head.get()%>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" bgcolor=LIGHTGOLDENRODYELLOW>
<%if max.wl.desktopwebsite.IsPopOutPage(){return("")} else
{return(max.wl.GetRadioMenuBar("turquoise","black"))}%>
<!--***MAINTABLE***-->
<table width="100%" border="0" cellspacing="0"  cellpadding="0"><tr>
<%if !max.wl.desktopwebsite.IsPopOutPage(){return("")} else
{return(max.scripts.get("ClosePopupAfterPost"))}%>
<%if max.wl.desktopwebsite.IsItemEditPage() {return("")} else
{return(max.wl.leftcolumn.get(calendarUrlPrefix))}%>
<td valign="top" width=85%>
<!--***MAIN***-->
<%if max.wl.desktopwebsite.IsItemEditPage() {return("")} else
{return(
"<p align=\"right"><font size="+1"><i>"+description+"</i></a></font>"
+"<a href=\""+radio.weblog.getUrl()+""><font size="+2"><b>"+siteName+"</b></a>: </font></p>"
)}%>
<!--***BODYTEXT***-->
<%max.wl.desktopwebsite.get()%> 
<!--***/BODYTEXT***-->
<!--***FOOTER***-->
</td></tr></table>
<!--***/MAINTABLE***-->
<%max.wl.copyright.get()%>
</body>
</html>

fwiw, this makes the popout and href links:

on popout(linktext="",url="",title="",params="", name="") {
 local(s="");
 if string.length(title)==0 {
  s=s+" title=\""+title+"""};
 s="<a"+s+" href=\"#" onclick="window.open('"+url+"','"+name+"','"+params+"'); return false">"+linktext+"</a>";
 return(s)}

on href(linktext="",url="",title="") {
 local(s="");
 if string.length(title)==0 {
  s=s+" title=\""+title+"""};
 return "<a"+s+" href=\"" + url + "">" + linktext + "</a>"}

i'd love to hear your thoughts on this and the prior post. thanks!

# 16:03  Radio 
radio template consolidation and switchable 'functionality'  
 Asc Mo
radio desktopwebsite usability update

i've been ignoring css for layout and in my tinkering unified my template to each be just 19 lines long. #template is identical to #hometemplate. the desktopwebsite temple is a little longer at 26 lines and now contains a couple of usability tweaks.

two weeks or so ago i added a couple of if-statements to the desktopwebsite to make it respond to /?e, /?r, /?c by rendering the edit-box, the recent-posts, and cloud-info respectively. these work in combination too but i just bookmarked the simple versions. i mostly use http://127.0.0.1:5335/?e to add new posts, http://127.0.0.1:5335/?r to see only recent posts. i have a fast machine. this is just for 'focus', when i want it.

using my render-callback-tweak i replace the editlink with one created by the function i worked out just now. its what this post is about :)

my t^.editlink now conditionally opens a new window. I have editlinks on all locally rendered pages. if i edit from these i get a perfectly sized pop-up window that closes after the post while updating the page i started from.

to make this magic happen i made my template page-headers and sidebars conditional. they now disappear from popout edit-windows.. and they disappear from /?e and /?itemToEdit - new and edit post - windows as well. this is a good thing.

@ 21:38 03/16/02
© Michael Ax, 2002