dominikh changed the topic of #cinch to: The IRC Framework | Latest version: Cinch 2.0.9
Spami has quit [Read error: Operation timed out]
Spami has joined #cinch
space has joined #cinch
jonahR has joined #cinch
jonahR has left #cinch [#cinch]
space has quit [Read error: Connection reset by peer]
rickmasta has quit [Quit: Leaving...]
rickmasta has joined #cinch
rickmasta has quit [Client Quit]
Spami has quit [Quit: This computer has gone to sleep]
rickmasta has joined #cinch
Spami has joined #cinch
Spami has quit [Quit: Leaving]
v0n has quit [Ping timeout: 260 seconds]
kludge` has quit [Ping timeout: 245 seconds]
kludge` has joined #cinch
rickmasta has quit [Quit: Leaving...]
waxjar has quit [Ping timeout: 245 seconds]
waxjar has joined #cinch
v0n has joined #cinch
rickmasta has joined #cinch
rickmasta has quit [Client Quit]
rickmasta has joined #cinch
UberDragon has joined #cinch
space has joined #cinch
rickmasta has quit [Quit: Leaving...]
v0n has quit [Quit: WeeChat 0.4.3-dev]
v0n has joined #cinch
rickmasta has joined #cinch
v1n has joined #cinch
v0n has quit [Ping timeout: 240 seconds]
space has quit [Read error: Connection reset by peer]
rickmasta has quit [Quit: Leaving...]
space has joined #cinch
julian_ has joined #cinch
<julian_> Hello!
<julian_> I'm thinking of creating an online IRC client
<julian_> just as a bit of fun
<julian_> would the cinch framework be a good choice?
space has quit [Excess Flood]
<julian_> Use it to connect, and ignore its bot functionality?
<dominikh> I've once written a PoC graphical IRC client with Cinch, so yeah, it's doable
<dominikh> but you'd need one instance of Cinch per client; might be a bit memory hungry
space has joined #cinch
<julian_> Ah I see, I thought there'd be something like that.
<julian_> Can you recommend a framework for simply interfacing with IRC, if one exists?
<dominikh> not really. the one's that "just interface with IRC" are so simplistic that you end up implementing most of IRC yourself, anyway
<dominikh> as they only handle the bare protocol
<dominikh> and at that point you're likely back to the same memory consumption as Cinch ;)
julian_ has quit [Remote host closed the connection]
<catepillar> i dont think he liked your answers :(
<dominikh> *shrug*
<catepillar> lol
rickmasta has joined #cinch
julian_ has joined #cinch
<julian_> dominikh: Could you name one of these minimalist frameworks :) ?
<dominikh> julian_: isaac if you want an ugly one that's still geared at bots but cannot do anything useful, maybe http://ruby-irc-yail.nerdbucket.com/ if that's still maintained
<Cinchy> [URL] net-yail-1.6.1 Documentation
<julian_> hmm
<julian_> thankyou
<julian_> maybe creating something from scratch would be a better idea.
<dominikh> maybe, yeah
<julian_> Like I say, I can create bespoke ecommerce, so do you reckon I could be able to build an IRC client okay? Any resources online?
<dominikh> uh, if you want to start from scratch there are various RFCs on IRC you want to read, then fight with various non-standard implementations you will encounter, funny bugs, etc. that's for the protocol.
<dominikh> most of the work that went into Cinch aren't bot-related but just to provide an OO layer on top of the protocol and all its quirks
<julian_> Yes, having that layer is literally what I'm looking for
<julian_> but you say it's not designed for a large number of users?
<julian_> it's designed more for one person
<julian_> one 'bot'
<dominikh> well, each instance of Cinch::Bot can only handle a single connection; so you'd have a lot of duplicate data in memory for multiple users
<julian_> still, it sounds like an easier option
<dominikh> I mean, you can take the existing project, fork it and hack on it, it's MIT licensed; but it might take some time to get into the existing code base
<julian_> Yeah, that's always the case. Look at this, though: http://www.dzone.com/snippets/simple-irc-bot-written-ruby
<julian_> Superficially, it appears a lot of the heavy lifting is done by Ruby's 'socket' library
<dominikh> that's really just the most minimal amount of work you can do to get a working connection that's not dealing with *any* of the important stuff
<julian_> This is a brand new field for me
<dominikh> IRC is asynchronous. say you want to display a user's information in a fancy dialog in your IRC client. you need to send a WHOIS, wait for each part, parse it, handle the case of the server not responding due to throttling
<dominikh> say you want to handle ban lists intelligently. one network in particular lacks a specific field in the ban information that should be there. do you handle that?
<dominikh> will you support more advanced features? then you need to implement the CAP protocol
<dominikh> the socket does exactly what a socket does. opens a connection, allows reading and writing data. there's not much magic there.
<julian_> I'll admit that's all I thought an IRC client needed to be. I see I was wrong...doesn't help that it isn't really standardized
<julian_> Saying that, there must be a very finite amount of features a good IRC client needs
<julian_> is there somewhere I could read up on this?
<dominikh> I mean, take a look at the source bases of irssi or weechat, those are plain IRC clients, and there's still tons of work in those
<dominikh> it also depends how good your client is supposed to be ;) whether it's just dumb text in text out, or feature rich.
<julian_> OKay, well let's start at square one. :)
<dominikh> (fwiw, there are already a number of decent web irc clients out there; the market seems somewhat saturated)
<julian_> That is true
<dominikh> https://www.irccloud.com/ is still beta, you could look at that to see what people expect
<Cinchy> [URL] IRCCloud
<dominikh> but I reckon it's doing relatively little of the extra stuff like handling bans
<julian_> good idea, thanks a lot for your time by the way
<dominikh> sure, no problem
<julian_> Literally I only use Irssi to talk to people about RoR, that's it. So I don't really know much. Ban lists and the like.
<julian_> I'll have a look at irccloud, see what kind of feature's they're offering
<julian_> but is there some sort of list that a good IRC client should have?
<dominikh> (I have no idea what they offer, I just know that people who don't expect the entirety of IRC features like that service)
<dominikh> uh, not really per se. the stuff you know from using IRC clients ;) also local clients have more features, like DCC
<dominikh> I suppose reading the manual of any good IRC client lists its features
<julian_> Yeah...I was just wondering if there was some sort of IRC consortium :)
<dominikh> haha.
<julian_> Do you know, I think this will be a great learning experience for me. I'll take a good read of Irssi documentation, and use Ruby's standard libraries.
<julian_> thanks a lot!
<dominikh> cheers, have fun
<dominikh> there's ~1 year of actual work in Cinch :P
<julian_> well, I won't take over the world with one version :)
<julian_> I'll start off simple
<dominikh> hehe
rickmasta has quit [Quit: Leaving...]
Spami has joined #cinch
postmodern has joined #cinch
julian_ has quit [Ping timeout: 260 seconds]
julian has joined #cinch
julian is now known as Guest71515
rickmasta has joined #cinch
Spami has quit [Ping timeout: 272 seconds]
Spami has joined #cinch
Spami has joined #cinch
jonahR has joined #cinch
jonahR has left #cinch [#cinch]
v1n has quit [Quit: WeeChat 0.4.3-dev]
space has quit [Remote host closed the connection]
v0n has joined #cinch
Cinchy_ has joined #cinch
Cinchy has quit [Remote host closed the connection]
v0n has quit [Ping timeout: 245 seconds]
v0n has joined #cinch
Spami__ has joined #cinch
Spami has quit [Ping timeout: 272 seconds]
Spami__ has quit [Read error: Connection timed out]
Spami__ has joined #cinch
Khazix has quit [Quit: process.exit(0)]
Khazix has joined #cinch