As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I want to build a IRC client in Javascript, maybe using jQuery, but I am struggling a little in getting started.
I have looked a little at http://qwebirc.org/ and how they are doing things, but they have A LOT of code doing specific things only to their project.
I have searched the net for a short example, that lets me start, so I could build further. Any suggestions on where to look, or someone who can come up with an example?
The backend is a more important consideration than whether or not you use jQuery or anything like that. As you may be aware, you can't really write a full browser-based IRC client in Javascript; the JS merely uses XMLHTTPRequest to collect data from an IRC-connected server-side socket implemented in something like PHP.
To that effect, you might have a lot more luck looking for some kind of PHP IRC library (like this: http://sourceforge.net/projects/phpsmartirc/) and then setting up the client frontend separately which will alleviate, to some extent, the "LOT of code doing specific things only to their project".
Here's an open source project that has made some progress to making a AJAX IRC client:
https://github.com/naneau/node-irc-client
Elliott, the backend no is more important consideration than interface frontend, but your sugestion is a good ideia for a expert programmer begin a Ajax IRC Client!
PHP Smart IRC is a package PEAR that aims to implement IRC Protocol communication via PHP sockets.
The advantage is that the implementation of commands is ready, there is no need to start this class from the begin.
Any attempt will merely be using AJAX as an intermediate step between an IRC client/server running on the hosting web server.
Using jquery.ui.chatbox as the interface with messages being sent and received via AJAX would give you the flexibility to implement it in any number of ways e.g.:
IRC
XMPP
PHP/MySQL
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I've read some interesting articles and comparisons on JavaScript MV* frameworks and I do know outline of architecture of most popular ones (Ember, Backbone, Angular) However as a PHP programmer (and Symfony 2 lover) who wants to learn one of those in detail, I am concerned if Meteor (my first choice) is flexible enough to be considered a full stack framework so I can abandon server side (eg. PHP) entirely on most basic apps. Until today I thought that PHP + Angular give more possibilites (although it's more time consuming to maintain both server and client side), however I'd like your opinion on that. From what I've seen in meteor's screencast, it seems pretty awesome.
As many people have mentioned, server-side JS would replace the function of PHP completely. But Meteor is much more than that; it allows you to replace your imperative code with declarative code. Meteor takes care of synchronizing the data and you just decide how to render it. No more passing around messages through AJAX. As one article put it, Meteor has made MVC obsolete.
In my experience with meteor, I'm developing a project and reading the book. What I've been able to do with Meteor in a short time has completely blown my mind. Combined with some excellent frontend frameworks such as bootstrap, I don't really have to do any CSS work either (if I don't want to), and that means I can develop without worrying about styling or AJAX, essentially freeing up my time to create awesome applications with very little legwork.
Besides, as they say, it only takes a weekend to try Meteor out. It's not complicated at all if you have JS experience. However, as it took me a bit to understand, it's not necessary to think with MVC anymore. It only took me a couple of days to build my first meteor app so I suggest you try it out!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I've just finished a little application using node.js and socket.io. I would like to put it on the Web and I don't know which server to take. I am searching for a free one. I've already found appfog, nodester and pusher but I do not know if we can use them with socket.io and the use seems complicated.
If you know a simple or well-documented one it would be cool.
If you are new to Amazon Web services, you can get a micro.t1 ECS instance free for a year.
More details here. I am hosting a node.js/socket.io app on one myself currently atop Ubuntu.
You're going to need a host that either gives you system-level access to build/deploy software, or you'll need a host that provides a compatible environment for you.
I personally have used Slicehost for years, but am switching to Linode soon. I prefer having complete control over my installations.
You could look at running an EC2 instance from Amazon, http://aws.amazon.com/ec2/. Lots of instance sizes to pick from, tons of pre-configured AMI's to pick from. Or just pick a basic one and setup whatever server you need.
Some other solutions are like Heroku and nodester. Socket.io works fine with all of these.
In general, you pay less for servers you configure yourself and you have more flexibility with what you can do. If you're less interested in that, then spend more money and try finding someone else's platform that does what you need.
You could try signing up for a Windows azure account.
They have nodejs support and you get up to 10 free websites (limited in some way by resources)
This should sort you out till you are ready to pay (hopefully when you have more traffic).
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am working on building a webapp. I have been learning Python on my own for a few months but I need help figuring out HOW to proceed with building the app, specifically which web framework/database to use.
As I'm fairly new to this, I may not be using the correct terms, and
I'm sure many of these things may be obvious, but this is a basic list
of what I need the framework to be able to do:
I need to have a database, I'm not sure how large, the data is coming from an API that API returns JSON which I parse in python using Simple JSON, so I think it's just string dictionaries. For the API data I'd prefer to have one large database with with every key/value from the dictionary being a column/value in the database, as this seems like it would be the easiest to query - please let me know if this is an incorrect assumption.
In the front end of the webapp, which I've been told will need to
be written in Javascript, users will query the datastore using various
different parameters (e.g.show me the last 10 posts from blogs
X,Y, and Z, show me topics that were posted to by blog A and blog B.)
The framework should track user activity and save the data to use
it for future recommendations. Multiple users will be making queries at the
same time, and the framework should be saving their activity while
returning the data they requested.
The webapp should be scalable, so it can handle the requests in the
event that the app gets a surge in traffic/users etc. for any reason. This is currently a small project but in the case that more people want to use it I'd like to have that be an option without having to re-program it from scratch.
Lastly, as I'm fairly new to programming, all things equal, or
nearly equal I would much prefer a framework that is easy to use.
Go with Django all the way https://www.djangoproject.com/
There are many, many, many ways to do what you seem to want to do.
I've been working on a home project that uses tornado.web (easy REST api), mongodb (storage, works espectially well with JSON documents), and nginx (load balancing for surges in requests).
For the front-end, I'm using nginx to serve static web content... which is comprised of a Backbone.js application for various CRUD operations.
But that's just how I did it.
I suggest Google App Engine. It is free to start, very easy to use with lots of sample code. It is PAAS and see this short management introduction: http://www.youtube.com/watch?v=ckVyxODiTIo
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm wanting to create a web app where people can collaborate with a specified image.
For example, if you take a look at this basketball app
https://market.android.com/details?id=com.canica.apps.basket&hl=en
I'm envisioning something similar where people can log in, draw plays etc,
I want updates to happen in real time, so that other people logged in as a team see what others are 'drawing'.
I was thinking of extending a html canvas drawing app and adding network communication, but I'm not sure where to start looking.
My question is - What technologies should I be looking at for pushing the data out to the users?
Does anyone have suggestions?
You've almost answered your own question, especially with your use of HTML5 and JavaScript tag.
You should take a look at WebSockets (what, what and why).
WebSockets allow for bi-directional communication between any client and server. Originally only available in web browsers via JavaScript but there are now a number of WebSocket client libraries available which mean that whilst you can develop with browsers in mind there's no reason why you client can't be any device.
A quick search came up with this example. There is also this iPad/iPhone application.
There also appears to be a video tutorial that uses node.js and socket.io here:
http://wesbos.com/html5-canvas-websockets-nodejs/
If you don't want to worry about installing and maintaining your own realtime infrastructure that also deals with fallback techniques for older web browsers then you might consider using a hosted realtime web service.
XMPP might be something to look into. A great book about interacting with XMPP servers from the browser is Professional XMPP Programming With JavaScript and jQuery.
It's a pretty soft introduction and I think there might even be a chapter in there that covers implementing something similar.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I've done some research into server push with javascript and have found the general consensus to be that what I'm looking for lies in the "Comet" design pattern. Are there any good implementations of this pattern built on top of jQuery? If not, are there any good implementations of this pattern at all? And regardless of the answer to those questions, is there any documentation on this pattern from an implementation stand-point?
I wrote the plugin mentioned by Till. The plugin is an implementation of the Bayeux protocol and currently supports long-polling (local server via AJAX) and callback-polling (remote server via XSS). There is a Bayeux implementation for Python called cometd-twisted that I have heard my plugin works with, but I have not verified this. I have tested and verified it works with cometd-jetty and erlycomet which has a jQuery Comet example included. There is more info on my blog and the current code with a basic chat example can be found on its google code page. Hope this info is helpful and feel free to contact me if need any further help with the plugin.
Someone built a client for Comet using jQuery. I don't know if it's any good though. I've read about Comet and heard about all the good it can do, but I have never gotten around to using it. Just had no time and no use case on any of my current projects.
I totally forgot to add a link as for implementing comet.
There is Comet Daily and they have a comparison online. The comparison emphasizes on maturity of the different implementation. It's pretty interesting and should get you started.
Hope that helps!
Check out the Ape Project for a complete client and server side solution that implements the comet pattern.
A description of the pattern: http://ajaxpatterns.org/HTTP_Streaming
Comet is a great solution, and there are all kinds of implementations. Which one depends on your needs.
We've implemented a solution for IIS/ASP.NET, WebSync. It includes the javascript client, which plays nicely with jQuery. Technically, since it's the Bayeux protocol, any Bayeux client should work just dandy. The same protocol can also be found in the dojo library.
For more detail, you can see the spec for the Bayeux protocol.
I have a very simple example here that can get you started with comet. It covers compiling Nginx with the NHPM module and includes code for simple publisher/subscriber roles in jQuery, PHP, and Bash.
http://blog.jamieisaacs.com/2010/08/27/comet-with-nginx-and-jquery/
A working example (simple chat) can be found here:
http://cheetah.jamieisaacs.com/
Look at socket.io. Trust me. This is exactly what the doctor ordered.
http://socket.io
Stream data with Node.js
If you're using JQuery, I'd recommend jquery-stream. I'm currently using jquery-stream on a project and so far its been reliable, well-documented and has an active Google code project.
http://code.google.com/p/jquery-stream/