Stories
Slash Boxes
Comments

Dev.SN ♥ developers

Log In

Log In

Create Account  |  Retrieve Password


Site News

Join our Folding@Home team:
Main F@H site
Our team page


Funding Goal
For 6-month period:
2019-07-01 to 2019-12-31
(All amounts are estimated)
Base Goal:
$2000.00

Currently:
$1508.26
75.4%

Covers transactions:
2019-07-01 00:00:00 ..
2019-11-12 18:13:17 UTC
(SPIDs: [1128..1178])
Last Update:
2019-11-12 21:27:53 UTC
--martyb


Support us: Subscribe Here
and buy SoylentNews Swag


We always have a place for talented people, visit the Get Involved section on the wiki to see how you can make SoylentNews better.

Poll

Is this a good poll?

  • Yes
  • No
  • Maybe
  • So

[ Results | Polls ]
Comments:0 | Votes:1

posted by martyb on Thursday April 09, @04:37PM   Printer-friendly [Skip to comment(s)]

Loading the recent_subs page currently shows all subscriptions. Here is the template(default;admin;recent_subs) before making any changes.

NOTE: Slashcode converts tabs and runs of spaces into something like: "       "

[% PROCESS titlebar title="Recent Subscription Payments" %]
<div class="generalbody">
[% IF startat > 0;
    next_startat = startat - 30;
    IF next_startat < 0; next_startat = 0; END; %]
    <form action="[% gSkin.rootdir %]/admin.pl" method="get">
    <input type="hidden" name="op" value="recent_subs">
    <input type="hidden" name="startat" value="[% next_startat | strip_attribute %]">
    <input type="submit" value="<< Next Sub Payments">
    </form>
[% END %]

<table>
    <tr>
        <th>spid</th>
        <th>user</th>
        <th>email</th>
        <th>ts</th>
        <th>payment_net</th>
        <th>payment_gross</th>
        <th>pages</th>
        <th>trans_id</th>
        <th>method</th>
        <th>submethod</th>
    </tr>

    [% FOREACH sub = subs %]
    <tr>
        <td align="right">[% sub.spid %]</td>
        <td align="left"><a href="[% constants.real_rootdir
            %]/~[% sub.nickname | fixnickforlink | strip_paramattr %]">[%
            sub.nickname | strip_literal %] ([% sub.uid %])</a></td>
        <td align="left">[% sub.email | strip_literal %]</td>
        <td align="left">[% sub.ts | strip_literal %]</td>
        <td align="right" class="subs_net">[% sub.payment_net | strip_literal %]</td>
        <td align="right">[% sub.payment_gross | strip_literal %]</td>
        <td align="right">[% sub.pages | strip_literal %]</td>
        <td align="left">[% sub.transaction_id | strip_literal %]</td>
        <td align="left">[% sub.method | strip_literal %]</td>
        <td align="left">[% sub.submethod | strip_literal %]</td>
    </tr>
    [% END %]

</table>

[% prev_startat = startat + 30; %]
<form action="[% gSkin.rootdir %]/admin.pl" method="get">
<input type="hidden" name="op" value="recent_subs">
<input type="hidden" name="startat" value="[% prev_startat | strip_attribute %]">
<input type="submit" value="Prev Sub Payments >>">
</form>
</div>

link.


Original Submission

Partial solution:

    [% PROCESS titlebar title="Recent Subscription Payments" %]
    <div class="generalbody">
    [% IF startat > 0;
        next_startat = startat - 30;
        IF next_startat < 0; next_startat = 0; END; %]
        <form action="[% gSkin.rootdir %]/admin.pl" method="get">
        <input type="hidden" name="op" value="recent_subs">
        <input type="hidden" name="startat" value="[% next_startat | strip_attribute %]">
        <input type="submit" value="<< Next Sub Payments">
        </form>
    [% END %]

    <!-- We'll need a checkbox to toggle visibility: -->
    <input type="checkbox" id="show_grant" name="show_grant" value="checked">

   <!-- And styles for each column;  (should be moved into default.css) ->
   <!-- NB: the "align=" tag attribute is deprecated. -->
   <style type="text/css">
      .spid:      { align:   right; }
      .nick:      { align:   left;  }
      .email:     { align:   left;  }
      .ts:        { align:   left;  }
      .net:       { align:   right; }
      .gross:     { align:   right; }
      .pages:     { align:   right; }
      .transid:   { align:   left;  }
      .method:    { align:   left;  }
      .submethod: { align:   left;  }

      .paid:      { display: table-row; }
      .grant:     { display: none; }
      .grant:     { display: table-row; }

<!-- Need code in here, I think, to make use of  -->
<!-- checkbox value to set the  style for .grant -->

   </style>

    <table>
        <thead>
        <tr>
            <th>spid</th>
            <th>user</th>
            <th>email</th>
            <th>ts</th>
            <th>payment_net</th>
            <th>payment_gross</th>
            <th>pages</th>
            <th>trans_id</th>
            <th>method</th>
            <th>submethod</th>
        </tr>
        </thead>

        <tbody>
        [% FOREACH sub = subs %]

    [% gross_amount [% sub.payment_gross | strip_literal %];
        [% IF gross_amount > 0 subscribe_type = "paid"; ELSE; subscribe_type = "grant"; END;%]
        <tr class="[% subscribe_type %]">
            <td class="spid">[% sub.spid %]</td>
            <td class="nick"><a href="[% constants.real_rootdir
                %]/~[% sub.nickname | fixnickforlink | strip_paramattr %]">[%
                sub.nickname | strip_literal %] ([% sub.uid %])</a></td>
            <td class="email">[% sub.email | strip_literal %]</td>
            <td class="ts">[% sub.ts | strip_literal %]</td>
            <td class="net">[% sub.payment_net | strip_literal %]</td>
            <td class="gross">[% sub.payment_gross | strip_literal %]</td>
            <td class="pages">[% sub.pages | strip_literal %]</td>
            <td class="transid">[% sub.transaction_id | strip_literal %]</td>
            <td class="method">[% sub.method | strip_literal %]</td>
            <td class="submethod">[% sub.submethod | strip_literal %]</td>
        </tr>
        [% END %]
        </tbody>

    </table>

    [% prev_startat = startat + 30; %]
    <form action="[% gSkin.rootdir %]/admin.pl" method="get">
    <input type="hidden" name="op" value="recent_subs">
    <input type="hidden" name="startat" value="[% prev_startat | strip_attribute %]">
    <input type="submit" value="Prev Sub Payments >>">
    </form>
    </div>

posted by Fnord666 on Saturday April 04, @02:07PM   Printer-friendly [Skip to comment(s)]

sample story 5

fasdfsfasfasfasfasdfasdf

sample story 6

asfasdfasfdsdfafdsf
asfasdfasd
fasdfasdfasdf
asfsadfas


Original Submission #1Original Submission #2

posted by Fnord666 on Saturday April 04, @01:46PM   Printer-friendly [Skip to comment(s)]
from the teest-promotion dept.

This is a test.


Original Submission

posted by martyb on Friday March 20, @09:30AM   Printer-friendly [Skip to comment(s)]
from the before-and-after-was-the-original-dept-line-but-it-can-be-much-much-longer-as-you-can-now-see-here!! dept.

[2020-03-20 18:21:26 UTC: Updated dept. line to show how many characters it could contain. --martyb]

[2020-03-20 20:03:14 UTC: Added topics: "/dev/random", "Code", "Software", and "Answers" topics to better illustrate their use of space in a story. --martyb]

IMPORTANT NOTE: Rehash has altered the indentation; tabs have been replaced with spaces.

Here is the original version of the template: dispStory;misc;default

[% dispmode = dispmode || "full" %]
[% IF dispmode == "full" %]
<div class="article">
<span class="sd-info-block" style="display: none">
    <span class="sd-key-sid">[% story.sid %]</span>
    <span class="type">story</span>
    [% IF user.is_admin %]<span class="stoid">[% story.stoid %]</span>[% END %]
</span>
[% stripped_title = story.title | strip_title %]
[% IF magic;
    thisskin = Slash.db.getSkin(story.primaryskid);
    IF thisskin.rootdir;
        title = "<a href=\"$thisskin.rootdir/\">";
    ELSE;
        IF user.is_anon;
            title = "<a href=\"$gSkin.rootdir/$thisskin.name/\">";
        ELSE;
            title = "<a href=\"$gSkin.rootdir/index.pl?section=$story.primaryskid\">";
        END;
    END;
    title = title _ thisskin.title _ "</a>: <a href=\"$thisskin.rootdir/article.pl?sid=$story.sid\">$stripped_title</a>";
ELSE;
    title = "<a href=\"$gSkin.rootdir/article.pl?sid=$story.sid\">$stripped_title</a>";
END %]
[% seen_topics = {} %]
[% PROCESS titlebar future=story.is_future %]
    <div class="details">
        [% IF story.journal_id;
            # at some point, we should maybe have a link
            # directly to the journal entry, perhaps
            # in the storylinks?  for now, just to the journal.
            journal     = Slash.getObject('Slash::Journal');
            thisjournal = journal.get(story.journal_id);
            IF thisjournal && thisjournal.uid;
                thisuser    = Slash.db.getUser(thisjournal.uid); %]
        Journal written by <a href="[% constants.real_rootdir %]/~[% thisuser.nickname | fixnickforlink | strip_paramattr %]/journal/"
            >[% thisuser.nickname | strip_literal %] ([% thisjournal.uid %])</a> and [%
            ELSIF story.by %]
        Written by [% story.by | strip_literal %] and [%
            END;
        END %]
        posted by
        [% IF author.homepage %]
            <a href="[% author.homepage %]">[% author.nickname | strip_literal %]</a>
        [% ELSE %]
            <a href="[% constants.real_rootdir %]/~[% author.nickname | fixnickforlink | strip_paramattr %]/">    [% author.nickname | strip_literal %]</a>
        [% END %]
        [% story.atstorytime %]
        [% IF constants.plugin.Print %]
              <a href="[% gSkin.rootdir -%]/print.pl?sid=[% story.sid %]"><img src="[% constants.imagedir %]/print.gif" height="11" width="15" alt="Printer-friendly"></a>
        [% END %]
        [% IF constants.plugin.Email %]
              <a href="[% gSkin.rootdir -%]/email.pl?sid=[% story.sid %]"><img src="[% constants.imagedir -%]/email.gif" height="14" width="20" alt="Email story" ></a>
        [% END %]<br>
        [% IF constants.use_dept && story.dept %]<strong>from the <b>[% story.dept %]</b> dept.</strong>[% END %]
    </div>
    <div class="body">
        [% mypagemenu = PROCESS pagemenu; IF mypagemenu %]<br>[% mypagemenu %][% END %]
        <div class="topic">
            [% seen_topics.${topic.tid} = 1 %]
            [% IF user.lowbandwidth || user.simpledesign || user.noicons ||  user.pda %]
                [ <a href="[% gSkin.rootdir %]/search.pl?tid=[% topic.tid %]">[% topic.textname %]</a> ]
            [% ELSIF topic.image %]
                <a href="[% gSkin.rootdir %]/search.pl?tid=[% topic.tid %]">
                    <img src="[% constants.imagedir %]/topics/[% topic.image %]" width="[% topic.width %]" height="[% topic.height %]" alt="[% topic.textname %]" title="[% topic.textname %]" >
                </a>
            [% END %]
            [% FOREACH tid = topiclist %]
                [% IF seen_topics.$tid ; NEXT ; END %]
                [% seen_topics.$tid = 1 %]
                [% topic2 = Slash.db.getTopic(tid) %]
                    [% IF user.lowbandwidth || user.simpledesign || user.noicons %]
                        [ <a href="[% gSkin.rootdir %]/search.pl?tid=[% topic2.tid %]" class="topic2">[% topic2.textname %]</a> ]
                    [% ELSIF topic2.image %]
                        <a href="[% gSkin.rootdir %]/search.pl?tid=[% topic2.tid %]" class="topic2">
                            <img src="[% constants.imagedir %]/topics/[% topic2.image %]" width="[% topic2.width %]" height="[% topic2.height %]" alt="[% topic2.textname %]" title="[% topic2.textname %]" >
                        </a>
                    [% END %]
            [% END %]
        </div>
        <div class="intro">
            [%
            # Look ye to parseDomainTags for the domaintags == [0-2] logic
            %]
            [% IF user.domaintags == "3" %]
                [% story.introtext | apply_rehash_tags %]
            [% ELSE %]
                [% pretext = story.introtext | apply_rehash_tags;
                   pretext = Slash.addDomainTags(pretext);
                   pretext = Slash.parseDomainTags(pretext, 1); %]
                [% pretext %]
            [% END %]
        </div>
        [% IF !full && story.bodytext.length %]
                <input type="checkbox" id="more_[% story.sid %]" class="story_more" autocomplete="off" />
                <label for="more_[% story.sid %]" class="story_more">[% constants.story_more %]</label>
                <div class="story_more full">
                        [% story.bodytext | apply_rehash_tags %]
                </div>
        [% END %]

[% IF full && user.is_admin %]
        <br><a href="[% gSkin.rootdir -%]/admin.pl?op=edit&sid=[% story.sid %]">[ Edit ]</a>
        [% IF user.acl.signoff_allowed %]
          [% signed = Slash.db.hasUserSignedStory(stoid, user.uid); %]
          [% UNLESS signed %]<a href="[% gSkin.rootdir -%]/admin.pl?op=edit&sid=[% story.sid %]">[ No Signoff ]</a> [% END %]
        [% END %]
        [% possndstory = Slash.db.getStory(stoid) %]
        [% UNLESS possndstory.neverdisplay %]<a href="[% gSkin.rootdir -%]/admin.pl?op=edit&sid=[% story.sid %]">[ Display Enabled ]</a>[% END %]
[% END %]

[% IF story.is_future && !user.is_admin %]<p>See any serious problems with this story?
[% IF constants.ircslash_remarks %]
    Paste a short message here (if it's a dupe, the URL would be great)
    <form action="[% gSkin.rootdir %]/index.pl" method="post">
    <input type="text" name="remark" size="20" maxlength="100">
    <input type="hidden" name="sid" value="[% story.sid | strip_attribute %]" >
    </form>
    or email
[% ELSE %]
    Email
[% END %]
<a href="mailto:[% constants.adminmail %]?subject=[DP]%20[% story.title | strip_paramattr_nonhttp %]">our on-duty editor</a>.
[% END %]

[% IF full && story.bodytext %]
        <div class="full">
            [% story.bodytext | apply_rehash_tags %]
        </div>
[% END %]
    </div>
</div>
[% ELSIF dispmode == "brief" %]
[% IF story.is_future %]<div class="future">[% END %]
<div class="briefarticle">
[% storylink = Slash.linkStory ({
    sid => story.sid,
    link => story.title,
    tid  => story.tid
    skin => story.primaryskid
}, 1 );
%]
[% title = ''; IF magic;
    thisskin = Slash.db.getSkin(story.primaryskid);
    IF thisskin.rootdir;
        title = "<a href=\"$thisskin.rootdir/\">";
    ELSE;
        IF user.is_anon;
            title = "<a href=\"$gSkin.rootdir/$thisskin.name/\">";
        ELSE;
            title = "<a href=\"$gSkin.rootdir/index.pl?section=$story.primaryskid\">";
        END;
    END;
    title = "<span class=\"section\">" _ title _ thisskin.title _ "</a></span>: ";
END;
    title = title _ "<span class=\"storytitle\"><a href=\"$thisskin.rootdir/article.pl?sid=$story.sid\">$story.title</a></span>";
%]
    [% title %]  [% IF story.commentcount %][% story.commentcount %] comment[% IF story.commentcount > 1 %]s[% END %][% END %]
    [% IF user.is_admin %]<a href="[% gSkin.rootdir -%]/admin.pl?op=edit&sid=[% story.sid %]">(edit)</a>[% END %]
    [% IF getintro %]
    <div class="introhide" id="intro-[% story.stoid %]">
        [% story.introtext | apply_rehash_tags %]
    </div>
    [% END %]
</div>
[% IF story.is_future %]</div>[% END %]
[% END %]

Here is the updated version of the template: dispStory;misc;default

[% dispmode = dispmode || "full" %]
[% IF dispmode == "full" %]
<div class="article">
<span class="sd-info-block" style="display: none">
    <span class="sd-key-sid">[% story.sid %]</span>
    <span class="type">story</span>
    [% IF user.is_admin %]<span class="stoid">[% story.stoid %]</span>[% END %]
</span>
[% stripped_title = story.title | strip_title %]
[% IF magic;
    thisskin = Slash.db.getSkin(story.primaryskid);
    IF thisskin.rootdir;
        title = "<a href=\"$thisskin.rootdir/\">";
    ELSE;
        IF user.is_anon;
            title = "<a href=\"$gSkin.rootdir/$thisskin.name/\">";
        ELSE;
            title = "<a href=\"$gSkin.rootdir/index.pl?section=$story.primaryskid\">";
        END;
    END;
    title = title _ thisskin.title _ "</a>: <a href=\"$thisskin.rootdir/article.pl?sid=$story.sid\">$stripped_title</a>";
ELSE;
    title = "<a href=\"$gSkin.rootdir/article.pl?sid=$story.sid\">$stripped_title</a>";
END %]
[% seen_topics = {} %]
[% PROCESS titlebar future=story.is_future %]
    <div class="details">
        [% IF story.journal_id;
            # at some point, we should maybe have a link
            # directly to the journal entry, perhaps
            # in the storylinks?  for now, just to the journal.
            journal     = Slash.getObject('Slash::Journal');
            thisjournal = journal.get(story.journal_id);
            IF thisjournal && thisjournal.uid;
                thisuser    = Slash.db.getUser(thisjournal.uid); %]
        Journal written by <a href="[% constants.real_rootdir %]/~[% thisuser.nickname | fixnickforlink | strip_paramattr %]/journal/"
            >[% thisuser.nickname | strip_literal %] ([% thisjournal.uid %])</a> and [%
            ELSIF story.by %]
        Written by [% story.by | strip_literal %] and [%
            END;
        END %]
        posted by
        [% IF author.homepage %]
            <a href="[% author.homepage %]">[% author.nickname | strip_literal %]</a>
        [% ELSE %]
            <a href="[% constants.real_rootdir %]/~[% author.nickname | fixnickforlink | strip_paramattr %]/">    [% author.nickname | strip_literal %]</a>
        [% END %]
        [% story.atstorytime %]
        [% IF constants.plugin.Print %]
              <a href="[% gSkin.rootdir -%]/print.pl?sid=[% story.sid %]"><img src="[% constants.imagedir %]/print.gif" height="11" width="15" alt="Printer-friendly"></a>
        [% END %]
        [% IF constants.plugin.Email %]
              <a href="[% gSkin.rootdir -%]/email.pl?sid=[% story.sid %]"><img src="[% constants.imagedir -%]/email.gif" height="14" width="20" alt="Email story" ></a>
        [% END %]<br>
        [% IF constants.use_dept && story.dept %]<strong>from the <b>[% story.dept %]</b> dept.</strong>[% END %]
    </div>

    <div class="body">

    <!-- BEGIN in-memory update 2020-03-20 --martyb -->
    <div class="linkCommentPage" style="margin: 0; padding: 0; background-color: inherit !important;">
        <span class="nbutton">
            <b>
                <style>html body div#frame div#contents div#index div#articles div.article div.body div.linkCommentPage span.nbutton b a {display: none;}</style>
                <a href="#acomments">Skip to comment(s)</a>
            </b>
        </span>
    </div>
    <!-- END in-memory update 2020-03-20 --martyb -->

        [% mypagemenu = PROCESS pagemenu; IF mypagemenu %]<br>[% mypagemenu %][% END %]
        <div class="topic">
            [% seen_topics.${topic.tid} = 1 %]
            [% IF user.lowbandwidth || user.simpledesign || user.noicons ||  user.pda %]
                [ <a href="[% gSkin.rootdir %]/search.pl?tid=[% topic.tid %]">[% topic.textname %]</a> ]
            [% ELSIF topic.image %]
                <a href="[% gSkin.rootdir %]/search.pl?tid=[% topic.tid %]">
                    <img src="[% constants.imagedir %]/topics/[% topic.image %]" width="[% topic.width %]" height="[% topic.height %]" alt="[% topic.textname %]" title="[% topic.textname %]" >
                </a>
            [% END %]
            [% FOREACH tid = topiclist %]
                [% IF seen_topics.$tid ; NEXT ; END %]
                [% seen_topics.$tid = 1 %]
                [% topic2 = Slash.db.getTopic(tid) %]
                    [% IF user.lowbandwidth || user.simpledesign || user.noicons %]
                        [ <a href="[% gSkin.rootdir %]/search.pl?tid=[% topic2.tid %]" class="topic2">[% topic2.textname %]</a> ]
                    [% ELSIF topic2.image %]
                        <a href="[% gSkin.rootdir %]/search.pl?tid=[% topic2.tid %]" class="topic2">
                            <img src="[% constants.imagedir %]/topics/[% topic2.image %]" width="[% topic2.width %]" height="[% topic2.height %]" alt="[% topic2.textname %]" title="[% topic2.textname %]" >
                        </a>
                    [% END %]
            [% END %]
        </div>
        <div class="intro">
            [%
            # Look ye to parseDomainTags for the domaintags == [0-2] logic
            %]
            [% IF user.domaintags == "3" %]
                [% story.introtext | apply_rehash_tags %]
            [% ELSE %]
                [% pretext = story.introtext | apply_rehash_tags;
                   pretext = Slash.addDomainTags(pretext);
                   pretext = Slash.parseDomainTags(pretext, 1); %]
                [% pretext %]
            [% END %]
        </div>
        [% IF !full && story.bodytext.length %]
                <input type="checkbox" id="more_[% story.sid %]" class="story_more" autocomplete="off" />
                <label for="more_[% story.sid %]" class="story_more">[% constants.story_more %]</label>
                <div class="story_more full">
                        [% story.bodytext | apply_rehash_tags %]
                </div>
        [% END %]

[% IF full && user.is_admin %]
        <br><a href="[% gSkin.rootdir -%]/admin.pl?op=edit&sid=[% story.sid %]">[ Edit ]</a>
        [% IF user.acl.signoff_allowed %]
          [% signed = Slash.db.hasUserSignedStory(stoid, user.uid); %]
          [% UNLESS signed %]<a href="[% gSkin.rootdir -%]/admin.pl?op=edit&sid=[% story.sid %]">[ No Signoff ]</a> [% END %]
        [% END %]
        [% possndstory = Slash.db.getStory(stoid) %]
        [% UNLESS possndstory.neverdisplay %]<a href="[% gSkin.rootdir -%]/admin.pl?op=edit&sid=[% story.sid %]">[ Display Enabled ]</a>[% END %]
[% END %]

[% IF story.is_future && !user.is_admin %]<p>See any serious problems with this story?
[% IF constants.ircslash_remarks %]
    Paste a short message here (if it's a dupe, the URL would be great)
    <form action="[% gSkin.rootdir %]/index.pl" method="post">
    <input type="text" name="remark" size="20" maxlength="100">
    <input type="hidden" name="sid" value="[% story.sid | strip_attribute %]" >
    </form>
    or email
[% ELSE %]
    Email
[% END %]
<a href="mailto:[% constants.adminmail %]?subject=[DP]%20[% story.title | strip_paramattr_nonhttp %]">our on-duty editor</a>.
[% END %]

[% IF full && story.bodytext %]
        <div class="full">
            [% story.bodytext | apply_rehash_tags %]
        </div>
[% END %]
    </div>
</div>
[% ELSIF dispmode == "brief" %]
[% IF story.is_future %]<div class="future">[% END %]
<div class="briefarticle">
[% storylink = Slash.linkStory ({
    sid => story.sid,
    link => story.title,
    tid  => story.tid
    skin => story.primaryskid
}, 1 );
%]
[% title = ''; IF magic;
    thisskin = Slash.db.getSkin(story.primaryskid);
    IF thisskin.rootdir;
        title = "<a href=\"$thisskin.rootdir/\">";
    ELSE;
        IF user.is_anon;
            title = "<a href=\"$gSkin.rootdir/$thisskin.name/\">";
        ELSE;
            title = "<a href=\"$gSkin.rootdir/index.pl?section=$story.primaryskid\">";
        END;
    END;
    title = "<span class=\"section\">" _ title _ thisskin.title _ "</a></span>: ";
END;
    title = title _ "<span class=\"storytitle\"><a href=\"$thisskin.rootdir/article.pl?sid=$story.sid\">$story.title</a></span>";
%]
    [% title %]  [% IF story.commentcount %][% story.commentcount %] comment[% IF story.commentcount > 1 %]s[% END %][% END %]
    [% IF user.is_admin %]<a href="[% gSkin.rootdir -%]/admin.pl?op=edit&sid=[% story.sid %]">(edit)</a>[% END %]
    [% IF getintro %]
    <div class="introhide" id="intro-[% story.stoid %]">
        [% story.introtext | apply_rehash_tags %]
    </div>
    [% END %]
</div>
[% IF story.is_future %]</div>[% END %]
[% END %]


Original Submission

posted by on Wednesday January 22, @11:37AM   Printer-friendly [Skip to comment(s)]
from the entropy-is-a-bitch dept.

Knacker T Arthurbracket has found the following story:

Today's wintry tale of how the highest tech can be brought down by the simplest things comes from "Dino", for that is not his name, and takes us back to the 1990s.

Dino had been working for an outfit that provided networking over satellite. "Things," he said, "had been going well for the 12 months since the ground station was put online."

There had been no incidents or outages "other than a couple of solar flares interrupting things".

It was all too good to last: "One December evening I got a call from the on-shift engineer saying that no matter what he did, the test signal we were monitoring back to ourselves kept falling."

This wasn't good, and was a sign that the dish had probably got off-track with the satellite. If not corrected, the resultant loss of service would be both inconvenient and expensive for those footing the bill for that out-of-this-world networking. Dealing with the problem, Dino told us, meant that "some very careful repointing may have to take place manually".

Obviously it wasn't ideal, but being the dedicated professional that he is (and because the facility wasn't far), Dino "got in the car and shot down to the ground station, whereupon I was greeted by a rather frantic engineer".

The panicked techie led Dino to the ops room, showed him the falling signal and, no doubt in that high-pitched wavering voice many adopt in moments of stress, "explained that he didn't know what else to do".

Dino peered around the brightly lit operations room, with all its machinery, flashing lights, machines that go "ping", and windows (of the glass variety).

At that point the penny dropped. With all the lights on, it was impossible to see outside into the night. And outside it was "yup... snowing."

The duo trotted out in the winter night and found the dish covered in the fluffy white stuff.

"The dish heaters had tripped and the dish was covered in snow, so it was obvious why we had a falling signal..."

Hurrah! No manual repointing was needed, just the low-tech judicious application of a broom to brush the stuff off and turning the heaters back on.

Job done! The two headed back into the warmth of the ops room for a well-earned coffee.

"Only," said Dino, "it wasn't high-five time just yet."


Original Submission

posted by on Wednesday January 22, @11:00AM   Printer-friendly [Skip to comment(s)]

Title: Americium In A Mof

--- --- --- --- Entire Story Below - Must Be Edited --- --- --- --- --- --- ---

Arthur T Knackerbracket has found the following story:

See allHide authors and affiliations

Americium is a by-product in nuclear reactors that continues to emit radiation for thousands of years. Its separation from spent nuclear fuels has therefore motivated copious study of its fundamental coordination chemistry. To this end, Cahill et al. have now incorporated trivalent 243Am ions into a metal-organic framework (MOF). The framework architecture was chosen on the basis of known analogs prepared from chemically similar but more stable lanthanide ions. Although radioactive decay progressively damaged the crystals, the authors were still able to refine structural data over the course of 3 months.

Vol 366, Issue 6461
04 October 2019

Thank you for your interest in spreading the word about Science.

NOTE: We only request your email address so that the person you are recommending the page to knows that you wanted them to see it, and that it is not junk mail. We do not capture any email address.

 

Please log in to add an alert for this article.

 

By Jake Yeston

By Jake Yeston

Vol 366, Issue 6461

© 2019 American Association for the Advancement of Science. All rights reserved. AAAS is a partner of HINARIAGORA, OARE, CHORUSCLOCKSSCrossRef and COUNTER.
Science ISSN 1095-9203.


Original Submission

posted by martyb on Monday September 30 2019, @07:54AM   Printer-friendly [Skip to comment(s)]

mysql> SELECT * FROM example_table ORDER BY id ;
+----+---------------------------------------------------------------------------------+---------------------------------------------------+
| id | somefield                                                                       | otherfield                                        |
+----+---------------------------------------------------------------------------------+---------------------------------------------------+
| 1  | there is a single space between each and every word in this entry in this field | and each one of these words is also single-spaced |
| 2  | there are five words here                                                       | here are four words                               |
| 3  | three words here                                                                | two words                                         |
+----+---------------------------------------------------------------------------------+---------------------------------------------------+
3 rows in set (0.01 sec)
mysql>

mysql>
SELECT * FROM USPS_abbr ORDER BY state ;
+------+----------------+
| abbr | state          |
+------+----------------+
| AL   | Alabama        |
| AK   | Alaska         |
| AZ   | Arizona        |
| AR   | Arkansas       |
| CA   | California     |
| CO   | Colorado       |
| CT   | Connecticut    |
| DE   | Delaware       |
| FL   | Florida        |
| GA   | Georgia        |
| HI   | Hawaii         |
| ID   | Idaho          |
| IL   | Illinois       |
| IN   | Indiana        |
| IA   | Iowa           |
| KS   | Kansas         |
| KY   | Kentucky       |
| LA   | Louisiana      |
| ME   | Maine          |
| MD   | Maryland       |
| MA   | Massachusetts  |
| MI   | Michigan       |
| MN   | Minnesota      |
| MS   | Mississippi    |
| MO   | Missouri       |
| MT   | Montana        |
| NE   | Nebraska       |
| NV   | Nevada         |
| NH   | New Hampshire  |
| NJ   | New Jersey     |
| NM   | New Mexico     |
| NY   | New York       |
| NC   | North Carolina |
| ND   | North Dakota   |
| OH   | Ohio           |
| OK   | Oklahoma       |
| OR   | Oregon         |
| PA   | Pennsylvania   |
| RI   | Rhode Island   |
| SC   | South Carolina |
| SD   | South Dakota   |
| TN   | Tennessee      |
| TX   | Texas          |
| UT   | Utah           |
| VT   | Vermont        |
| VA   | Virginia       |
| WA   | Washington     |
| WV   | West Virginia  |
| WI   | Wisconsin      |
| WY   | Wyoming        |
+------+----------------+
50 rows in set (0.02 sec)
mysql>

posted by martyb on Monday September 30 2019, @07:51AM   Printer-friendly [Skip to comment(s)]

mysql> SELECT * FROM example_table ORDER BY id ;
+----+---------------------------------------------------------------------------------+---------------------------------------------------+
| id | somefield                                                                       | otherfield                                        |
+----+---------------------------------------------------------------------------------+---------------------------------------------------+
| 1  | there is a single space between each and every word in this entry in this field | and each one of these words is also single-spaced |
| 2  | there are five words here                                                       | here are four words                               |
| 3  | three words here                                                                | two words                                         |
+----+---------------------------------------------------------------------------------+---------------------------------------------------+
3 rows in set (0.01 sec)
mysql>

mysql>
SELECT * FROM USPS_abbr ORDER BY state ;
+------+----------------+
| abbr | state          |
+------+----------------+
| AL   | Alabama        |
| AK   | Alaska         |
| AZ   | Arizona        |
| AR   | Arkansas       |
| CA   | California     |
| CO   | Colorado       |
| CT   | Connecticut    |
| DE   | Delaware       |
| FL   | Florida        |
| GA   | Georgia        |
| HI   | Hawaii         |
| ID   | Idaho          |
| IL   | Illinois       |
| IN   | Indiana        |
| IA   | Iowa           |
| KS   | Kansas         |
| KY   | Kentucky       |
| LA   | Louisiana      |
| ME   | Maine          |
| MD   | Maryland       |
| MA   | Massachusetts  |
| MI   | Michigan       |
| MN   | Minnesota      |
| MS   | Mississippi    |
| MO   | Missouri       |
| MT   | Montana        |
| NE   | Nebraska       |
| NV   | Nevada         |
| NH   | New Hampshire  |
| NJ   | New Jersey     |
| NM   | New Mexico     |
| NY   | New York       |
| NC   | North Carolina |
| ND   | North Dakota   |
| OH   | Ohio           |
| OK   | Oklahoma       |
| OR   | Oregon         |
| PA   | Pennsylvania   |
| RI   | Rhode Island   |
| SC   | South Carolina |
| SD   | South Dakota   |
| TN   | Tennessee      |
| TX   | Texas          |
| UT   | Utah           |
| VT   | Vermont        |
| VA   | Virginia       |
| WA   | Washington     |
| WV   | West Virginia  |
| WI   | Wisconsin      |
| WY   | Wyoming        |
+------+----------------+
50 rows in set (0.02 sec)
mysql>

posted by martyb on Friday September 13 2019, @10:40PM   Printer-friendly [Skip to comment(s)]

test story on which to hang comments to try and validate filters


Original Submission

posted by martyb on Wednesday July 17 2019, @06:03AM   Printer-friendly [Skip to comment(s)]
from the https://www.cnet.com/news/elon-musks-neuralink-plans-2020-human-test-of-brain-computer-interface/ dept.

Elon Musk's Neuralink plans 2020 human test of brain-computer interface

"A monkey has been able to control a computer with his brain," CEO Musk says of his startup's brain-machine interface.

July 16, 2019 11:13 PM PDT

Neuralink's N1 sensor, a few millimeters across, can connect to 1,024 tiny probes laced into the interior of a brain. The sensor chip is embedded under the skin and links to a wearable device behind the ear.

Neuralink; Screenshot by Stephen Shankland/CNET

Neuralink, Elon Musk's startup that's trying to directly link brains and computers, has developed a system to feed thousands of electrical probes into a brain and hopes to start testing the technology on humans in in 2020, Chief Executive Elon Musk revealed Tuesday.

And it's working already in animal tests. "A monkey has been able to control a computer with his brain," Musk said at a San Francisco live-streaming the presentation on YouTube Tuesday, revealing even more research results than the company's scientists expected.

Now playing: Watch this: Elon Musk’s Neuralink wants to hook your brain to a computer...

18:28

Neuralink's initial goal is to help people deal with brain and spinal-cord injuries or congenital defects, Musk said. The technology could help paraplegics who have lost the ability to move or sense because of spinal cord injury -- a medical treatment that's a lot less shocking than radical sci-fi ideas like "consensual telepathy." 

But the long-term goal is to build a "digital superintelligence layer" to link humans with artificial intelligence, a technology he views as an existential threat to humanity.

"Ultimately, we can do a full brain-machine interfaces where we can achieve a sort of symbiosis with AI," Musk said. One goal along the way will be letting people type 40 words per minute just by thinking.

Neuralink envisions up to brain-connected chips and accompanying communication wires placed under the skin. A data-transfer system would then link to a wearable, removable pod behind the ear that communicates wirelessly with external devices like a phone or computer.

Neuralink; Screenshot by Stephen Shankland/CNET

Neuralink has the potential to dramatically reshape both computing and humanity -- if it and like-minded researchers can persuade regulators and society at large that we should be directly wired to machines. That's a big if. The challenges are immense when it comes to developing the technology, making it practical and affordable, and convincing people it's safe and desirable.

The startup uses sewing machine-like technology revealed earlier this year to drill small holes into brains and thread electrodes inside, steering clear of blood vessels as they go.

"We hope to have this, aspirationally, in a human patient by the end of this year. So it's not far," Musk said. He acknowledged, though, that approval from the US Food and Drug Administration "is quite difficult."

Brain-machine interface (BMI) technology is active research at other competitors and laboratories. But some worry that Neuralink's invasive method is risky.

Today, some epilepsy patients have dozens of wires inserted to monitor brain activity, said Bin He, head of biomedical engineering at Carnegie Mellon University and a researcher who favors noninvasive methods. "In the general population, I could not see how many of such inserted wires into a human's brain would not cause risks or potentially impair the working of the brain," He said.

Noninvasive methods not only can read brain activity but also stimulate it. That's easier at the surface, but new breakthroughs show promise for communications with neurons deeper in the brain, He said.

Even if Neuralink's approach works, don't expect to download the ability to speak French anytime soon. Even Neuralink's first goals are ambitious, and training to brain to understand the Neuralink signals won't be easy, either, Neuralink President and co-founder Max Hodak said. "It's a long process. It's like learning to touch type or play piano," he said. 

Thousands of electrodes implanted by robot

Neuralink's robot is shown here implanting electrodes that are about a quarter the width of a human hair.

Neuralink; Screenshot by Stephen Shankland/CNET

With Neuralink's approach, a robot inserts tiny threads a quarter the width of a human hair. "The threads are about the same size as a neuron," Musk said. "If you're going to stick something in your brain, you want it to be tiny -- approximately on par with the things that are already there."

A "wisp" of 1,024 threads attach to a small chip, up to 10 of which will be embedded under your skin. Each will connect wirelessly to a wearable, detachable, upgradable "pod" behind your ear that communicates wirelessly with a phone. "The interface to the chip is wireless so you have no wires poking out of your head. It basically Bluetooths to your phone," Musk said.

The installation takes place through holes 2mm wide, temporarily expanded to 8mm, then glued shut, Musk said. Among the company's challenges are developing electrodes that will last "many decades," but "getting the right coatings is a tough materials science problem." The human brain is not a hospitable environment.

Electrodes read and write brain data

Neuralink is designing its electrodes not just to "read" from neurons what's going on in the brain, but also to "write" signals into the brain. "You can use this technology in the brain to restore a sense of touch or vision," said Neuralink scientist Philip Sabes.

Connections to the motor-control parts of the brain also could help people with brain disorders, Sabes said.

Neuralink's N1 sensor chip, measuring 4x5mm in its present incarnation, can detect spikes of neural activity and send signals back to the brain.

Neuralink; Screenshot by Stephen Shankland/CNET

"A person could imagine running, dancing or even kung fu," Sabes said, with the Neuralink connection controlling their 3D avatar in a digital realm. "Ultimately, if and when technology for spinal cord nerve or muscle stimulation gets far enough, it could be used to restore that individual's control over their own body."

Neuralink hopes its procedure will be safe and easy enough that people will choose to undergo it. "This should be safe enough that it can be an elective procedure," said company neurosurgeon Matthew MacDougall.

In tests so far, "We've been able to rapidly place thousands of electrodes into the brain without any bleeding," MadDougall said. That's because the electrodes are small -- far smaller than current deep-brain stimulation electrodes that currently come with about a 1 in 100 risk of causing bleeding in the brain, he said.

Now playing: Watch this: Controlling electronics with your mind!

5:10

In an era dominated by tech giants that have succeeded through computing hardware, software and services, Musk stands out as an entrepreneur who's got a knack for other parts of the physical world -- things like electricity, rocks and gravity. 

Musk is pretty busy. He's got Tesla, which makes electric cars and trucks, massive electric power storage batteries and solar roofs. He's got SpaceX, which is launching satellites -- including its own set for providing internet service -- and is working on rockets to get people to orbit, Mars and the other side of Earth. Then there's the Boring Company, which is trying to create tunnels to relieve automobile congestion on ordinary roads.

Neuralink brings the squishier, immensely complicated realm of biology into Musk's purview. Human brains are famously hard to understand, though computer scientists at companies like Facebook and Google are progressing rapidly at emulating some of how they work through technology called neural networks, the most practical and promising foundation for today's artificial intelligence work. One of the most useful aspects of that research is getting computers to understand humans better by processing human speech.

But as with Musk's other projects, he sees Neuralink as important to civilization.

"Even in a benign AI scenario, we will be left behind. Hopefully it is a benign scenario," where superintelligent AIs surpass but don't wipe out humans, Musk said. "With a high-bandwidth brain-machine interface, I think we can go along for the ride and effectively have the option of merging with AI."

First published July 16, 8:41 p.m. PT.

Update, 11:13 p.m. PT to add further details, images and background.

Share your voice

All Rights Reserved.

Affiliate Disclosure

CNET may get a commission from retail offers.

Top Brands


Original Submission