Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-4041-

Reading software for /prog/

Name: Anonymous 2010-07-11 15:44

Are there any 2ch-style browsers that support /prog/?

Name: Anonymous 2010-07-11 15:53

Why in the name of god would you want that?

Name: Anonymous 2010-07-11 15:54

No. We'd rather parse an anus than Shiitchan.

Name: Anonymous 2010-07-11 16:01

just use /prog/scrape.
or write one yourself, either using the database built by /prog/scrape or http://dis.4chan.org/prog/subject.txt and the json api: http://dis.4chan.org/json/prog/1278877486

Name: Anonymous 2010-07-11 16:17

>>2
Because it's a pain in the butt to browse a board that uses sage "correctly" using a web browser.

I was considering modifying chaika[1] a couple months ago, but that's not going to happen, Shitchan lacks too many standard features, and it doesn't even put old threads in an archive so shit would probably be really slow and bandwidth-raping.

[1] http://chaika.xrea.jp/index.php/screen-shots/

Name: Anonymous 2010-07-11 16:24

Because it's a pain in the butt to browse a board that uses sage "correctly" using a web browser.
per-thread atom feeds would probably fix that, and trivial to implement... http://hotaru.thinkindifferent.net/tinybb3/ has them, along with subject.txt, json (http://hotaru.thinkindifferent.net/tinybb3/json/1278697659), and gopher (gopher://thinkindifferent.net/1/hotaru/tinybb3), and the whole thing is only about 40KB. maybe you could bug mrvacbob about adding them.

Name: Anonymous 2010-07-11 16:45

>>4-6
Bampu

Name: VIPPER 2010-07-11 17:03

JEWS

Name: Anonymous 2010-07-11 17:12

Name: Anonymous 2010-07-11 17:27

>>9
AAAAAAGH THE FOREHEAD FROM MY NIGHTMARES IS BACK

Name: Anonymous 2010-07-11 17:40

>>9
Looks like mckay from SGA lol

Name: Anonymous 2010-07-12 14:21

I just remembered the main problem using other reading software: world4chan does not make the .dat files available to the users.

Name: Anonymous 2010-07-12 15:18

>>12
why would you need that when you have subject.txt and json?

Name: Anonymous 2010-07-12 15:38

>>13
It would require writing extra code, which sucks.

That's what I am doing now though, a shitty Greasemonkey script.

Name: Anonymous 2010-07-12 17:32

>>14
/prog/ - trying to avoid having to write code

Name: Anonymous 2010-07-12 19:53

>>15
Are you serious? We're constantly reimplementing Fibonacci series, loeb and Fizz Buzz.

Name: Anonymous 2010-07-12 20:02

>>16
That doesn't involve work, because those algorithms are well-known and reimplementing them just involves regurgitating them from memory into whatever language.

What >>14 has to do, though, involves actually thinking. There's an incredibly high chance he wouldn't be doing this if it were already written.

Name: Anonymous 2010-07-13 10:01

Here's what I have so far, I'll upload it to Userscripts.org after some more cleaning up.

http://img69.imageshack.us/img69/8346/progd.png

Name: Anonymous 2010-07-13 10:30

http://userscripts.org/scripts/show/81403

Usage: Go to http://dis.4chan.org/list/prog

Next task is to make the output somehow use the correct styles.

Name: Anonymous 2010-07-13 14:37

>>18
I can't really tell what exactly it improves from that screenshot.

Name: Anonymous 2010-07-13 14:38

>>20
It shows you what threads have updated since you last visited.

Name: Anonymous 2010-07-13 14:48

>>21
And that includes sages!

Name: Anonymous 2010-07-13 14:51

And what advantage does this have over rss feeds?

Name: Anonymous 2010-07-13 14:53

>>23
Shiitchan has an RSS feed?

Name: Anonymous 2010-07-13 15:52

>>24
textboards have had RSS feeds for quite a while

Name: Anonymous 2010-07-13 15:58

>>24
no, but they're a common feature of other text board scripts.
they're trivial to add, and useful on boards that have a few good threads in an ocean of shit posted by idiots from the imageboards.

Name: Anonymous 2010-07-13 16:45

Why hardcode the domain, and why use GM_xmlhttpRequest when you're only doing intra-domain requests?

And instead of serialising and unserialising the board status into a string all the time, shouldn't you be using a database?
Hahah, just kidding. IndexedDB is shit, top-posted olddb.request.onsuccess = function() { olddb.request.onsuccess = function() { olddb.request.onsuccess = function() {, and No exceptions. (No, really.)

Name: Anonymous 2010-07-13 17:15

Why hardcode the domain,
Thanks, didn't think of changing that.

and why use GM_xmlhttpRequest when you're only doing intra-domain requests?
What else can be used?

And instead of serialising and unserialising the board status into a string all the time, shouldn't you be using a database?
Hahah, just kidding. IndexedDB is shit, top-posted olddb.request.onsuccess = function() { olddb.request.onsuccess = function() { olddb.request.onsuccess = function() {, and No exceptions. (No, really.)

I'll take a closer look at it, but after finding out that the Web Storage thing sends a browser-global event when the data is changed I'm not sure I want to use anything else (I'd have to convert this to an extension).

Name: Anonymous 2010-07-13 17:32

What else can be used?
regular XMLHttpRequest?

also, how about http://dev.w3.org/html5/webdatabase/ or http://code.google.com/apis/gears/api_database.html for a database?

Name: Anonymous 2010-07-13 18:03

>>29
regular XMLHttpRequest?
Ah, all right.

also, how about http://dev.w3.org/html5/webdatabase/
Maaybe.

or http://code.google.com/apis/gears/api_database.html for a database?
No!  I don't want to require any external libraries.

Name: Anonymous 2010-07-13 18:52

chrome doesn't have Date.prototype.toLocaleFormat and uneval...
here's a fix for the date thing:
        function formatDate(d) {
            var months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ];
            return '' + d.getDate() + ' ' + months[d.getMonth()] + ' ' + d.getFullYear() + ' ' + (d.getHours() < 10 ? '0' : '') + d.getHours() + ':' + (d.getMinutes() < 10 ? '0' : '') + d.getMinutes;
        }

it needs more fixing than just that, tho...

Name: Anonymous 2010-07-13 18:52

No!  I don't want to require any external libraries.
it's not an external library in my browser.

Name: Anonymous 2010-07-13 19:18

>>29
The Mozilla devs and MS, the web brotherhood of bloat, have joined together to ensure there won't be SQL on the web, and that things can't make sense ever.
Apparently joins are for pussies, and efficient, robust, well-tested, full-featured databases are best written as Javascript libraries on top of a clunky keystore interface, running in a browser.

http://hacks.mozilla.org/2010/06/comparing-indexeddb-and-webdatabase/ gives a pretty good argument of just how much the IndexedDB crap they're pushing instead sucks.

Name: Anonymous 2010-07-13 19:23

>>33
s/keystore/key-value store

Name: Anonymous 2010-07-14 12:19

>>33
What!, none of them are supported in the latest stable Firefox.  I'll just have to live with localStorage.

Maybe I can use keys like "prog-1278877486", but it would probably require storing a per-board index as well.  Oh and I should also store the domain name in the key to theoretically support other web sights.

Name: Anonymous 2010-07-15 8:49

Storing the keys like that worked, overall performance seems better, but marking all the threads as read is close to impossible due to the setItem implementation (filesystem is synced on every set).

I will attempt the extension route.  I should get access to better performing database APIs (@mozilla.org/storage/service;1 perhaps), full synchronization across tabs and (hopefully) windows, and perhaps some facilities for running processing in the background.

Name: Anonymous 2010-07-31 18:49

Started actual work on extension today.  SQLite database is working and XUL for thread list as well.  Many things left to do.  Will post an update in a week, but I won't have gotten much done by then.

The tables currently look like this, but the information about read posts needs to be added somewhere.

CREATE TABLE `boards` (
  `context` TEXT NOT NULL,
  PRIMARY KEY (`context`));

CREATE TABLE `settings` (
  `context` TEXT NOT NULL,
  `key` TEXT NOT NULL,
  `value` TEXT NOT NULL,
  PRIMARY KEY (`context`, `key`),
  FOREIGN KEY (`context`) REFERENCES `boards` (`context`));

CREATE TABLE `threads` (
  `context` TEXT NOT NULL,
  `tid` INTEGER NOT NULL,
  `subj` TEXT,
  `icon` TEXT,
  `count` INTEGER NOT NULL,
  `lastpost` INTEGER NOT NULL,
  `closed` INTEGER NOT NULL DEFAULT 0,
  PRIMARY KEY (`context`, `tid`),
  FOREIGN KEY (`context`) REFERENCES `boards` (`context`))

CREATE TABLE `posts` (
  `context` TEXT NOT NULL,
  `tid` INTEGER NOT NULL,
  `num` INTEGER NOT NULL,
  `time` INTEGER NOT NULL,
  `iphash` TEXT,
  `name` TEXT,
  `tripcode` TEXT,
  `triphash` TEXT,
  `email` TEXT,
  `text` TEXT,
  PRIMARY KEY (`context`, `tid`, `num`),
  FOREIGN KEY (`context`) REFERENCES `boards` (`context`),
  FOREIGN KEY (`tid`) REFERENCES `threads` (`tid`))

Name: Anonymous 2010-08-09 15:06

Uh, yeah, nothing to report really.  I should be able to get some work done this week.

Name: Anonymous 2010-12-17 1:36

Are you GAY?
Are you a NIGGER?
Are you a GAY NIGGER?

If you answered "Yes" to all of the above questions, then GNAA (GAY NIGGER ASSOCIATION OF AMERICA) might be exactly what you've been looking for!

Name: Anonymous 2010-12-23 8:40

Name: Anonymous 2011-01-31 19:52

<-- check em dubz

Don't change these.
Name: Email:
Entire Thread Thread List