🦋 Welcome to the MAIN() IRC channel of the Raku Programming Language (raku.org). This channel is logged for the purpose of keeping a history about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | Log inspection is getting closer to beta. If you're a beginner, you can also check out the #raku-beginner channel! Set by lizmat on 25 August 2021. |
|||
00:00
djerius left
00:01
djerius joined
00:02
reportable6 left
00:03
Skarsnik left,
reportable6 joined
00:35
rbt joined
|
|||
SmokeMachine | I've just added some more data to my advent calendar post draft. if someone have some time to prof read it: gist.github.com/FCO/8ad2bd4cc3723e...e1690ed9df thanks | 00:42 | |
00:54
gcd joined
01:02
frost joined
01:04
colemanx left,
colemanx joined,
getimiskon left
01:09
rbt left,
rbt joined
|
|||
at | Hey, is rakubrew.com down? | 01:24 | |
Looks like it's just the root page, the sh file for installing it's still being served | 01:25 | ||
ugexe | its .org i though | 01:30 | |
looks like .org is down though | |||
01:31
frost left
|
|||
at | Err, yeah, I meant .org | 01:31 | |
01:35
frost joined
|
|||
frost | ah, so funny, tikolu.net/emojimix/%F0%9F%98%82+%F0%9F%A4%91 | 02:09 | |
02:11
hexology joined
02:39
rbt left,
rbt joined
03:39
committable6 left,
bloatable6 left,
coverable6 left,
squashable6 left,
reportable6 left,
evalable6 left,
linkable6 left,
benchable6 left,
shareable6 left,
quotable6 left,
releasable6 left,
unicodable6 left,
nativecallable6 left,
greppable6 left,
notable6 left,
tellable6 left,
sourceable6 left,
bisectable6 left,
statisfiable6 left
03:40
rbt left,
rbt joined,
unicodable6 joined,
bloatable6 joined
03:41
linkable6 joined,
notable6 joined,
bisectable6 joined,
benchable6 joined,
sourceable6 joined,
committable6 joined
03:42
tellable6 joined
03:45
rbt left,
rbt joined,
rbt left,
rbt joined
04:25
rbt left
04:26
rbt joined
04:40
shareable6 joined
04:41
reportable6 joined
04:42
evalable6 joined,
squashable6 joined,
quotable6 joined
04:43
coverable6 joined
04:51
rbt left,
rbt joined,
rbt left
|
|||
samebchase | m: (Date.new(2021,11,30) .. *).head(2)>>.&{ say "day is {$_.day}" }; | 05:31 | |
camelia | day is 30 day is 1 |
||
samebchase | I've been able to get this working using a topic variable, however my question is how do I create an inline lambda that takes in an arbitrary signature | 05:32 | |
meaning, if my sequence has a list of size-2 lists, I would like to do something like (SEQ-OF-SIZE-2-LISTS)>>.&{ ($a, $b) -> { say "$a, $b" }} | 05:34 | ||
[(1,2), (3,4)]>>.&{ <LAMBDA-BODY> }, what's the syntax of defining lambdas that work with hyper operators with the "." method call syntax | 05:36 | ||
05:40
nativecallable6 joined
|
|||
samebchase | m: (1 .. 2 X 3 .. 4)>>.&{ say $^a; }; | 05:40 | |
camelia | 1 3 1 4 2 3 2 4 |
||
samebchase | how do I deal with the data as pairs and not flattened | ||
m: (1 .. 2 X 3 .. 4); | |||
camelia | WARNINGS for <tmp>: Useless use of "X" in expression ".. 2 X 3 .." in sink context (line 1) |
||
05:40
greppable6 joined
|
|||
samebchase | m: (1 .. 2 X 3 .. 4); | 05:41 | |
camelia | WARNINGS for <tmp>: Useless use of "X" in expression ".. 2 X 3 .." in sink context (line 1) |
||
samebchase | m: say (1 .. 2 X 3 .. 4); | ||
camelia | ((1 3) (1 4) (2 3) (2 4)) | ||
samebchase | I want these "pairs" to be given the the lambda without flattening them, so 4 items, instead of 8 items. | 05:42 | |
05:42
statisfiable6 joined
|
|||
samebchase | "Whether hyperoperators descend into child lists depends on the nodality of the inner operator of a chain. For the hyper method call operator (».), the nodality of the target method is significant." from docs.raku.org/language/operators#i..._operators | 05:44 | |
how do I define an inline lambda here, which does not force the hyper operator to not descend into an inner list? | 05:48 | ||
Something like: (1 .. 2 X 3 .. 4)>>.& -> ($a, $b) { say $a, $b }; where $a is 1 and $b is 3 on the first iteration | 05:51 | ||
elcaro | samebchase: use .map | 05:56 | |
(1 .. 2 X 3 .. 4).map(-> ($a, $b) { ... }) | |||
(1 .. 2 X 3 .. 4).map: -> ($a, $b) { ... } # Alternate syntax | 05:57 | ||
samebchase | elcaro: I understand `map` does that as it allows you to pass in a block. I was just wondering if there was a way to easily pass in arbitrary blocks with hyper operators. | 05:59 | |
I guess `map` is idiomatic here, and hyper operators are better off when the data is not nested. | 06:00 | ||
elcaro | you can't stop a hyper-operator from decending into children unless you explicitly specify the nodality, which you can really only do with a routine trait | ||
yeah, I personally think `».&` is an anti-pattern outside of golfing | 06:01 | ||
06:02
reportable6 left
|
|||
elcaro | m: sub f($xs) { $xs.elems }; sub g($xs) is nodal { $xs.elems }; say (1 .. 2 X 3 .. 4)».&f; say (1 .. 2 X 3 .. 4)».&g | 06:03 | |
camelia | ((1 1) (1 1) (1 1) (1 1)) (2 2 2 2) |
||
samebchase | my &f = sub ($a, $b) is nodal { say $a, $b }; followed by [(1,2),(3,4),]>>.&f; , but I still get the error "Too few positionals passed; expected 2 arguments but got 1" | 06:04 | |
elcaro | i don't think there's any way to say a lambda `is nodal` and even if there was, it would be noisier that just using `map` | ||
samebchase | wait, let me see what you've just typed | ||
elcaro | you sub is not receiving 2 arguments... it's receiving a list of 2 elems | 06:05 | |
samebchase | Ah, my function is expecting two args, | ||
instead I need to destructure | |||
elcaro | unless you unpack in the sub | ||
samebchase | got it! | ||
thanks so much elcaro | |||
elcaro | yeah like sub (@ [$a, $b]) { ... } | ||
samebchase | tl;dr: Use map, and don't mess with "is nodal" | 06:06 | |
06:06
swaggboi left
|
|||
samebchase | Earlier, the use of ">>" as opposed to a map or a loop used to make me feel anxious, but now I think I'm overdoing hyperoperators in my quest to understand them. | 06:07 | |
elcaro | yeah, plus `».` is not lazy, so it's not always ideal for that reason | 06:08 | |
I use them sparingly, usually to avoid map-inside-map, ie. I will typically prefer `*.map(*».foo)` over `*.map(*.map(*.foo))` | 06:09 | ||
06:19
swaggboi joined
|
|||
samebchase | hmm ncie | 06:21 | |
nice* | |||
06:38
rbt joined,
rbt left
06:39
rbt joined
06:42
releasable6 joined
06:44
rbt left
07:27
seednode left
07:28
seednode joined
07:33
gordonfish- joined,
gordonfish left
07:43
andrzejku joined
07:44
jmcgnh left,
Xliff joined,
kylese joined
|
|||
Xliff | How can I introspect .mvmheap files? | 07:45 | |
Ah! moarperf | |||
07:54
patrickb joined
07:55
jmcgnh joined
07:56
abraxxa joined
07:58
abraxxa left
08:00
abraxxa joined,
rbt joined
|
|||
Xliff | Hmm... moarperf is bombing for me. Does anything else allow me to read .mvmheap files? | 08:03 | |
08:04
reportable6 joined
08:05
rbt left,
rbt joined
08:06
abraxxa left,
abraxxa joined
08:07
rbt left,
rbt joined
08:08
andrzejku left
08:12
rbt left
08:13
AAAYK1 joined
08:20
Sgeo left
08:22
frost left,
frost joined
08:23
rbt joined
|
|||
Xliff | MoarPerf is choking on my .mvmheap files. These are generated from a (fairly) fresh rakudo. Any ideas as to a workaround? | 08:32 | |
frost | m: my &f = sub (($a, $b)) is nodal { say $a, $b }; [(1,2),(3,4),]>>.&f; | ||
camelia | 12 34 |
||
frost | samebchase ^^^ | 08:33 | |
08:38
rbt left
08:39
rbt joined,
rbt left
08:52
dakkar joined
08:53
kylese left
09:03
a3r0 joined
09:29
daxim left
09:35
rbt joined
09:36
rbt left
|
|||
elcaro | frost: they were asking if it was possible with a point block, ie. [(1,2),(3,4),]».&(-> ($a, $b) { ... }) | 09:39 | |
I'm not aware of a way to make pointy blocks can be made nodal | 09:40 | ||
can do it with anon subs, tho | |||
say [(1,2),(3,4)]».&(sub ([$a, $b]) is nodal { $a + $b }) | 09:41 | ||
evalable6 | (3 7) | ||
09:41
rbt joined
09:42
rbt left
|
|||
elcaro | but with that noise, you may as well just use map | 09:42 | |
09:42
rbt joined
09:47
rbt left,
rbt joined,
rbt left
10:08
rbt joined
|
|||
timo | you can possibly use duckmap to do the hypering here | 10:08 | |
10:08
rbt left
|
|||
timo | since hyper, as opposed to map, will traverse the struture and give the same structure back | 10:08 | |
10:08
rbt joined,
rbt left
|
|||
timo | Xliff: what does the choking look like? | 10:08 | |
Xliff: moarperf is supposed to be able to read moar heap snapshots version 2 as well as 3 | 10:09 | ||
(you get 3 if libzstd is present at moarvm Configure.pl time) | |||
10:11
discord-raku-bot left
|
|||
Xliff | Ah... that might be why. | 10:11 | |
Let me recompile. | 10:12 | ||
10:12
discord-raku-bot joined
|
|||
timo | but it still shouldn't choke :D | 10:14 | |
Xliff | Malformed UTF8 @ blah.,... | 10:15 | |
Didn't have -lzstd compiled in | |||
timo | i forgot why but reently we discussed perhaps shipping libzstd with moarvm and use that if it's not available in the system | 10:17 | |
10:21
pelai joined,
pelai left
10:24
rbt joined
10:32
andrzejku joined
|
|||
samebchase | elcaro: "say [(1,2),(3,4)]».&(sub ([$a, $b]) is nodal { $a + $b })" I just wanted to know if it was possible. Glad there is way to do that, even though it is not possible with pointy blocks. | 10:34 | |
Xliff | timo: You might want to make sure libzstd support is compiled into MoarVM before you compress the heap files. | ||
10:37
rbt left
10:39
rbt joined,
rbt left
|
|||
timo | it's not trying to do that tho | 10:46 | |
10:59
Skarsnik joined
11:10
rbt joined
11:22
lichtkind joined
|
|||
qorg11 | if i have a C function called with NativeCall that returned a file descriptor, how can I use that fd with IO::Handle? | 11:26 | |
11:40
rbt left
11:41
rbt joined
11:42
Skarsnik left
11:51
rbt left,
rbt joined
|
|||
Xliff | qorg11: You're better off using NativeCall to grab the functions that use the file descriptor and use them. | 11:56 | |
12:02
reportable6 left
12:06
abraxxa left
12:08
A26F64 joined
12:14
lichtkind left
12:16
rbt left
12:22
rbt joined,
rbt left,
abraxxa joined
|
|||
frost | I want to know, if a module uses NativeCall and I import it, do I have to declare `use NativeCall` when I use other native C callings? | 12:23 | |
lizmat | all use statements in Raku are lexical | 12:24 | |
so yes | |||
m: sub ok() { say "foo" }; { use Test; ok 1 }; ok | |||
camelia | ok 1 - foo |
||
frost | ok, thanks lizmat | 12:25 | |
lizmat | note the different versions of ok ^^ | ||
frost | ok, i see | ||
elcaro yeah, here reflects the difference between subs and point blocks | 12:35 | ||
12:40
getimiskon joined
12:42
rbt joined
12:53
rbt left,
rbt joined,
rbt left
|
|||
gfldex | lizmat: Unless `package EXPORTHOW` is involved. Is that fixable in priciple? | 13:00 | |
timo | slangs could do it i imagine | 13:17 | |
lizmat | I'm not sure what needs to be fixed ? | 13:30 | |
timo | it's more a question of breaking it than of fixing it | 13:41 | |
13:43
frost left
14:01
abraxxa left
14:18
rbt joined
14:20
abraxxa joined
14:23
rbt left
14:24
rbt joined
14:29
a3r0 left,
a3r0 joined,
rbt left
|
|||
gfldex | lolibloggedalittle: gfldex.wordpress.com/2021/11/30/mo...ssproduct/ | 14:37 | |
perryprog | gfldex you might want to link to this week's challenge in the lede of the post so people like me can be lazy if we don't remember what it was | 14:38 | |
gfldex | good call | ||
perryprog | <3 thanks | 14:44 | |
14:44
dogbert17 joined
|
|||
perryprog | Also, awesome title | 14:44 | |
gfldex | I would love to have the EVAL gone. | 14:50 | |
Nemokosch | Why did you use it, then? | 14:51 | |
gfldex | Because I needed that crossproduct and there is no method for that. | 14:52 | |
perryprog coughs up docs.raku.org/routine/cross | |||
gfldex | :O | 14:53 | |
Nemokosch | What would you prefer instead? | ||
gfldex | List.cross ofc! | ||
perryprog | m: [1, 2, 3] X [3, 2, 1] | ||
camelia | WARNINGS for <tmp>: Useless use of "X" in expression "[1, 2, 3] X [3, 2, 1]" in sink context (line 1) |
||
perryprog | well | ||
m: [1, 2, 3] X* [3, 2, 1] | |||
camelia | Potential difficulties: Useless use of X* in sink context at <tmp>:1 ------> 3[1, 2, 3] 7⏏5X* [3, 2, 1] |
||
perryprog grumbles | |||
I'm out of practice | |||
gfldex | m: dd cross(1,2,3 xx 3); | 14:54 | |
camelia | ((1, 2, 3), (1, 2, 3), (1, 2, 3)).Seq | ||
gfldex | m: dd cross(|(1,2,3 xx 3)); | 14:55 | |
camelia | ((1, 2, 3), (1, 2, 3), (1, 2, 3)).Seq | ||
Nemokosch | rip | ||
m: dd cross((1,2,3) xx 3) | 14:57 | ||
perryprog | m: dd cross((1,2,3) xx 3) | 14:58 | |
camelia | ((1, 1, 1), (1, 1, 2), (1, 1, 3), (1, 2, 1), (1, 2, 2), (1, 2, 3), (1, 3, 1), (1, 3, 2), (1, 3, 3), (2, 1, 1), (2, 1, 2), (2, 1, 3), (2, 2, 1), (2, 2, 2), (2, 2, 3), (2, 3, 1), (2, 3, 2), (2, 3, 3), (3, 1, 1), (3, 1, 2), (3, 1, 3), (3, 2, 1), (3, 2, 2… | ||
Nemokosch | rip x2 | ||
perryprog | I got you | ||
14:59
rbt joined
15:02
MyButterfliable left
|
|||
gfldex | I updated the blogpost with this fine simplification. | 15:04 | |
15:05
reportable6 joined
15:06
abraxxa left
15:08
abraxxa joined
15:09
andrzejku left
15:24
rbt left,
AAA4S2 joined
15:30
rbt joined
15:41
Altai-man joined
15:44
melezhik joined
|
|||
melezhik | .tell tbrowder I am going to shut mybf.io down, after 2-3 month it seems that the site is not in use ... it was unsuccessful attempt ))) , could you please remove a link from raku.org? | 15:47 | |
tellable6 | melezhik, I'll pass your message to tbrowder | ||
melezhik | ^^ SmokeMachine - looks like was the only user of the web site? | 15:48 | |
^^ tbrowder | |||
SmokeMachine | melezhik: really? sad news... :( I like that idea | 15:49 | |
tbrowder | melezhik: will do, sorry, you sure you want to shut it down? if it isn't hard to maintain or cost money, i would leave it up. | 15:51 | |
rakuuns, like other ppl, have desires that change all the time, so who knows when it might take off! | 15:52 | ||
melezhik | SmokeMachine tbrowder sorry that I upset you , the site costs me some money - 30$ a months and I am not sure if there are any real users besides maybe SmokeMachine | ||
tbrowder | oh, i'm not upset, just sorry it didn't flourish. | 15:54 | |
melezhik | my idea was to spin it off and then people would do comments, but realistically irc/reddit beat me here ))) | ||
spin off -> launch | 15:55 | ||
tbrowder | if the code is available maybe i can run it on one of my servers | ||
melezhik | for sure, code I can share the code ... but be aware - it is not optimal and very slow ( it needs a DB instead slow file system ) - and this is a one of the reasons it eats some resources | 15:56 | |
tbrowder | and reddit is not a place i visit often. maybe make yr site just for Raku modules and projects. | ||
melezhik | but overall it's just a cro application with a state kept on the file system | 15:57 | |
so if you want to give it a try I can make a GH public and you can fork , will it work? | |||
jast | now I'm curious, what was the site about? can't access it so I assume it's already down | ||
tbrowder | pls make it public (but sanitize appropriately) | 15:59 | |
gotta get back to my advent article...back later... | 16:00 | ||
melezhik | tbrowder sure - do you mean to remove sensitive data ? | ||
jast I can switch it on real quick, if you are curious ... | 16:01 | ||
jast | a one-line summary would do it, too :) | 16:02 | |
tbrowder | yes, passwords, contact data not made public already, etc., root user info... | ||
melezhik | sure | 16:03 | |
jast I switched the site on | |||
Altreus | lizmat: there's a list in this doc that didn't seem to render correctly modules.raku.org/dist/IRC::Client:...zef:lizmat | ||
dunno whose bug it is :) | |||
jast | ohh... yeah, that's a nice idea for sure | ||
16:04
A26F64 left
16:05
andinus joined
|
|||
melezhik | tbrowder let's do this - I am going to keep the site running for a couple of weeks or so and make the site source public, so you can fork it and try to host it on your own, we can arrange other stuff - like current site data - reviews/points/etc ( not a part of the repo ) and domain name later, | 16:05 | |
qorg11 | Xliff: I'm trying to use read(), but is it possible to dinamycally allocate the buffer? | ||
melezhik | will it work? | ||
tbrowder | okay, let's give it a shot! | 16:06 | |
Altreus | lizmat: oh, and the links don't work, but again, not sure whose bug... | 16:08 | |
melezhik | tbrowder - github.com/melezhik/mybutterflies , and ... don't please bare with me , the site code is ugly sometimes :') | 16:09 | |
Altreus | ah, for the links to work the URL has to end in a / and it doesn't redirect if there isn't one | ||
melezhik | bare -> bear | 16:10 | |
jast | well as they say... 1. make it work 2. make it good 3. make it fast :) | 16:11 | |
and (2) has plenty of sub-steps | 16:12 | ||
most of my projects stop getting updates somewhere in the middle of the first step | 16:14 | ||
16:15
rbt left
|
|||
melezhik | yeah, I guess the concept stage is pretty much finished , the implementation part is still in progress, from my pint of view the site lacks real users who would do comments/news/updates | 16:15 | |
jast | getting users is the hardest part ;) | 16:17 | |
16:21
getimiskon left
16:29
A26F64 joined
16:43
perlmaros left,
Summer_ joined
16:44
japhb left,
lucs_ left,
bartolin_ left,
Summer left
16:45
ptc left,
lucs joined
16:46
japhb joined,
bartolin joined,
ptc joined
16:47
squashable6 left,
Summer joined
16:48
Summer_ left
16:49
perlmaros joined
16:50
rbt joined
16:55
lichtkind joined
16:58
patrickb left
17:00
patrickb joined
17:05
rbt left
17:06
rbt joined
17:16
rbt left,
rbt joined
17:26
Altai-man left
17:33
dakkar left
17:51
rbt left
18:02
rbt joined,
reportable6 left
18:04
reportable6 joined
18:27
rbt left,
rbt joined
18:35
abraxxa left
18:48
mybutterfliable joined
18:50
mybutterfliable left
18:54
rbt left
18:55
rbt joined
18:59
gordonfish- is now known as gordonfish
19:09
A26F64 left
19:20
melezhik24 joined
19:25
MyButterfliable joined
19:26
MoC joined
19:27
rbt left,
rbt joined
19:29
melezhik24 left,
MyButterfliable left
|
|||
tbrowder | yep, that's why the several young folks i know in the publicity world can make some big bucks/euros | 19:42 | |
[Coke] | me: "AIGH WHY IS ADVENT POSTING HAPPENING ALREADY". me: remembers time zones exist. | ||
tbrowder | but they don't help s, | 19:43 | |
Nicholas | [Coke]: you mean there are time zones other than UGT? :-) | ||
[Coke] | -1 for the explicit religious message at the end. | ||
tbrowder | *small fish much... | 19:44 | |
[Coke] | my RSS feed shows me the article, but if I click to go to site, I get: raku-advent.blog/2021/11/30/santa-...ing-along/ which is a 404 | ||
tbrowder | [Coke] i just discovered unposting works! | ||
[Coke] | ?? Why unpost? | 19:45 | |
I assumed it was on a schedule for Dec-01? | |||
tbrowder | cause i hit the post button inadvertently | ||
[Coke] | That'd do it | ||
tbrowder | when i wasn't ready | ||
i hate wordpress, menus are horrible and misleading, html entry is terribly non-standard... | 19:47 | ||
lizmat | I wrote my blog post in markdown, committed it to github, copy-pasted the HTML representation, and was done :-) | 19:48 | |
tbrowder | my article is there as draft with a scheduled post i think...something jj automated i think... | ||
lizmat | my biggest beef with WP was that it didn't allow me to schedule the post to be published at midnight | 19:49 | |
0 was not acceptable as an hour indicator :-( It would revert to whatever it had before | 19:50 | ||
tbrowder | i did it in pod and used Pod::To::HTML and inserted it into the code editor...had to remove the head part | ||
[Coke] | I often do 12:01 or 11:59 to avoid shenanigans. | 19:52 | |
(not in this context in particular) | |||
floooh.github.io/tiny8bit-preview/ ... played around on the C64 emulator a bit. | 19:55 | ||
19:57
rbt left
19:58
rbt joined
20:08
rbt left,
rbt joined
20:13
rbt left,
rbt joined
20:27
andrzejku joined
20:33
rbt left
20:34
rbt joined
20:42
andrzejku left
20:45
Skarsnik joined
20:51
MoC left
20:59
rbt left,
rbt joined
21:01
p6steve joined
21:08
getimiskon joined
21:09
rbt left,
rbt joined
21:11
p6steve left
|
|||
Skarsnik | Hello | 21:12 | |
Do I still need to use eval to add a token dynamicly to a grammar? | 21:14 | ||
21:14
rbt left
21:15
rbt joined
|
|||
ugexe | grammar Foo { token TOP { <foo> } }; role Bar { token foo { \w+ } }; my $g = Foo.new but Bar; | 21:21 | |
Skarsnik | I am talking more about .^add_method x) | 21:23 | |
21:24
p6steve joined
21:25
rbt left,
rbt joined
21:29
p6steve left
21:35
rbt left,
rbt joined
21:37
andrzejku joined
21:49
lichtkind_ joined
21:51
lichtkind left
21:53
Ergo444 joined
|
|||
Ergo444 | hi | 21:53 | |
HOw can I set a category for a package | 21:54 | ||
in raku directory | |||
21:56
squashable6 joined
|
|||
Skarsnik | I do $grmr.^add_method("instruction:sym<$token-name>", EVAL 'token {"' ~ $instruct.inst.lc ~ '"}'); but when I list the methods of the grammar all the token have no names. | 21:59 | |
but if I add the name of the token in the EVAL I got an error | |||
22:01
[Coke] left
22:04
andrzejku left
22:05
[Coke] joined
22:16
rbt left,
rbt joined
|
|||
[Coke] | . | 22:21 | |
Skarsnik | ah it's fun, ^methods on grammar give you the contents of the grammar x) | 22:29 | |
the issue EVAL does not let me have the name of the token :( | 22:30 | ||
Ok, need to add my in front of token. *talk to himself* | 22:33 | ||
tbrowder | lizmat: you still here? | 22:47 | |
Skarsnik | Hm, I have another issue, I need to inherit from my generated grammar in another one (static) but... that it can't find the generated type :( | 22:48 | |
23:05
patrickb left
|
|||
tbrowder | well, i used lizmat's method. it works sort of, best so far, though. but not all pod get's translated well to markdown, so still had to edit one list item that should have been a code block | 23:07 | |
has any Mac user tried "MarsEdit" for offline Wordpress blogs? | 23:08 | ||
or, shudder, any win ppl used MS Word? for offline Wordpress blogs? | 23:09 | ||
23:26
rbt left,
rbt joined
23:35
Skarsnik left
23:41
rbt left
|