<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments for Thimbron</title>
	<atom:link href="http://thimbron.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://thimbron.com</link>
	<description>ὁι λογοι και τα ἐργα</description>
	<pubDate>Fri, 18 Sep 2026 03:45:14 +0000</pubDate>
	<generator>http://polimedia.us</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Blatta 9986: Rebroadcast simple hearsay, embargo simple hearsay, more... by thimbronion</title>
		<link>http://thimbron.com/2021/12/blatta-9986-rebroadcast-simple-hearsay-embargo-simple-hearsay-more/#comment-479</link>
		<dc:creator>thimbronion</dc:creator>
		<pubDate>Fri, 03 Dec 2021 23:44:40 +0000</pubDate>
		<guid isPermaLink="false">http://thimbron.com/?p=709#comment-479</guid>
		<description>PeterL, fixed in upcoming release, ty</description>
		<content:encoded><![CDATA[<p>PeterL, fixed in upcoming release, ty</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blatta 9986: Rebroadcast simple hearsay, embargo simple hearsay, more... by PeterL</title>
		<link>http://thimbron.com/2021/12/blatta-9986-rebroadcast-simple-hearsay-embargo-simple-hearsay-more/#comment-477</link>
		<dc:creator>PeterL</dc:creator>
		<pubDate>Thu, 02 Dec 2021 15:34:20 +0000</pubDate>
		<guid isPermaLink="false">http://thimbron.com/?p=709#comment-477</guid>
		<description>I just noticed that in blatta/lib/server.py you "import sys" twice, you can probably take one of those out</description>
		<content:encoded><![CDATA[<p>I just noticed that in blatta/lib/server.py you "import sys" twice, you can probably take one of those out</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blatta 9986: Rebroadcast simple hearsay, embargo simple hearsay, more... by thimbronion</title>
		<link>http://thimbron.com/2021/12/blatta-9986-rebroadcast-simple-hearsay-embargo-simple-hearsay-more/#comment-476</link>
		<dc:creator>thimbronion</dc:creator>
		<pubDate>Thu, 02 Dec 2021 15:10:18 +0000</pubDate>
		<guid isPermaLink="false">http://thimbron.com/?p=709#comment-476</guid>
		<description>Exception in thread Thread-31142:
Traceback (most recent call last):
  File "/home/awt/.pyenv/versions/2.7.14/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/home/awt/.pyenv/versions/2.7.14/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/awt/src/blatta/lib/station.py", line 188, in send_rubbish
    "body": self.infosec.gen_rubbish_body()
  File "/home/awt/src/blatta/lib/infosec.py", line 63, in message
    message_bytes = self.get_message_bytes(message, target_peer)
  File "/home/awt/src/blatta/lib/infosec.py", line 110, in get_message_bytes
    speaker = self._pad(message.speaker, MAX_SPEAKER_SIZE)
  File "/home/awt/src/blatta/lib/infosec.py", line 263, in _pad
    return text.ljust(size, "\x00")
AttributeError: 'NoneType' object has no attribute 'ljust'</description>
		<content:encoded><![CDATA[<p>Exception in thread Thread-31142:<br />
Traceback (most recent call last):<br />
  File "/home/awt/.pyenv/versions/2.7.14/lib/python2.7/threading.py", line 801, in __bootstrap_inner<br />
    self.run()<br />
  File "/home/awt/.pyenv/versions/2.7.14/lib/python2.7/threading.py", line 754, in run<br />
    self.__target(*self.__args, **self.__kwargs)<br />
  File "/home/awt/src/blatta/lib/station.py", line 188, in send_rubbish<br />
    "body": self.infosec.gen_rubbish_body()<br />
  File "/home/awt/src/blatta/lib/infosec.py", line 63, in message<br />
    message_bytes = self.get_message_bytes(message, target_peer)<br />
  File "/home/awt/src/blatta/lib/infosec.py", line 110, in get_message_bytes<br />
    speaker = self._pad(message.speaker, MAX_SPEAKER_SIZE)<br />
  File "/home/awt/src/blatta/lib/infosec.py", line 263, in _pad<br />
    return text.ljust(size, "\x00")<br />
AttributeError: 'NoneType' object has no attribute 'ljust'</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blatta 9986: Rebroadcast simple hearsay, embargo simple hearsay, more... by thimbronion</title>
		<link>http://thimbron.com/2021/12/blatta-9986-rebroadcast-simple-hearsay-embargo-simple-hearsay-more/#comment-475</link>
		<dc:creator>thimbronion</dc:creator>
		<pubDate>Thu, 02 Dec 2021 02:05:03 +0000</pubDate>
		<guid isPermaLink="false">http://thimbron.com/?p=709#comment-475</guid>
		<description>Traceback (most recent call last):
  File "/home/awt/bin/blatta-dev", line 149, in 
    main(sys.argv)
  File "/home/awt/bin/blatta-dev", line 144, in main
    server.start()
  File "/home/awt/src/blatta/lib/server.py", line 169, in start
    self.station.handle_udp_data(bytes_address_pair)
  File "/home/awt/src/blatta/lib/station.py", line 72, in handle_udp_data
    self.conditionally_update_at(peer, message, address)
  File "/home/awt/src/blatta/lib/station.py", line 163, in conditionally_update_at
    "port": address[1]
  File "/home/awt/src/blatta/lib/state.py", line 173, in update_at
    (handle_id, peer["address"], peer["port"]))
sqlite3.DatabaseError: unknown error</description>
		<content:encoded><![CDATA[<p>Traceback (most recent call last):<br />
  File "/home/awt/bin/blatta-dev", line 149, in<br />
    main(sys.argv)<br />
  File "/home/awt/bin/blatta-dev", line 144, in main<br />
    server.start()<br />
  File "/home/awt/src/blatta/lib/server.py", line 169, in start<br />
    self.station.handle_udp_data(bytes_address_pair)<br />
  File "/home/awt/src/blatta/lib/station.py", line 72, in handle_udp_data<br />
    self.conditionally_update_at(peer, message, address)<br />
  File "/home/awt/src/blatta/lib/station.py", line 163, in conditionally_update_at<br />
    "port": address[1]<br />
  File "/home/awt/src/blatta/lib/state.py", line 173, in update_at<br />
    (handle_id, peer["address"], peer["port"]))<br />
sqlite3.DatabaseError: unknown error</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blatta 9986: Rebroadcast simple hearsay, embargo simple hearsay, more... by PeterL</title>
		<link>http://thimbron.com/2021/12/blatta-9986-rebroadcast-simple-hearsay-embargo-simple-hearsay-more/#comment-474</link>
		<dc:creator>PeterL</dc:creator>
		<pubDate>Wed, 01 Dec 2021 18:14:25 +0000</pubDate>
		<guid isPermaLink="false">http://thimbron.com/?p=709#comment-474</guid>
		<description>Crashed with something about threadding:

$ Exception in thread Thread-1171:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/station.py", line 183, in send_rubbish
    "body": self.infosec.gen_rubbish_body()
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/infosec.py", line 81, in message
    for peer in self.state.get_keyed_peers():
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/state.py", line 246, in get_keyed_peers
    peer_ids = self.listify(self.cursor.execute("select peer_id from keys").fetchall())
ProgrammingError: Recursive use of cursors not allowed.

Exception in thread Thread-6876:
Traceback (most recent call last):
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/usr/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/station.py", line 99, in check_embargo_queue
    self.flush_hearsay_messages()
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/station.py", line 153, in flush_hearsay_messages
    self.rebroadcast(message)
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/station.py", line 170, in rebroadcast
    self.infosec.message(message)
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/infosec.py", line 70, in message
    self.state.log(message.speaker, message_bytes, target_peer)
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/state.py", line 128, in log
    (handle, peer_id, buffer(message_bytes)))
ProgrammingError: Recursive use of cursors not allowed.</description>
		<content:encoded><![CDATA[<p>Crashed with something about threadding:</p>
<p>$ Exception in thread Thread-1171:<br />
Traceback (most recent call last):<br />
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner<br />
    self.run()<br />
  File "/usr/lib/python2.7/threading.py", line 754, in run<br />
    self.__target(*self.__args, **self.__kwargs)<br />
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/station.py", line 183, in send_rubbish<br />
    "body": self.infosec.gen_rubbish_body()<br />
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/infosec.py", line 81, in message<br />
    for peer in self.state.get_keyed_peers():<br />
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/state.py", line 246, in get_keyed_peers<br />
    peer_ids = self.listify(self.cursor.execute("select peer_id from keys").fetchall())<br />
ProgrammingError: Recursive use of cursors not allowed.</p>
<p>Exception in thread Thread-6876:<br />
Traceback (most recent call last):<br />
  File "/usr/lib/python2.7/threading.py", line 801, in __bootstrap_inner<br />
    self.run()<br />
  File "/usr/lib/python2.7/threading.py", line 754, in run<br />
    self.__target(*self.__args, **self.__kwargs)<br />
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/station.py", line 99, in check_embargo_queue<br />
    self.flush_hearsay_messages()<br />
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/station.py", line 153, in flush_hearsay_messages<br />
    self.rebroadcast(message)<br />
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/station.py", line 170, in rebroadcast<br />
    self.infosec.message(message)<br />
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/infosec.py", line 70, in message<br />
    self.state.log(message.speaker, message_bytes, target_peer)<br />
  File "/home/Lambert/alcuin/blatta-9986/blatta/lib/state.py", line 128, in log<br />
    (handle, peer_id, buffer(message_bytes)))<br />
ProgrammingError: Recursive use of cursors not allowed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blatta 9987: hearsay embargo by thimbronion</title>
		<link>http://thimbron.com/2021/11/blatta-9987-hearsay-embargo/#comment-471</link>
		<dc:creator>thimbronion</dc:creator>
		<pubDate>Tue, 30 Nov 2021 01:00:18 +0000</pubDate>
		<guid isPermaLink="false">http://thimbron.com/?p=704#comment-471</guid>
		<description>from billymg's logger:

Traceback (most recent call last):
  File "/home/bmg/applications/blatta/blatta", line 149, in 
    main(sys.argv)
  File "/home/bmg/applications/blatta/blatta", line 144, in main
    server.start()
  File "/home/bmg/applications/blatta/lib/server.py", line 177, in start
    self.client.socket_readable_notification()
  File "/home/bmg/applications/blatta/lib/client.py", line 578, in socket_readable_notification
    self.__parse_read_buffer()
  File "/home/bmg/applications/blatta/lib/client.py", line 90, in __parse_read_buffer
    self.__handle_command(command, arguments)
  File "/home/bmg/applications/blatta/lib/client.py", line 561, in __command_handler
    handler_table[command]()
  File "/home/bmg/applications/blatta/lib/client.py", line 305, in notice_and_privmsg_handler
    "body": message
  File "/home/bmg/applications/blatta/lib/infosec.py", line 67, in message
    self.state.log(message.speaker, message_bytes, target_peer)
  File "/home/bmg/applications/blatta/lib/state.py", line 122, in log
    (handle, peer_id, buffer(message_bytes)))</description>
		<content:encoded><![CDATA[<p>from billymg's logger:</p>
<p>Traceback (most recent call last):<br />
  File "/home/bmg/applications/blatta/blatta", line 149, in<br />
    main(sys.argv)<br />
  File "/home/bmg/applications/blatta/blatta", line 144, in main<br />
    server.start()<br />
  File "/home/bmg/applications/blatta/lib/server.py", line 177, in start<br />
    self.client.socket_readable_notification()<br />
  File "/home/bmg/applications/blatta/lib/client.py", line 578, in socket_readable_notification<br />
    self.__parse_read_buffer()<br />
  File "/home/bmg/applications/blatta/lib/client.py", line 90, in __parse_read_buffer<br />
    self.__handle_command(command, arguments)<br />
  File "/home/bmg/applications/blatta/lib/client.py", line 561, in __command_handler<br />
    handler_table[command]()<br />
  File "/home/bmg/applications/blatta/lib/client.py", line 305, in notice_and_privmsg_handler<br />
    "body": message<br />
  File "/home/bmg/applications/blatta/lib/infosec.py", line 67, in message<br />
    self.state.log(message.speaker, message_bytes, target_peer)<br />
  File "/home/bmg/applications/blatta/lib/state.py", line 122, in log<br />
    (handle, peer_id, buffer(message_bytes)))</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blatta 9987: hearsay embargo by PeterL</title>
		<link>http://thimbron.com/2021/11/blatta-9987-hearsay-embargo/#comment-470</link>
		<dc:creator>PeterL</dc:creator>
		<pubDate>Mon, 29 Nov 2021 15:43:51 +0000</pubDate>
		<guid isPermaLink="false">http://thimbron.com/?p=704#comment-470</guid>
		<description>in the lib/client.py, line 608 to 609, it seems that adding another colon to the notice message helps the whole message show up in my client console. It was dropping the first word from all the lines, I could only see them if I looked at the debug output instead of the console. I am not sure if this is specific to my client (ice9), or if it has something to do with the number of paramaters expected in a notice message? This is what I changed the line to and it seems to be showing up right in my client console now:


def pest_reply(self, msg):
        self.message("NOTICE %s : :%s" % (self.nickname, msg))</description>
		<content:encoded><![CDATA[<p>in the lib/client.py, line 608 to 609, it seems that adding another colon to the notice message helps the whole message show up in my client console. It was dropping the first word from all the lines, I could only see them if I looked at the debug output instead of the console. I am not sure if this is specific to my client (ice9), or if it has something to do with the number of paramaters expected in a notice message? This is what I changed the line to and it seems to be showing up right in my client console now:</p>
<p>def pest_reply(self, msg):<br />
        self.message("NOTICE %s : :%s" % (self.nickname, msg))</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blatta 9987: hearsay embargo by thimbronion</title>
		<link>http://thimbron.com/2021/11/blatta-9987-hearsay-embargo/#comment-469</link>
		<dc:creator>thimbronion</dc:creator>
		<pubDate>Mon, 29 Nov 2021 15:26:00 +0000</pubDate>
		<guid isPermaLink="false">http://thimbron.com/?p=704#comment-469</guid>
		<description>File "./blatta", line 149, in 
    main(sys.argv)
  File "./blatta", line 144, in main
    server.start()
  File "/home/Lambert/alcuin/blatta-9987/blatta/lib/server.py", line 177, in start
    self.client.socket_readable_notification()
  File "/home/Lambert/alcuin/blatta-9987/blatta/lib/client.py", line 578, in socket_readable_notification
    self.__parse_read_buffer()
  File "/home/Lambert/alcuin/blatta-9987/blatta/lib/client.py", line 90, in __parse_read_buffer
    self.__handle_command(command, arguments)
  File "/home/Lambert/alcuin/blatta-9987/blatta/lib/client.py", line 565, in __command_handler
    logger.debug(stack)
NameError: global name 'logger' is not defined</description>
		<content:encoded><![CDATA[<p>File "./blatta", line 149, in<br />
    main(sys.argv)<br />
  File "./blatta", line 144, in main<br />
    server.start()<br />
  File "/home/Lambert/alcuin/blatta-9987/blatta/lib/server.py", line 177, in start<br />
    self.client.socket_readable_notification()<br />
  File "/home/Lambert/alcuin/blatta-9987/blatta/lib/client.py", line 578, in socket_readable_notification<br />
    self.__parse_read_buffer()<br />
  File "/home/Lambert/alcuin/blatta-9987/blatta/lib/client.py", line 90, in __parse_read_buffer<br />
    self.__handle_command(command, arguments)<br />
  File "/home/Lambert/alcuin/blatta-9987/blatta/lib/client.py", line 565, in __command_handler<br />
    logger.debug(stack)<br />
NameError: global name 'logger' is not defined</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blatta 9988: deduplication by message hash by thimbronion</title>
		<link>http://thimbron.com/2021/11/blatta-9988-deduplication-by-message-hash/#comment-461</link>
		<dc:creator>thimbronion</dc:creator>
		<pubDate>Fri, 26 Nov 2021 23:19:54 +0000</pubDate>
		<guid isPermaLink="false">http://thimbron.com/?p=698#comment-461</guid>
		<description>Traceback (most recent call last):
  File "/home/awt/.pyenv/versions/2.7.14/lib/python2.7/threading.py", line 801, in __bootstrap_inner
    self.run()
  File "/home/awt/.pyenv/versions/2.7.14/lib/python2.7/threading.py", line 754, in run
    self.__target(*self.__args, **self.__kwargs)
  File "/home/awt/src/alcuin/lib/station.py", line 113, in check_embargo_queue
    self.check_for_immediate_messages()
  File "/home/awt/src/alcuin/lib/station.py", line 137, in check_for_immediate_messages
    self.rebroadcast(message)
  File "/home/awt/src/alcuin/lib/station.py", line 185, in rebroadcast
    self.infosec.message(message)
  File "/home/awt/src/alcuin/lib/infosec.py", line 67, in message
    self.state.log(message.speaker, message_bytes, target_peer)
  File "/home/awt/src/alcuin/lib/state.py", line 122, in log
    (handle, peer_id, buffer(message_bytes)))
ProgrammingError: Recursive use of cursors not allowed.</description>
		<content:encoded><![CDATA[<p>Traceback (most recent call last):<br />
  File "/home/awt/.pyenv/versions/2.7.14/lib/python2.7/threading.py", line 801, in __bootstrap_inner<br />
    self.run()<br />
  File "/home/awt/.pyenv/versions/2.7.14/lib/python2.7/threading.py", line 754, in run<br />
    self.__target(*self.__args, **self.__kwargs)<br />
  File "/home/awt/src/alcuin/lib/station.py", line 113, in check_embargo_queue<br />
    self.check_for_immediate_messages()<br />
  File "/home/awt/src/alcuin/lib/station.py", line 137, in check_for_immediate_messages<br />
    self.rebroadcast(message)<br />
  File "/home/awt/src/alcuin/lib/station.py", line 185, in rebroadcast<br />
    self.infosec.message(message)<br />
  File "/home/awt/src/alcuin/lib/infosec.py", line 67, in message<br />
    self.state.log(message.speaker, message_bytes, target_peer)<br />
  File "/home/awt/src/alcuin/lib/state.py", line 122, in log<br />
    (handle, peer_id, buffer(message_bytes)))<br />
ProgrammingError: Recursive use of cursors not allowed.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Blatta 9988: deduplication by message hash by thimbronion</title>
		<link>http://thimbron.com/2021/11/blatta-9988-deduplication-by-message-hash/#comment-457</link>
		<dc:creator>thimbronion</dc:creator>
		<pubDate>Wed, 17 Nov 2021 22:36:50 +0000</pubDate>
		<guid isPermaLink="false">http://thimbron.com/?p=698#comment-457</guid>
		<description>http://logs.nosuchlabs.com/log/asciilifeform/2021-11-17#1066496

File "./blatta", line 145, in 
    main(sys.argv)
  File "./blatta", line 140, in main
    server.start()
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/server.py", line 292, in start
    self.clients[x].socket_readable_notification()
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/client.py", line 615, in socket_readable_notification
    self.__parse_read_buffer()
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/client.py", line 115, in __parse_read_buffer
    self.__handle_command(command, arguments)
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/client.py", line 598, in __command_handler
    handler_table[command]()
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/client.py", line 352, in notice_and_privmsg_handler
    }, self.server))
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/server.py", line 209, in peer_message
    message_bytes = self.infosec.get_message_bytes(message, peer)
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/infosec.py", line 60, in get_message_bytes
    self_chain = self.server.state.get_last_message_hash(message.speaker, peer.peer_id)
AttributeError: 'NoneType' object has no attribute 'peer_id'</description>
		<content:encoded><![CDATA[<p><a href="http://logs.nosuchlabs.com/log/asciilifeform/2021-11-17#1066496" rel="nofollow">http://logs.nosuchlabs.com/log/asciilifeform/2021-11-17#1066496</a></p>
<p>File "./blatta", line 145, in<br />
    main(sys.argv)<br />
  File "./blatta", line 140, in main<br />
    server.start()<br />
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/server.py", line 292, in start<br />
    self.clients[x].socket_readable_notification()<br />
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/client.py", line 615, in socket_readable_notification<br />
    self.__parse_read_buffer()<br />
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/client.py", line 115, in __parse_read_buffer<br />
    self.__handle_command(command, arguments)<br />
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/client.py", line 598, in __command_handler<br />
    handler_table[command]()<br />
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/client.py", line 352, in notice_and_privmsg_handler<br />
    }, self.server))<br />
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/server.py", line 209, in peer_message<br />
    message_bytes = self.infosec.get_message_bytes(message, peer)<br />
  File "/home/Lambert/alcuin/blatta-9988/blatta/lib/infosec.py", line 60, in get_message_bytes<br />
    self_chain = self.server.state.get_last_message_hash(message.speaker, peer.peer_id)<br />
AttributeError: 'NoneType' object has no attribute 'peer_id'</p>
]]></content:encoded>
	</item>
</channel>
</rss>
