#indieweb 2017-12-31

2017-12-31 UTC
#
j12t
Getting lots of 502 Bad Gateway on the indieweb.org site today
snarfed joined the channel
#
j12t
P.S. What gateway?!?
[kevinmarks] joined the channel
#
[kevinmarks]
Trying to fill in the Lighthouse circles
#
aaronpk
the server is fine overall, what are you doing that is triggering it?
#
j12t
aaronpk: clicking links and stuff ... highly sophisticated stuff :-)
#
aaronpk
was the last error 20 minutes ago, or just now?
#
Loqi
[indienews] New post: "Adding weather to my site" https://eddiehinkle.com/2017/12/30/20/article/
#
j12t
aaronpk: when I was doing the edits today: https://indieweb.org/Special:RecentChanges
#
j12t
so 20min+ sounds about right
#
aaronpk
aha figured it out :) shouldn't happen again
#
snarfed
aaronpk++
#
Loqi
aaronpk has 531 karma in this channel (1516 overall)
[tantek] joined the channel
#
strugee
aaronpk: looks great!
#
strugee
challenge calendar material, perhaps?
#
@uboslinux
End-to-end tutorials: how to set up an Indie Website with UBOS https://ubos.net/blog/2017/12/30/indieweb-end-to-end-tutorial.html #ubos #indieweb
(twitter.com/_/status/947277460692918272)
#
aaronpk
indeed :)
#
Loqi
[indienews] New post: "New Tiny IndieWeb Badge!" https://aaronparecki.com/2017/12/30/7/indieweb-badge
wolftune joined the channel
#
aaronpk
[eddie] I noticed the screenshot of your weather in posts shows a grey icon, but now your site is using emoji! what was the reason for the change?
gRegorLove_ and wolftune joined the channel
#
GWG
Weather has been on my list for a while.
#
strugee
so I gotta run to dinner but I made a draft of what I thought an IndieMark badge might look like: https://people.strugee.net/~alex/indiemark%20template.svg
#
strugee
would love some feedback
#
strugee
I'm not really sure, it might be too visually noisy
#
strugee
note also that the IndieWeb font costs $190 and I wasn't about to drop that amount on something that might not work out anyway, so for the final version someone who owns the font would have to adjust it
aexoxea joined the channel
#
aaronpk
neat idea
#
aaronpk
in general I don't think we should be taking apart the logo and using it in other things. generally if you look at branding guidelines there are strict rules about how to use logos, and for good reason
#
tomasparks
strugge: I like
renem, snarfed and [eddie] joined the channel
#
[eddie]
!tell aaronpk: in my mind I always pictured the weather as colored but when I was actually building it my first thought was to use font awesome, it’s my default for icons.
#
[eddie]
!tell aaronpk After I did it I found It didn’t have the variety or color of icons I wanted. I was pretty disappointed. Then I realized I could put emojis. As I looked I found that the emojis were really what I always had in my mind and provided more opportunities for me.
#
Loqi
Ok, I'll tell them that when I see them next
#
Loqi
Ok, I'll tell them that when I see them next
#
aaronpk
interesting
#
Loqi
aaronpk: [eddie] left you a message 1 minute ago: in my mind I always pictured the weather as colored but when I was actually building it my first thought was to use font awesome, it’s my default for icons.
#
Loqi
aaronpk: [eddie] left you a message 1 minute ago: After I did it I found It didn’t have the variety or color of icons I wanted. I was pretty disappointed. Then I realized I could put emojis. As I looked I found that the emojis were really what I always had in my mind and provided more opportunities for me.
#
aaronpk
and there are enough emoji to cover the range of icons you use?
#
[eddie]
There are. Sleet and Hail end up as the same icon
#
[eddie]
But everything else works
#
[eddie]
And the thing I’m really excited about is the moon stuff in the blog post
#
[eddie]
And that is only possible because of the emojis
#
[eddie]
If I find some really nice SVGs in the future I would be open to switching but I am 50x happier with the emoji than the font awesome icons for weather
#
aaronpk
it's interesting cause I actually explicitly don't want them colored
#
[eddie]
Interesting! To me the sun needs to be yellow and snow should be blue lol
#
[eddie]
Blueish
#
[eddie]
So when it’s not it made me confused
#
[eddie]
Oh wow aaronpk, there is a lot of variety in that set!!
tomasparks joined the channel
#
[eddie]
Thanks KartikPrabhu, I’ll have to look through that page
#
KartikPrabhu
[eddie]: you can also search for "weather" on https://icomoon.io/app/#/select
[miklb] joined the channel
#
Loqi
[Aaron Parecki] Adding Weather to my Posts!
#
GWG
aaronpk: I feel like I should consider this a challenge.
#
GWG
First [eddie] now you
#
aaronpk
Calum was way earlier!
#
GWG
But not today
[eddie] joined the channel
#
[eddie]
😁😁
#
[eddie]
Join the club, GWG!!
gRegorLove_ joined the channel
#
strugee
aaronpk: yeah that makes sense
#
strugee
I think the shapes may be too disparate to make it work anyway
#
strugee
not sure what we'd use other than the logo though
#
strugee
tomasparks: thx :-)
wolftune, gRegorLove, [miklb] and tomasparks joined the channel
#
tomasparks
strugee: generation badge
#
tomasparks
strugge: indiemark badge
pindonga and [kevinmarks] joined the channel
friedcell joined the channel
friedcell joined the channel
friedcell left the channel
#
@serdar
Time to host your own content. #indieweb
(twitter.com/_/status/947403052331311104)
#
Loqi
I’ve just written Rhythmbox scrobbling system for my notes the php script takes rhythmdb.xml located at /home/tom/.local/share/rhythmbox...
#
tomasparks
thanks loqi
#
Loqi
you're welcome, tomasparks
#
Loqi
[indienews] New post: "I am curently writing a custom indieweb note system for my webiste, my requirements are different to most/all indieweb implementation as I need three different way of creating notes Text-editor, Browser and Offline text-editor I use a text editor to add entries to YAML file This Github Sample is by tomasparks _notes/local/2017/10.yml view raw - date: 2017-10-19 type: twitter message: "I've been watching Donald Trump and 'little rocket man' Kim Jong-un and it reminds me of [Team America: World Police](https://en.wikipedia.org/wiki/Team_America:_World_Police)" - date: 2017-10-19 type: like web Browser / mircopub Unimplementated because I have not found a browser plugin/addon that support my wishlist1 yet, the closest i’ve found is Omnibear Offline / CSV I use a PDA2, when I away from my computers, the PDA has good database software witch can export CSV files This Github Sample is by tomasparks _notes/pda/2017/12.csv view raw "twitter",,"its been 12 months sinceth glenfliet fire",,"15/12/2017" "read","ASIN:B073GDQFJ2",,"page: 213","15/12/2017" "read","ASIN:B073GDQFJ2","minitel ads were hated just as much as todays internet ads","page: 216-217","15/12/2017" "bookmark","journey 1 and 2",,,"15/12/2017" "read","ASIN:B073GDQFJ2",,"page: 251","16/12/2017" data format I am using the SQL format to demonstrate the data format CREATE TABLE data ( date CHAR(255), type CHAR(255), tags CHAR(255), url CHAR(255), message TEXT ); type is for the post type excluding articles tags are a csv encoded key:value pairs url are for Uniform Resource Identifier, I am currently using CSV ecoded key:value pairs, I am looking at using the Url Query format in the future NOTE: data fomrat MUST be human editable No url encoding Source Code This Github Sample is by tomasparks _rake/notes.php view raw #!/usr/bin/env php <?php // key: qhNU8kMDrqS2Ryk8ExmyA //secret: 1tICNtAofpr0Coycb4eacrf4FcFCWSOzW8novjYL8 require_once './php-mf2/Mf2/Parser.php'; require_once './htmlpurifier/library/HTMLPurifier.auto.php'; require_once './goodreads-api/GoodReads.php'; function create_notes($data) { foreach ($data as $note) { print_r($note); echo "\n"; $hash = hash ('sha1' , json_encode($note)); echo $hash."\n"; $date_split = date_parse($note['date']); $isodate = sprintf("%04d-%02d-%02d", $date_split['year'], $date_split['month'], $date_split['day']); $permdate = sprintf("%04d/%02d/%02d", $date_split['year'], $date_split['month'], $date_split['day']); $mdfile = fopen($hash.".md", "w"); fwrite($mdfile, "---\n"); fwrite($mdfile, "layout: notes_".$note['type']."\n"); fwrite($mdfile, "date: ".$isodate."\n"); fwrite($mdfile, "type: ".$note['type']."\n"); //fwrite($mdfile, "date: ".$isodate."\n"); fwrite($mdfile, "permalink: /notes/".$note['type']."/".$permdate."/".$hash.".html\n"); switch ($note['type']) { case "twitter": //fwrite($mdfile, "ext-url: ".$note['url']."\n"); fwrite($mdfile, "---\n"); fwrite($mdfile, $note['message']."\n"); break; case "like": $html = file_get_contents($note['url']); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $cleanhtml = $purifier->purify($html); $mf = Mf2\parse($cleanhtml, $note['url']); fwrite($mdfile, "ext-url: ".$note['url']."\n"); fwrite($mdfile, "---\n"); //fwrite($mdfile, $note['message']."\n"); break; case "read"; $goodreads_api = new GoodReads('qhNU8kMDrqS2Ryk8ExmyA', '/home/tom/github/blog/website/_rake/tmp/'); $tags = $note['tags']; if (array_key_exists("asin",$tags)) { $data = $goodreads_api->getBookByISBN($tags['asin']); } if (array_key_exists("ASIN",$tags)) { $data = $goodreads_api->getBookByISBN($tags['ASIN']); } $book = $data['book']; fwrite($mdfile, "book-title: \"".$book['title']."\"\n"); fwrite($mdfile, "book-image_url: \"".$book['small_image_url']."\"\n"); fwrite($mdfile, "book-url: \"".$book['url']."\"\n"); //foreach($note['tags'] as $tagkey => $tag_value) { //fwrite($mdfile, "tags-".$tagkey.": ".$tag_value."\n"); //} //foreach($note['urls'] as $urlkey => $url_value) { //fwrite($mdfile, "urls-".$urlkey.": ".$url_value."\n"); //} fwrite($mdfile, "---\n"); fwrite($mdfile, $note['message']."\n"); //fwrite($mdfile,json_encode($book)."\n"); break; default: fwrite($mdfile, "---\n"); fwrite($mdfile, $note['message']."\n"); break; } fclose($mdfile); } } function csv_parse_file ( $file ) { echo "opening ".$file."...."; if (($handle = fopen($file, "r")) !== FALSE) { echo "Done\n"; while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { print_r($data); $res['type'] = $data['0']; $tmpdate = date_create_from_format('d/m/Y', $data['4']); $res['date'] = date_format($tmpdate, 'Y-m-d'); $res['message'] = $data['2']; // $res['tag'] = $data['1']; // $my_string = "key0:value0,key1:value1,key2:value2"; // tags $oldtags_array = explode(',', $data['1']); $tags_array = ""; for($i=0; $i < count($oldtags_array ); $i++){ $key_value = explode(':', $oldtags_array [$i]); $tags_array[$key_value [0]] = $key_value [1]; } $res['tags'] = $tags_array; // url tags if (strpos($data['3'], 'http') !== false) { $res['url'] = $data['3']; } else { $oldurl_array = explode(',', $data['3']); $url_array = ""; for($i=0; $i < count($oldurl_array ); $i++){ $key_value = explode(':', $oldurl_array [$i]); $url_array[$key_value [0]] = $key_value [1]; } $res['urls'] = $url_array; } $ret[] = $res; } } fclose($handle); return $ret; } $path = getcwd(); $notes_path = str_replace("_rake","_notes",$path); chdir($notes_path); $notes_dir = scandir($notes_path); foreach ($notes_dir as $dir) { if ($dir === "." or $dir === ".." ) {continue;} chdir($notes_path."/".$dir); $year_dir = scandir($notes_path."/".$dir); foreach ($year_dir as $ydir) { if ($ydir === "." or $ydir === "..") {continue;} chdir($notes_path."/".$dir."/".$ydir); echo getcwd()."\n"; $filelist = scandir($notes_path."/".$dir."/".$ydir); foreach ($filelist as $file) { if ($file === "." or $file === "..") {continue;} switch(true) { case strstr($file, "md"): echo "skipping md file\n"; continue 2; case strstr($file, "yml"): echo "yml file\n"; $data = yaml_parse_file ( $file ); create_notes($data); break; case strstr($file, "csv"): echo "CSV file\n"; $data = csv_parse_file ( $file ); create_notes($data); break; } } } } ?> Support like/comments, UPDATE: I found own your comments and IndieWeb Reply Browser-Extension, but they seam like they have code rot :( ↩ It’s as psion 5mx Pro ↩ Date: 26 Dec 2017 Permalink: https://tomasparks.github.io//archive/2017/12/notes-system.html Also posted on IndieNews my photo Tom Sparks email, I am a Alternative Technology Researcher, with a focus on Digital Communication Networks." https://tomasparks.github.io//archive/2017/12/notes-system.html
#
Loqi
[indienews] New post: "I’ve just written Rhythmbox scrobbling system for my notes the php script takes rhythmdb.xml located at /home/tom/.local/share/rhythmbox/ and creates a yml file This Github Sample is by tomasparks _notes/local/2017/r12.yml view raw --- - date: "2017-10-16 06:21:22" type: scrobble tags: title=netic+jazzin+it+up&artist=netic&album=Unknown&play-count=1 - date: "2017-10-25 16:37:29" Source Code This Github Sample is by tomasparks _rake/rhythmdb2notes.php view raw #!/usr/bin/env php <?php if (file_exists('/home/tom/.local/share/rhythmbox/rhythmdb.xml')) { $xml = simplexml_load_file('/home/tom/.local/share/rhythmbox/rhythmdb.xml'); //$json = json_encode($xml); //$data = json_decode($json,TRUE); $path = getcwd(); $notes_path = str_replace("_rake","_notes",$path); chdir($notes_path); foreach ($xml as $value){ echo "-----\n"; $json = json_encode($value); $data = json_decode($json,TRUE); //print_r($data); //echo "\n---\n".json_encode($data)."\n----\n"; $att = $data['@attributes']; if ($att['type']== "song") { if ($data['play-count'] >= "1") { $tags['title'] = $data['title']; $tags['artist'] = $data['artist']; $tags['album'] = $data['album']; $tags['play-count'] = $data['play-count']; $epoch = $data['last-played']; $date = new DateTime("@$epoch"); $res['date'] = $date->format('Y-m-d H:i:s'); $res['type'] = "scrobble"; $res['tags'] = http_build_query($tags); $ret[] =$res; unset($res); } echo "--\n"; } if ($att['type']== "podcast-post") { if ($data['play-count'] >= "1") { $tags['title'] = $data['title']; $tags['artist'] = $data['artist']; $tags['album'] = $data['album']; $tags['play-count'] = $data['play-count']; $epoch = $data['last-played']; $date = new DateTime("@$epoch"); $res['date'] = $date->format('Y-m-d H:i:s'); $res['type'] = "scrobble"; $res['tags'] = http_build_query($tags); $ret[] =$res; unset($res); } echo "--\n"; } } echo yaml_emit($ret)."\n"; chdir($notes_path."/local/".date("Y")); yaml_emit_file ("r".date("m").".yml" , $ret); } else { exit('Failed to open /home/tom/.local/share/rhythmbox/rhythmdb.xml.'); } ?> i’ve updated and cleaned notes.php This Github Sample is by tomasparks _rake/notes.php view raw #!/usr/bin/env php <?php // key: qhNU8kMDrqS2Ryk8ExmyA //secret: 1tICNtAofpr0Coycb4eacrf4FcFCWSOzW8novjYL8 require_once './php-mf2/Mf2/Parser.php'; require_once './htmlpurifier/library/HTMLPurifier.auto.php'; require_once './goodreads-api/GoodReads.php'; date_default_timezone_set(' Australia/Brisbane'); function create_notes($data,$logfile) { foreach ($data as $note) { //print_r($note); if (isset($note['tags']) && !is_array($note['tags'])) { $temp = urldecode ( $note['tags'] ); parse_str($temp, $tag_array); $note['tags'] = $tag_array; //fwrite($logfile,$temp."\n"); } //$note['tags'] = tags($note['$tags'],$logfile); //echo "\n"; $hash = hash ('sha1' ,json_encode($note)); //fwrite($logfile, $hash."\n"); // echo $hash."\n"; fwrite($logfile, "\n--------------------\nhash: ".$hash."\njson_encode: ".json_encode($note)."\n--------------------\n"); if (isset($note['url'])) { $url = str_ireplace("www.","",parse_url($note['url'], PHP_URL_HOST)); } $date_split = date_parse($note['date']); $isodate = date("c", strtotime($note['date'])); $permdate = sprintf("%04d/%02d/%02d", $date_split['year'], $date_split['month'], $date_split['day']); $months = array (1=>'January',2=>'February',3=>'March', 4=>'April',5=>'May',6=>'June',7=>'July',8=>'August', 9=>'September',10=>'October',11=>'November',12=>'December'); unset($md_array); $md_array['layout'] = "notes_".$note['type']; $md_array['date'] = $isodate; $md_array['type'] = $note['type']; //$mdfile = fopen($hash.".md", "w"); //fwrite($mdfile, "---\n"); //fwrite($mdfile, "layout: notes_".$note['type']."\n"); //fwrite($mdfile, "date: ".$isodate."\n"); //fwrite($mdfile, "type: ".$note['type']."\n"); //fwrite($mdfile, "date: ".$isodate."\n"); unset($categories_array); $categories_array[] = $note['type']; $categories_array[] = $months[(int)$date_split['month']]; $categories_array[] = $date_split['year']; $categories_array[] = $date_split['day']; //fwrite($mdfile, "categories: \n"); //fwrite($mdfile, " - ".$note['type']."\n"); // dates //fwrite($mdfile, " - ".$date_split['year']."\n"); //fwrite($mdfile, " - ".$months[(int)$date_split['month']]."\n"); //fwrite($mdfile, " - ".$date_split['day']."\n"); // url if (isset($url)) { // fwrite($mdfile, " - ".$url."\n"); $categories_array[] = $url; } switch ($note['type']) { // ------------------------------------------------------------------------------------------------------------------------------------- // ##################################################################################################################################### case "scrobble": $categories_array[] = $tag_array['title']; $categories_array[] = $tag_array['artist']; $categories_array[] = $tag_array['album']; $md_array['music-title'] = $tag_array['title']; $md_array['music-artist'] = $tag_array['artist']; $md_array['music-album'] = $tag_array['album']; $md_array['music-play-count'] = $tag_array['play-count']; $md_array['permalink'] ="/notes/".$note['type']."/".urlencode($tag_array['artist'])."/".urlencode($tag_array['album'])."/".$hash.".html"; break; // ##################################################################################################################################### case "twitter": $md_array['permalink'] ="/notes/".$note['type']."/".$permdate."/".$hash.".html"; //fwrite($mdfile, "ext-url: ".$note['url']."\n"); //fwrite($mdfile, "---\n"); //fwrite($mdfile, $note['message']."\n"); break; // ##################################################################################################################################### case 'reply': $md_array['permalink'] ="/notes/".$note['type']."/".$url."/".$permdate."/".$hash.".html"; $html = file_get_contents($note['url']); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $cleanhtml = $purifier->purify($html); $mf = Mf2\parse($cleanhtml, $note['url']); $md_array['ext-url'] = $note['url']; break; // ##################################################################################################################################### case "like": $md_array['permalink'] ="/notes/".$note['type']."/".$url."/".$permdate."/".$hash.".html"; $html = file_get_contents($note['url']); $config = HTMLPurifier_Config::createDefault(); $purifier = new HTMLPurifier($config); $cleanhtml = $purifier->purify($html); $mf = Mf2\parse($cleanhtml, $note['url']); $md_array['ext-url'] = $note['url']; $md_array['title'] = "Liked a page on ".$url; //fwrite($mdfile, $note['message']."\n"); break; // ##################################################################################################################################### case "read"; $md_array['permalink'] ="/notes/".$note['type']."/".$permdate."/".$hash.".html"; $goodreads_api = new GoodReads('qhNU8kMDrqS2Ryk8ExmyA', '/home/tom/github/blog/website/_rake/tmp/'); $urls = $note['urls']; $tags = $note['tags']; $page = $tags['page']; if ($page =="finshed") {$status ="Finished";} else {$status ="Currently";} if (array_key_exists("asin",$urls)) { $data = $goodreads_api->getBookByISBN($urls['asin']); } if (array_key_exists("ASIN",$urls)) { $data = $goodreads_api->getBookByISBN($urls['ASIN']); } $book = $data['book']; fwrite($logfile,json_encode($book)."\n"); $md_array['book-title'] =$book['title']; $md_array['book-image_url'] =$book['small_image_url']; $md_array['book-url'] = $book['url']; $md_array['page'] =$page; $md_array['status'] =$status; break; // ##################################################################################################################################### default: $md_array['permalink'] ="/notes/".$note['type']."/".$permdate."/".$hash.".html"; break; // ------------------------------------------------------------------------------------------------------------------------------------- } $md_array['categories']=$categories_array; $frontmatter = yaml_emit ($md_array); $frontmatter = str_ireplace("...","---",$frontmatter); $mdfile = fopen($hash.".md", "w"); fwrite($mdfile, $frontmatter); if (array_key_exists("message",$note)) { fwrite($mdfile, $note['message']."\n"); } fclose($mdfile); } } // ================================ function csv_parse_file ( $file,$logfile ) { //echo "opening ".$file."...."; if (($handle = fopen($file, "r")) !== FALSE) { //echo "Done\n"; while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { fwrite($logfile,json_encode($data)."\n"); /* 0: type 1: url 2: messages 3: tags 4: date */ unset($res); $res['type'] = $data['0']; $tmpdate = date_create_from_format('d/m/Y', $data['4']); $res['date'] = date_format($tmpdate, 'Y-m-d'); $res['message'] = $data['2']; $res['source']="csv"; // tags =============================================== unset($tags_array); //$data['3'] = urldecode ( $data['3'] ); if (!strlen($data['3']) == 0 && !is_null($data['3'])) { //parse_str($data['3'], $tags_array); $oldtags_array = explode(',', $data['3']); $tags_array = ""; for($i=0; $i < count($oldtags_array ); $i++){ $key_value = explode(':', $oldtags_array [$i]); $tags_array[$key_value [0]] = $key_value [1]; } //echo "tags_array===============================================\n"; //print_r($tags_array); fwrite($logfile,json_encode($tags_array)."\n"); //echo "===============================================\n"; $res['tags'] = $tags_array; } // ====================================================== // url tags =========================================== unset($url_array); if (!strlen($data['1']) == 0 && !is_null($data['1'])) { //print_r($data['1']); //echo "\n"; switch (true) { case stristr($data['1'], 'http'): //echo "found http\n"; $res['url'] = $data['1']; //echo "url===============================================\n"; //print_r($res['url']); //echo "===============================================\n"; break; case parse_url($data['1'], PHP_URL_QUERY); //echo "found query\n"; //print_r(parse_url($url, PHP_URL_QUERY)); break; case stristr($data['1'], 'ASIN'): //echo "found asin\n"; $key_value = explode(':', $data['1']); $url_array[$key_value [0]] = $key_value [1]; $res['urls'] = $url_array; //echo "url===============================================\n"; //print_r($res['urls']); //echo "===============================================\n"; break; case stristr($data['1'], 'ISBN'): //echo "found isbn\n"; $key_value = explode(':', $data['1']); $url_array[$key_value [0]] = $key_value [1]; $res['urls'] = $url_array; //echo "url===============================================\n"; //print_r($res['urls']); //echo "===============================================\n"; break; case stristr($data['1'], 'IMDB'): //echo "found IMDB\n"; $key_value = explode(':', $data['1']); $url_array[$key_value [0]] = $key_value [1]; $res['urls'] = $url_array; //echo "url===============================================\n"; //print_r($res['urls']); //echo "===============================================\n"; break; case stristr($data['1'], 'TVDB'): //echo "found TVDB\n"; $key_value = explode(':', $data['1']); $url_array[$key_value [0]] = $key_value [1]; $res['urls'] = $url_array; //echo "url===============================================\n"; //print_r($res['urls']); //echo "===============================================\n"; break; /* case strstr($data['1'], ','): $oldurl_array = explode(',', $data['1']); $url_array = ""; for($i=0; $i < count($oldurl_array ); $i++){ $key_value = explode(':', $oldurl_array [$i]); $url_array[$key_value [0]] = $key_value [1]; } $res['urls'] = $url_array; echo "url_array===============================================\n"; print_r($res['urls']); echo "===============================================\n"; $url_array="";; break; */ } } // =========================================== //echo "res===============================================\n"; //print_r($res); //echo "===============================================\n"; fwrite($logfile,json_encode($res)."\n"); $ret[] = $res; } } fclose($handle); return $ret; } function tags($tags,$logfile) { $temp = urldecode ( $tags ); parse_str($temp, $output); fwrite($logfile,json_encode($output)."\n"); return $output; } $path = getcwd(); $logfile = fopen("log.log", "w"); global $logfile; $notes_path = str_replace("_rake","_notes",$path); chdir($notes_path); $notes_dir = scandir($notes_path); fwrite($logfile,json_encode($notes_dir)."\n"); foreach ($notes_dir as $dir) { fwrite($logfile,$dir."\n"); if ($dir === "." or $dir === ".." ) {continue;} chdir($notes_path."/".$dir); $year_dir = scandir($notes_path."/".$dir); fwrite($logfile,json_encode($year_dir)."\n"); foreach ($year_dir as $ydir) { fwrite($logfile,$ydir."\n"); if ($ydir === "." or $ydir === "..") {continue;} chdir($notes_path."/".$dir."/".$ydir); echo getcwd()."\n"; $filelist = scandir($notes_path."/".$dir."/".$ydir); fwrite($logfile,json_encode($filelist)."\n"); foreach ($filelist as $file) { if ($file === "." or $file === "..") {continue;} switch(true) { case strstr($file, "log"): //echo $file." skipping log file\n"; fwrite($logfile,$file." skipping log file\n"); continue 2; case strstr($file, "md"): //echo $file." skipping md file\n"; fwrite($logfile,$file." skipping md file\n"); continue 2; case strstr($file, "yml"): //echo $file."yml file\n"; fwrite($logfile,$file." yml file :) \n"); $data = yaml_parse_file ( $file ); //fwrite($logfile,"\n-------------------\n".json_encode($data)."\n-------------------\n"); create_notes($data, $logfile); break; case strstr($file, "csv"): //echo $file." CSV file\n"; fwrite($logfile,$file." csv file :) \n"); $data = csv_parse_file ( $file, $logfile ); create_notes($data, $logfile); break; } } } } fclose($logfile); ?> Date: 31 Dec 2017 Permalink: https://tomasparks.github.io//archive/2017/12/rhythmbox-notes-system.html Also posted on IndieNews my photo Tom Sparks email, I am a Alternative Technology Researcher, with a focus on Digital Communication Networks." https://tomasparks.github.io//archive/2017/12/rhythmbox-notes-system.html
#
KartikPrabhu
what the hell^ !
#
KartikPrabhu
judas priest!
#
KartikPrabhu
aaronpk: you should really fix the superfeedr and indienews postings here
#
tomasparks
WTF is loqi doing
#
aexoxea
Patience is a virtue...
#
Zegnat
Are you done Loqi?
#
Zegnat
Good morning IndieWeb!
#
aexoxea
I'll admit, there's a perverse side of me that was wondering with a grin if it was just going to keep looping...
#
aexoxea
Thankfully not.
#
tomasparks
sorry just submit two articles to indienews
#
KartikPrabhu
Loqi wans't looping it was two different pings
#
aexoxea
Third article lined up? ;-)
#
Zegnat
Oh man, I think it is because Loqi isn't sanitising name values. From a glance it looks like the entire article content is the entry's title.
#
KartikPrabhu
notes don't have a p-name or have a p-name = e-content
#
Zegnat
This has also broken chat.indieweb.org for me on my phone. So I should look into a PR for that.
#
Zegnat
Every mf2 object has an implied name. If you don't specify a name it is all text within the object. I.e. all text within h-entry.
#
Zegnat
Glancing at tomasparks' HTML it looks like the h-entry does now have an explicit name. So this happened when Loqi went to display the article title.
#
tomasparks
i just reupoaded after loqi started talking
#
tomasparks
i am afraid of resubmit them
#
Zegnat
Run it through php.microformats.io first and see if it has a correct name value.
#
aexoxea
Now, with the end of the year approaching and my being new to the IndieWeb concept, I'd like to say "Thank you!" for the body of work everyone has collectively done on this (and which has helped me out a lot), and wish one and all a great 2018.
#
tomasparks
found the issue my p-name is outside of h-entry
#
Zegnat
That would trip it up, yes, tomasparks :)
catsup joined the channel
#
Zegnat
The end of the year is approaching too fast. Only 12 hours left until I must finish my Micropub endpoint or I miss my commitment again
catsup joined the channel
#
Loqi
misses my commitment again too
#
tomasparks
fixed and resubmit to indienews :)
friedcell joined the channel
#
Zegnat
Awesome!
#
Zegnat
tomasparks++
#
Loqi
tomasparks has 2 karma
friedcell joined the channel; friedcell left the channel
#
Loqi
[superfeedr] "More browser, less Facebook" by Fabian on 2017-12-31 http://feedproxy.google.com/~r/FriendlyAnarchist/~3/k0ik9gRVHnU/
[kevinmarks], wolftune, [colinwalker] and KevinMarks joined the channel
#
GWG
Whoa?
blahblah and KevinMarks joined the channel
#
dgold
didn't think that leglisation kicked in until tomorrow
[kevinmarks] and snarfed joined the channel
jjuran, KevinMarks, danlyke, sonicrocketman, doubleloop, tomasparks, aaronpk, [kevinmarks] and [eddie] joined the channel
#
Loqi
[superfeedr] "“Personal data sovereignty so that we control our data and provision it via API keys, etc to the digital services we use.” @fredwilson embracing #indieweb" by Kevin Marks on 2017-12-31 http://known.kevinmarks.com/2017/personal-data-sovereignty-so-that-we-control-our-data-and
snarfed, botka1, yar, KevinMarks, nitot, wolftune and skvist joined the channel
#
@philnelson
In 2018 we remind everyone why the #indieweb is better.
(twitter.com/_/status/947520834565894144)
snarfed joined the channel
KevinMarks and [eddie] joined the channel
#
aaronpk
kinda fun
#
schmarty
🗓🎉
[kevinmarks] joined the channel
#
[kevinmarks]
Calendar view is a bit odd on mobile
#
aaronpk
I was thinking about collapsing it on mobile
#
aaronpk
er, stacking
#
dgold
how did I miss lazymention?
#
Loqi
misses lazymention too
#
dgold
ooof, many many deps
#
sknebel
heh, inbox full of github mails about indienews
#
sknebel
aaronpk++ yay for the calendar
#
Loqi
aaronpk has 532 karma in this channel (1517 overall)
#
Loqi
does a happy dance!
#
dgold
+ lazymention@1.0.0 added 435 packages in 92.395s
CamB and CamB_ joined the channel
#
CamB_
Good day!
#
dgold
greetings and salutations!
#
CamB_
:)
#
CamB_
I am still trying to find a way to do filtered web searches for webmentions. Coming up empty. Are there any Open source crawlers?
#
aaronpk
a webmention is the notification that one site links to another, do you mean you want to search for posts that contain microformats?
#
CamB_
Yes :)
#
CamB_
Sorry. Say I'm reading a post that doesn't accept webmentions, but I want to search the web to see if someone else has written a reply tagged with microformats.
#
CamB_
reply/comment
#
aaronpk
that's a pretty large scope of a problem :)
#
CamB_
No such software available yet?
#
aaronpk
sure there is
#
aaronpk
but someone's gotta run a pretty large crawl in order to turn up any useful results
#
aaronpk
cweiske wrote a search engine that indexes microformats, but his goal is not to crawl the entire web, tho you could use it for that if you wanted to http://git.cweiske.de/phinde.git
#
CamB_
say maybe I just crawled a list of "friends" sites. I would find that usefull.
#
CamB_
Thank you! looking at it.
#
CamB_
Is that the best option that you know of? I'm a fan of the distributed p2p search engine Yacy. I'm hoping to find some info to help integrate microformats in Yacy. One of the developers there is actually the one that made me aware of microformats in the first place.
#
Zegnat
Other than cweiske’s search engine and snarfed web crawl, I am not aware of any big scale indexing projects
gRegorLove joined the channel
#
Zegnat
Less than three hours to finish my commitment. This is not going to fly.
#
aaronpk
pretend you're on Pacific time
#
aaronpk
that gives you 11.5 hours
#
Zegnat
Lol aaronpk, maybe I should!
#
Zegnat
I told myself not to get distracted by IndieAuth. But I am. Because I don’t want to launch on my blog domain without making sure IndieAuth is up to snuff.
KartikPrabhu joined the channel
#
strugee
dgold: hahaha
#
Loqi
awesome
#
strugee
yeah, that's Node for ya
#
strugee
I think it's mostly Express (the web framework) though
#
strugee
let me know what you think!
#
strugee
also, "* Loqi misses lazymention too" <-- hahahaha :D
[kevinmarks] joined the channel
#
strugee
related, people seem to be reacting really well to Webmention on Lobsters :-)
#
strugee
Zegnat: fly like the wind! <3
#
strugee
aaronpk: that IndieNews update looks great! so funny, I actually just fixed almost the exact same problem in my Webmention display code
#
dgold
strugee: yes, its _all_ express
#
strugee
hahaha
#
dgold
strugee++ for lazymention though - nicely done there.
#
Loqi
strugee has 3 karma in this channel (5 overall)
#
strugee
oops ;)
#
strugee
but thanks!
#
strugee
installing with --production should get you way less
#
strugee
I should document that
#
dgold
strugee: you should also provide a blanke json config file
#
strugee
good idea
#
dgold
oh, is there any way to set a delay function on it?
#
dgold
my static site rebuilds itself dynamically (yeah, I know); but normally there's about a 2s delay between _publishing_ the new data and the site updating itself
curve25519 joined the channel
#
strugee
you'd want to delay pinging it
#
strugee
from the client
#
strugee
I suppose I could add a server delay function too
#
strugee
just pushed a sample, thanks dgold!
#
strugee
oh dgold did you write nanopub?
#
dgold
that's me!
[eddie] joined the channel
#
strugee
neat! I was just looking at Micropub servers last night
tantek, KevinMarks and AngeloGladding joined the channel
#
Zegnat
strugee, if you have a Micropub client you want to test, may I point you at https://sink.zegnat.net/ ? ;)
KartikPrabhu, KevinMarks, wolftune, [kevinmarks] and tomasparks joined the channel
#
Zegnat
Welp, my commitment failed :( Oh well, guess that means I can stop rushing
[miklb] joined the channel
#
tantek
OTOH Happy New Year Zegnat (in ~12 min?)
#
Zegnat
Yep, 12 minutes :)
#
tantek
Zegnat: give yourself an extension! like a week!
#
aaronpk
pretty sure I had to give myself an extension last year and the year before
#
Zegnat
You know. I might even finish it in the next 3 or so hours, if I decide to not go to bed.
#
Zegnat
I am not extremely far from launching. Just not making the entirely arbitrary midnight deadline
#
aaronpk
you still have an hour in UTC!
#
Zegnat
I am off to cheer with the family at midnight, so probably not making it in the hour
#
Zegnat
Maybe
#
tantek
Zegnat or you can play along with those of us in PST :D
gRegorLove_ joined the channel
#
Zegnat
Greetings from 2018, IndieWeb!
#
gRegorLove_
How is the future?
#
Zegnat
So far not much different from 2017.
KevinMarks, tantek and tantek_ joined the channel
#
strugee
Zegnat: heh yeah, I saw that in here the other day! looks super useful!
#
strugee
the focus right now, however, is figuring out how to accept submissions for my own site
#
strugee
also. happy new year!! \o/
tantek joined the channel
#
Zegnat
That was also my focus "yesterday"
KartikPrabhu joined the channel
snarfed joined the channel