Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
The situation:
I want to play around with IRC bots as general communications interfaces to other code I am investigating. The server hardware would be old and low-memory, but running on a relatively up-to-date Debian GNU/Linux install. I don't expect more than a hundred users at a time, tops, and probably in the single-digits most of the time. The interfaces are more of interest here than the server itself, so I'd prefer something relatively simple to maintain over something with a huge number of configuration and tuning options more useful to a larger site.
Referencing the Wikipedia comparison and the Google PageRank list against the available package list for Debian comes up with the following top contenders: Undernet (ircd-ircu), Ratbox (ircd-ratbox), and Inspire (inspircd). Unfortunately, I can't find any serious comparisons of them, so I'm hoping that asking here will provide a faster solution than just trying them one at a time until something frustrates me enough to move.
Unreal IRCd is full featured if a little complex on the setup.
During the past couple days I have been coding a bot with Python and IRCLib. Since I am coding the communication interface I needed to see the raw data transfered between the server and the client. So, I needed an IRC server which would support that. At first I was using IRCD, and it was totally fine. But after a while I realized that I was missing some features that IRCD did not have since it's outdated. So, after further research I found ngIRCd.
I compiled it from source with those options "--enable-sniffer --enable-debug". Now when I want to see the information sent between my bot and my client I only need to start the server with the -n and -s option. Like that : ngircd -n -s
Here is the website of the server : http://ngircd.barton.de/
Unreal IRCd is what I finally picked for hosting an IRCD. Why? Halfop, admin/protect, founder/owner, advanced operator acl, vHost via i:line and etc...
Also see
http://en.wikipedia.org/wiki/Comparison_of_IRC_daemons
http://www.howtoforge.com/linux_irc_server_anope_services
Use XMPP instead. IRC is not very well designed for your situation; it can be made to work, but it is a big pain.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I am looking for a tool to keep track of my servers, we use chef-solo everywhere but its hard to keep track. Any simple tool to keep track of servers like Spacewalk, but then simplified?
I use spacewalk for some servers I admin, but its a bit too bloated for what I want now. But how it does work great. We kickstart servers using chef-solo then register it with a static key with spacewalk. So we have a nice overview of all the servers and servers that didnt callback after X time.
We really like the concept of chef-solo and does not want chef-server for many reasons. But what is missing in our infrastructure is a simple tool, a simple web interface to keep track of the servers.
Thank you.
You discard the obvious answer to your question... chef-server :-)
I used to advocate chef-solo, but there have been some recent improvements in both tools and processes surrounding chef server. I now firmly believe you're not using chef properly if you omit the server.
In brief:
Chef 11 has made massive improvements in setting up your own chef server. You can even use chef-solo to bootstrap your chef infrastructure using the chef-server cookbook.
Bootstrapping nodes against chef server provides the tracking features you're missing. For example you can write handlers that can store pretty much anything about your nodes at runtime. This data is indexed by chef server and available via its REST API.
Some great new tools are available for managing cookbooks. Berkshelf will manage the download and upload of cookbooks and spiceweasel will generate all those nasty knife commands.
chef zero is being positioned as a better chef solo. I personally think it serves a different use-case, but an interesting tool especially for testing your chef recipes that require searching.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 9 years ago.
Improve this question
i want to know is there any way of migrating a application ( say Firefox) from one system to other system ?
if so please let me know ...
example : suppose i have two systems say A ,B . and Firefox is running in A, now i want to transfer that running application (Firefox) to B as it is
im thinking like, we can migrate the our process stable of the application, why people dnt think in that way, and they simple down marking the question if they dont know the answer? its not the way that we should respond to problem that has been asked in our stack community ... any how people who are good at operating system pleas do think in way that is it possible to transfer our process state to other machine so we can get the same image there at other system .. if so please let me know. thanks in advance..
What you want is called process migration, and is not easily possible on Linux in general.
However, if you design your application carefully and use some application checkpointing mechanism, it might be possible (in some very limited way). Perhaps using Berkeley Lab Checkpoint Restart library could help.
Don't expect to migrate processes of applications as complex as Firefox.
Read also about continuation passing style & virtual machines. It is relevant. Reading Queinnec's Lisp in Small Pieces & the famous SICP should also help a lot. See also Continuation-Passing C.
And in practice, you might be able to get process migration for some of your own applications (using few external libraries, or using them "atomically" between checkpoints) if you design your application from the start with process migration in mind.
PS. Feel free to ask me more e.g. by email, by citing this question, explaining the actual application you want to migrate and what you have read and tried. This subject is surprisingly interesting and difficult (you probably could make a PhD on it).
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
i am a senior developer and I'm trying to advance my knowledge of security to a deeper level. That is to say that i know what these hackers can do/what the risks are, but I'd like to know how they do it in general. On that note, if anyone can enlighten me on the following items, i would be most grateful:
Packet sniffing: I know that packets can be sniffed out and analyzed, but how do they do it? my understanding was that in order to do this, there would need to be actual software running on the server itself since it needs access to the network card to do so... is that accurate? If not, how can they remotely capture incoming packets to a server without access to that box directly?
Session Hijacking: Once again, i am confused here. I know they can do it, but how? The session ID is issues by the server itself, and then returned to the browser based on what? the caller's ip address? mac address? what is used by these hackers to capture the session id from a web session? is it software on a pc that is infected?
Site Hijacking: again, i know they can do this, but from my current knowledge, this would mean that they would have to have hijacked/infected a DNS publishing server and redirecting queries for that site to their choice of IP address... again: is that accurate?
Hijacking a server: how is this possible? how can an open port, for example, allow any hacker to gain full fledged access yo a box so that they can infect it or install some piece of software that would enable 1, 2 and 3 above? My current understanding is that ports are used to communicate, but that unless some software/service is monitoring that port and waiting for commands, nothing would come of that port being open... is that accurate? and if so, why is so much importance given to ports being closed and such?
Hijacking some super secure site: i work every day with security in mind, and constantly use things like: SSL, RSA, SHA512, SSL TOKENS, IP restriction, etc... my question is: how in the crapper are they STILL able to get in with all of these things enabled?
i know that's a lot of stuff, but i really am curious and want to take my security knowledge to the next level. If you're a developer with the same mindset as me, you have issues just using some pre-built library or control without knowing what it does in the background in details, and you'll understand why I'm not happy just knowing which protocols, libraries or encryption methods to implement.
Know the enemy, right?
First of all, I love hacking (only for good), and I think the more people are educated about it the safer we all will be, so I applaud you for your curiosity.
These are great questions, but a good answer would literally require an entire book or two. I have read all of these books in my studies and I personally recommend them. I recommend the following to get you started:
This will get you started with basic tools and techniques. This book doesn't go very deep so if you're looking for the meat, skip it and read the other three unless you are very new to security: The Basics of Hacking and Penetration Testing: Ethical Hacking and Penetration Testing Made Easy, Patrick Engebretson (Full disclosure, the author was a professor of mine at DSU. The book rocks though)
For a relatively deep introduction to security, including an excellent background in OSes and networking:Counter Hack Reloaded: A Step-by-Step Guide to Computer Attacks and Effective Defenses (2nd Edition), Edward Skoudis (probably my favorite book of all time)
To dive very deep (Assembly language level) into how the attacks work:Hacking, The Art of Exploitation, Jon Erickson
To dive deeply into the Web app side of things:The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws, Dafydd Stuttard, Marcus Pinto (Full disclosure, the technical editor was a professor of mine at DSU)
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking us to recommend or find a tool, library or favorite off-site resource are off-topic for Stack Overflow as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it.
Closed 9 years ago.
Improve this question
I'm currently trying to set up automated deployment for our node.js based system. I've been doing quite a bit of research, but nothing really has jumped out as the obvious choice of tool to automate what I'm trying to do, which can be summarised as:
Pull code from central Mercurial repo into build-server build directory.
Concat/Minify relevant client side JS
For each server :
SSH into box
copy relevant files over SSH (SCP or whatever) (different code for different server roles)
restart relevant processes.
I'm probably going to use Jenkins for the high-level management of this, but am undecided on the tool to use to actually script the work.
It doesn't have to be a JS based build script, but that's an option (although I'm not entirely convinced that JS is the right language for this stuff anyway). Would be ok with Python or Bash style solutions.
What's a sane/robust choice capable of the tasks listed above?
Thank you!
UPDATE: Sorry, I didn't mention before, but ideally I'd like to have the build tasks run on a central Build/Deployment server, and not locally on the development machines.
Nowadays I am using Capistrano for all my deployment needs. Be it PHP, Ruby or Node.
There are recipes for almost all situations, but with experience, it is easy to build your own. You can hook your own commands to certain events in deployment process.
Capistrano uses SSH to access production or staging servers and issue commands remotely.
Here are some recipes for node.js (but I have not tried them):
https://github.com/loopj/capistrano-node-deploy
In case it is of any value to users in the future, I ended up going with Fabric.
If you insist on using your own servers to host the app, you can always use grunt.js for the automation. You can write custom tasks for it and do whatever you want, or find some for the mentioned cases in the community. I believe minification and such already exist.
As a personal recommendation, though, I can say I've been happy with hosting my node apps on NodeJitsu (paid service). They provide a command-line utility installed through npm, which can copy your code to their cloud, do a snapshot and start the app automatically. This is the easiest deployment scenario I've ever done.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
I'm looking for a web host that will let me run a Haskell web application. VPS's seem attractive to me because you can run essentially anything you want. But some of the cloud hosts offer really nice scalability in terms of hard disk space and bandwidth.
Does anyone know of a host that will let me run exotic languages like Haskell but can also seamlessly scale up the hard disk space/RAM/bandwidth/CPU available to my host?
If you just want very simple hosting with CGI, NearlyFreeSpeech.net supports Haskell and some other less common languages. I personally also like their overall nonsense-free approach and sensible pricing model (pre-pay metered charges, instead of the usual model of a fixed monthly charge, oversold server capacity, and absurd overage fees).
There are a few caveats however, mainly that they don't permit standalone servers or persistent daemons, only things invoked via CGI from Apache. This might be a problem for some Haskell web app frameworks.
Maybe this is obvious, but you can always use Amazon EC2. You'll have full control, and definitely meets your requirement for seamlessly scaling up.
This may be a very late answer but I found that hosting on Heroku with its Cedar stack is the easiest. Yesod has a very clear explanation.
Apparently, it's possible to get ghc running on Webfaction. There are also threads about it in the Webfaction support forums, and the admins/techs are quite willing to make an effort to make it work, though it's clearly not something that is supposed to be available out of the box.
EDIT, 2011-08-23: Fixed link.
In theory all you need is CGI/FastCGI support. I've had some luck playing around with Happstack on a very basic Dreamhost account by following these instructions:
While non-trivial to get running, this
web experiment proves that it is at
the very least possible to run
Happstack applications on cheap
hosting providers such as Dreamhost
with little more than a shell account
and CGI support.
I've only tried this with toy applications, and don't know how it would scale.
Looks like you can also run Haskell in Azure Functions.
If you are using IHP (Integrated Haskell Platform), you can use their free cloud hosting service at https://ihpcloud.com/.