Hacker News new | past | comments | ask | show | jobs | submit login
Komanda: IRC Client For Developers (github.com)
83 points by spl9merz on Aug 24, 2014 | hide | past | web | favorite | 63 comments

Is this an IRC client or an IRC server?

Looking at the code, it appears to be a client, but in that case why does the site talk about it providing support for "Channels, Users, Permission, Private, Public and much more", why does it claim it makes my channel contents more secure (under "Secure Your Logs"), and why does it talk about setting up an IRCd (" With a ZNC bounce, a simple ircd server and 5 minutes you can avoid paying for communication and keep your company chat logs secure and on your own infrastructure.").

If it's a server, why is how to set it up not described?

Not sure if OP is actually part of the dev team, or just somebody who found the site, but a word to the devs: your website should clarify which of the above you are providing. If it's a client, the site shouldn't talk about the benefits I'd get running my own IRCd (security of communication, IRCd features like channel modes and permissions, or lower cost). If you are intending for folks to run their own IRCd, the site needs to have information on where that software lives and how to set it up, and why I'd want to do that instead of just making a channel on OFTC or Freenode or similar.

I think that description is pitching it as a tool for small businesses or development teams (that don't already know about ZNC, HexChat, irssi, weechat, freenode, etc).

If that's the case, it really needs some strong docs to walk somebody setting it up for their small business through setting up an IRCd.

I was playing with all those, then I found kiwiirc

kiwiirc has it's own set of downsides. Primarily, the lack of registration requirement makes it a haven for spammers and other network attacks and their practice of putting all users onto a limited number of IPv4 addresses makes it nearly impossible to block the abuse without affecting legitimate users.

Kiwiirc admin here. We actually have a few options for networks to solve the issues you mention. We can use WEBIRC to have the network show the users correct hostname or the users IP in hex form as the username/ident. For either of these options IRC network admins can enable them at will.

Due to the limited IPv4 addresses now available we can't be using many source address for users, while IPv6 causes further questions such as what do we do for idents as they don't fit as IPv4 addresses do, and what can be done for an IPv6 user connecting to an IPv4 network?

While WEBIRC solves all the issues it does mean IRC networks must trust kiwiirc with setting user hostnames - something some networks don't want to allow making it impossible for us to set user hostnames correctly. It's an issue without a real solution at the moment.

A large part is letting IRC admins know about the options kiwiirc provides to work around the issues, unfortunately many ban all kiwiirc users causing headaches for everyone instead of looking into the options.

It's beyond me why anyone would write a desktop application in JS, CSS, and HTML, and require node as a dependency. These technologies are already bastard children of the 'just make it work' mentality. Using them for an environment they were never designed for, when there is decades of existing infrastructure purpose-built (and far easier to use), makes no sense. The only reason that I can come up with for why someone would build a desktop app with these technologies is that they cbf to learn to use the correct tools for the job.

As for "the best client for developers" -- I'll stick with irssi, thanks.

This kind of elitism is what turns so many people off about technology. What if these are kids that are building this? Do you care so much about your view that you would want to shut them down? Not everyone has the time or interest in learning systems programming or C/C++.

In the end, optimization forces operating at levels beyond our comprehension and ability to fully model will determine whether or not this project sees continued development. Personal lives, adcademic interest, social proliferation of memes, economic constraints...all serve as inputs. Don't force an outcome like this. You might damage the author's impetus to try again with more ambition in the future. Let nature run its course; you may occasionally find yourself surprised by the outcome.

In general, it is pointless to rationalize your choices to the rest of the world, which frankly doesn't put as much effort into listening as you might think.

Sorry if I come across as rude. I just think this could be better framed as constructive criticism.

I'm not being elitist. I'm stating my opinion; if you take it as an affront, that's not my problem. So what if they're kids? Do you expect me to self-censor in order to potentially spare the feelings of a developer who may or may not be young? If what they're doing is better, then in time, I'll be proven wrong. As you say, let nature run its course.

Hacker News is a place where people discuss technology. Opinion is inherent in discussion. I don't apologize for anything I wrote.

Why would I be outraged by an opinion on the internet unless it were truly deplorable or inhumanely despicable? To characterize my amiable response to you in such a way is borderline ad hominem. (Perhaps you don't mean it to be, but it is in keeping with the definition.)

Because I find the lens of another's opinion or experience a useful tool in normalizing perception, I'm going to state my personal reaction to your posts. I sincerely do not mean to insult or offend you. If you feel differently, I understand. To me, a tone like yours paints a picture of a defensive, self-righteous bully. You state that you will not be censored, yet your language is coercive and might implicitly have that exact effect upon others. Would you really want to hurt someone else's ambition? There are enough problems in the world already without adding to the weight of their burden.

Again, just my personal take on your comments.

On a related note, try to better frame your arguments for the benefit of everyone else here. If you disagree with something, qualify your assertions so that they might be useful instead of adding more noise and entropy. For instance, you could have written a compelling and thoughtful argument about why you consider the DOM to be the wrong solution. Making an effort to write in this manner adds significant weight to your argument and brings value to those that are reading.

Take this as my personal challenge to you: consider the things you write and how others might react to them. We're all under the influence of neuropeptide signaling as we interact with others, and we can only make our best attempt at civility (which is unfortunately not a first-class a biological concept). I understand, and I assure you that I don't want to censor you or otherwise neuter your human experience. I have stated all of this expressly for your use. I have nothing to gain by taking the time to respond here.

Be chill. Relax. Abide. The universe is slipping all of us by far too quickly to waste time with being aggressive. Certain things just don't matter in light of that.

Hacker News is a place where people at least try to build a coherent, rational discourse. Your posts detract from that goal and these two comments of your are a net negative to the discussion.

But you already know that as you are posting from an anonymous username.

Actually, it's far easier to write one web app that can be used on smartphones, desktop systems, tablets etc., on all platforms.

Believe it or not people actually use smartphones and tablets now, and even if you hate that and use desktop for all chatting and all repository notifications and the like, some people don't, and making stand alone GUI applications isn't helping those people.

And indeed often, just making the web app is easier than getting your app to look good natively across multiple operating systems, especially now with mobile being so prominent.

It's not a desktop application. It's a browser application masquerading as a desktop application. It makes sense if you believe the desktop is dead and the browser won, which many people do.

Precisely my point. Instead of being a browser application masquerading as a desktop application, I posit that it's generally better to just write a desktop application.

Node - for node-webkit, I believe. As for the general question - why use web technologies for desktop app, I think it's like "Qt for those who don't want to use C++". Cross-platform GUI toolkit. As someone who used Qt extensively in the past I don't see a lot of value in using web technologies to develop desktop apps, unless there's a plan to use the same codebase on the real web. But it's just me.

> unless there's a plan to use the same codebase on the real web

I'm currently building a desktop application for work, and this is the reason we've got with node-webkit -- we are using the same code-base for a client side web application with slightly different uses. Being able to do so is quite a boon, to be honest, and is cutting down dev time dramatically.

Building things with js, css, html, takes much less time than writing the same thing in objective-c. Also, way easier to build cross platform.

Not sure why anyone interested in writing a cross-platform application would even think of Objective-C. You must be an OSX user.

Just as one example, Komanda could've been done with Python and any of the variety of cross-platform GUI toolkits available for that language. It would run everywhere, faster, using native widgets, and in a language designed for the desktop.

You sure?

If I am lazy and I write in Python 2.7 are you sure you can run my code on your Python 3.4 branch without using 2to3 tool?

Are you sure all the GUI library will work on every popular platform (Windows XP, Vista, 7, 8, Mac OSX 10.6+, Ubuntu 10-14, Arch, never mind all XDE, KDE, GNOME, XFCE, etc dealing with native widget???) I really don't think the development experience would be as seamlessly as you think.

Could QT be made to look as pretty? QT based apps are notoriously hard to work with on OSX, they never quite manage to fit in at all. That said I can't get this one to function at all, so it's a moot point as far as usability goes.

Replicating web-style prettified UIs seems to be one of the major goals of QML. In any case, if your alternative is an HTML/CSS/JS/Node application, I don't think replicating native look and feel is really that likely to be a sticking point.

Did you create this account purely to troll?

Python is probably the worst choice you could make for a desktop application.

If you're recommending it, you're either trolling, or you have no idea what you're talking about.

> Python is probably the worst choice you could make for a desktop application.

Please elaborate.

Python is a general purpose language, it's not specifically designed for the desktop.

Python is not faster than Node.

Perhaps not, but he didn't say that. There is more than just language at play in this scenario. Will a native widget, initiated by Python, out perform JS/CSS/Node-Webkit ... maybe.

The OP saying the app will run faster is not refuted even if NodeJS runs some things faster than Python.

I'll refute it. Python is slow as balls.

I use it daily and at my job, and it's flat out slower than node for desktop applications.

(caveat; the pypy isn't as bad, but it has a terrible start up time and no widget libraries worth talking about)

What does "cbf" mean, in this context?

Can't be fucked.

> With a ZNC bounce, a simple ircd server and 5 minutes you can avoid paying for communication and keep your company chat logs secure and on your own infrastructure.

Having watched a coworker spend a solid week getting our company's ircd setup (and this was our VP of Engineering, mind you), I've gotta call BS here. Also, until I started using irccloud[1] a few months ago, I was using ZNC, and that's no walk in the park either.

[1] https://www.irccloud.com/

> Having watched a coworker spend a solid week getting our company's ircd setup (and this was our VP of Engineering, mind you),

Was he writing custom patches for it, re-implementing SSL, custom services.

I think you wanted to tell us about how hard setting up irc could be but ended up telling us something about your VP of Engineering.

Haha, exactly.

Setting up anything for IRC - be it a bouncer, a bot, an ircd - requires just one thing:

Being able to read, comprehend and some patience.

If all that fails, you just hop on IRC and ask the devs in the projects channel....

Agree, ZNC is a crappy experience. The targeting seems wrong here -- if you wanted to pick one feature that developers need that casual IRC users don't, it's the ability to stay connected 24/7, because otherwise the chance of actually being online at the same time as someone who wants to talk about their project is low.

So I'd question the point of building a native client, given ZNC's shortcomings. What's so special about this client that you couldn't just run it as a web service using Node, rather than only making it available as a fat node-webkit client?

I can only assume your coworker had quite an elaborate setup, as most ircds (e.g., ircu, charybdis, ircd-hybrid) take an hour, tops, to configure and get running.

As a novice, it took several hours to wade through the configuration files when setting up an IRCd, and additional time to configure services daemons. I also continually run into issues with configuration decisions I made before using the daemon more actively.

While I could have relied on the defaults, I wouldn't trust my users' data with a default configuration. It would be irresponsible at best, and this is even more important to companies.

> Having watched a coworker spend a solid week getting our company's ircd setup (and this was our VP of Engineering, mind you), I've gotta call BS here.

I've gotta call BS on your story. Unless he was learning Unix from scratch, it shouldn't take more than a couple hours to setup an ircd.

It took me 1 hour to get ircd-hybrid a few weeks ago, having never done it before, I can only assume your coworker installed a lot more than I did?

Since a lot of people are saying it shouldn't have taken that long for your VP to set up an irc server (which I agree with), I'd like to argue a case I haven't seen made here. What were your specific needs? Was he setting the server up for just those needs, or what "might be needed"? Both a IRC server and ZNC do not take much to configure for basic needs.

When you start adding features you don't need but think are cool or may one day get used, setting up these things becomes a whole other thing. A IRC server with simple nick auth and chanserv I'm sure would've been enough. What else did your VP implement? A egg drop not? Some other features? There has to be more to this story then you've said.

The reason irccloud is popular is that it is simple to set up and there is a really great mobile client. No one really needs another web based client, even if it is free; there are plenty of alternatives for that such as ircanywhere[1] or Convos[2]. I'm really not sure who this is for.

[1] http://ircanywhere.com/

[2] https://github.com/Nordaaker/convos

O_o what are you talking about. This is an irc client.

Yes, it is an irc client but on the front page

>With a ZNC bounce

which implies that they want you to connect to a bouncer. In which case, those two I linked to are clients as well, just it having a bouncer built in.

I keep an IRC client (Colloquy for OSX) open everyday when I get home from work. However, it crashes a few times a day and I think it's about time to switch. Is this a suitable replacement for Colloquy? Any recommendations on a better IRC client to use, web-based or OSX, are much appreciated. Thanks!

I use Textual, well worth the $5 it costs.

Try LimeChat. The interface is good and I have used it every day with no problem.

irssi, textual, or IRCCloud (if you care about a mobile client as well) would be good. Textual over Limechat because it is a forked version of Limechat and is much improved in terms of functionality.

macirssi is popular if you want a client with a GUI.

I just use Adium.

limechat (osx) is decent.

I think this is aimed to compete with IRCcloud solution, which cost around $5/month/user. IRCcloud features private IRC server, bouncer, and gist/picture/etc viewer in its (web-based) client. This is why the front page is very confusing, as right now this Komanda (probably) is client-only.

It's worth noting that despite the "ZNC bounce" stuff on http://komanda.io/ this is actually just an IRC client.

It seems to run on all my systems because it's webkit based; it's quite pretty. Had a bit of trouble with the setup which resulted in "USER Not enough parameters"; pretty rubbish first experience using it.

I don't see any 'developer features' that make it worth bothering with over any other irc client, but I appreciate the idea that it's javascript based and I could download and customize it if I wanted to.

Cute project; yet another 'uses webkit for desktop app'. For better or worse, that seems to be flavor of the month at the moment.

1. If I wanted a customizable IRC client for developers, I'd use ERC in Emacs. Note: I still haven't figured out how to prefer it over XChat. I think that's what I'll be doing tonight.

2. Part of the justification for the client seems to be "People are charging for this, just get it for free!!!" That's terrible logic. Professionals pay for their tools if the best tool for the job is commercial.

Erc is quite good. I've never bothered installing irssi or weechat for my sporadic visits to OS freenode channels.

Perhaps some IRC users can pop up and illustrate us a bit about their client of choice.

Nice POC, but if a "developer" can't handle irssi.. then I have bad news for him.

If a "developer" can't handle punch cards and paper tape, then I have bad news for him.

I assume the the people choosing the methods of communication for startups are capable of learning to use irssi or weechat, but both of those clients take quite a bit time to learn and require significant amounts of customization to make them truly comfortable. It isn't a good business decision to require your teams to learn to use these tools.

Is IRC an acceptable medium for a company? Maybe it can be. Is it wise? Not with tools like irssi.

A big part of the appeal for IRC to me is the not so low barrier to entry with tools like irrsi

Which is wonderful if you're an old hat who enjoys having new people get frustrated and leave before they have a chance to contribute to the ecosystem.

yes precisely and people who use tech buzzwords like ecosystem

This project seems abandoned judging by the contribution history. https://github.com/mephux/komanda/graphs/contributors

So "people who write code" now equals "web developers". Sad ...

Can this be run as a web app rather than with nodewebkit somehow? I'm not familiar enough with node/npm to figure it out.

Very handsome! Looking forward to using this as my default client.

Applications are open for YC Winter 2020

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact