Defacto tutorial for C/Unix sockets? - sockets

Is there a defacto tutorial or book on using sockets (not domain sockets)? More specifically I want to learn more about client <=> server programming.

H2CO3 mentions Beej's Guide which is a good free introduction. That's as close to a defacto tutorial as you are likely to find agreement on.
If you want more than an intro tutorial then there are the Richard Stevens books, particular Network Programming Vol 1 and Unix Network Programming. Some people think they are getting a little outdated but even with the lack of updates they are so much more comprehensive that most anything else out there I don't see it as a real drawback.

Related

Preparing for a Scientific Programmer/HPC programmer Interview

Could you recommend sources/literature to prepare for Scientific Programmer/HPC programmer Interview?
Thanks!
"Introduction to High-Performance Scientific Computing" by Victor Eijkhout is a very good book to start with (and is relatively up to date). You can find it freely on his personal home page.
As this book mainly focus especially on quite theoretical/abstract concepts, you probably need to complete the book with practical HPC programming. MPI and OpenMP are two programming standard massively used in HPC applications. As a result, I strongly advise you to learn how to program with both, especially from practical exercises.
There is a lot of resource you can find on internet for both. If you don't now how to start, please look here for MPI and here for OpenMP.

Polling vs Long-polling vs Push (books and scientific papers)

I'm writing master's thesis and I've already wrote much about Ajax vs Comet vs WebSocket comparison based on the information I've found on the internet.
But I need some scientific research to put into reference list.
I'm writing a paper on WebSocket at the moment (would love to see your work), and I've found +30 pages on the subject in "Pro HTML5 Programming" by Peter Lubbers, Brian Albers and Frank Salim.
EDIT: Actually, there's a better, or at least much more comprehensive, book about WebSocket called "The Definitive Guide to HTML5 WebSocket" by Vanessa Wang, Frank Salim and Peter Moskovits, published by the same guys who published Pro HTML5 Programming.

From where do I learn Interface Prototyping?

I am interested in prototyping and developing gadgets and devices using arduino board and other stuffs, however I only get tutorials on arduino but not in interface prototyping. I found a book but it is in other language not in English
(link is :http://prototypinginterfaces.com/)
I also don't know the exact term to look for in Google, for tutorials. That might be the reason why I'm not getting the suitable results. Basically what I want to learn is the same as the book says.
I have no idea from where do I start, and what to look for at first. If anybody can help me, please.
from the software perspective, I'd recommend getting into Processing. It's the programming language Arduino is derived from, and with both of them, in tandem, you can code and build interactive prototypes. O'Reilly has some excelent books and video lessons to tackle those:
Learning Processing (book and website)
Getting started with Processing
Arduino and Processing in tandem, video series
With these two references, most of what the link you provided says, is covered.
From the hardware perspective, you might also enjoy the following:
Making things Move
Making thins Talk
Arduino Cookbook
Sorry for the extreme focus on one editorial house, however, they rock!. Best luck.

Good tutorials on XMPP? [closed]

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 8 years ago.
Improve this question
I've been looking at some open-source XMPP servers, and am familiar with the official page http://xmpp.org/. But thus far I've not found anything in between "The Extensible Messaging and Presence Protocol (XMPP) is an open technology for real-time communication" and a list of XEP specifications. For instance articles explaining the basics and terminology - stanzas, IQ, presence, etc, etc. Even the Wikipedia page misses this, unsurprisingly the open-source projects assume you know these things before you start digging into the code.
Is there a good, (semi-)official set of tutorials on this? Do I need to be looking for Jabber resources rather than XMPP?
Amongst other things, I'd hope to see diagrams for use-cases and flow, not just dry protocol text. I know books on XMPP exist, but generally anything in a book is available in some form online too.
This is probably way too basic, but at least it's technical: https://web.archive.org/web/20170916193014/http://www.adarshr.com/fun-with-xmpp-and-google-talk and the second part, https://web.archive.org/web/20171005104211/http://www.adarshr.com:80/fun-with-xmpp-and-google-talk-part-2
It explains what stanzas are, what types are available and stuff.
Here is what got me startet on XMPP Development:
A good book: XMPP The Definivie Guide
A mature Java API. I've chosen the Smack Library from Ignite Realtime and used the groovy language with a buch of small scripts to learn the basics.
Later i developed a plugin for the OpenFire XMPP Server. There are some tutorials and a forum on their site as well. I think that both the smack and the openfire api's are easy to learn.
If you are not into java: The book referes to the SkeekXMPP Python library and it uses it to create some examples (echo bot, ...).
As others have said, the specifications are a good introduction. It's true that they are technical in nature, and worded to be precise - but they are really some of the best specifications I've seen for any protocol, especially the latest RFCs (6120 and 6121) which clarify some of the grey areas in the originals.
E.g. you mention wanting to know the definition of a stanza, it's explained (with examples) in 6120 section 8.
If you have any feedback on how the specifications can be made clearer, then say so on the XMPP mailing list, where all feedback is considered for the next drafts of the specifications.
If the specifications are really too much for you (I appreciate some people like more pictures than I do), do consider the book (whether in paper or digital form) - it's designed exactly as an easy introduction to both the core specifications and the most common extensions, and written by people who help develop and implement them.
The RFCs (listed on the Wikipedia page) should be a quite good introduction to this topic.
For example: RFC3920: Extensible Messaging and Presence Protocol (XMPP): Core
This might be an old question, but I just wanted to keep the process I used in order to learn XMPP.
A few years ago, a few friends of mine and I were learning about how to leverage XMPP, and understanding how it fits into larger piece is quite a tedious task. I highly recommend starting off by reading the wikipedia page of XMPP:
http://en.wikipedia.org/wiki/XMPP
You'll be surprised how many people aren't able to answer questions about XMPP which are the most fundamental.
I also highly recommend reading this article:
http://www.infoworld.com/article/2682116/application-development/xmpp-rises-to-face-simple-standard.html
It'll give you a sense of the motivation behind XMPP, it's history, and it's protocols that used to be on par with it.
From there, it'll be best to read the sources of the wikipedia page to give a more indept understanding of any features you might be interested in with XMPP.
Use the xmpp asmack library from
http://beem-project.com/projects/beem/files
download asmack-android-7-beem-jingle.jar
and documentation of
http://www.igniterealtime.org/downloads/index.jsp
Hope it helps others like it helped me
Install openfire on server side and use qsmack on android side.

Text book / online resource for learning to program at system/kernel level

Is there any book/resource that one can refer to, to be able to write programs at kernel/system level.. I'm looking for a programming book that could serve as a guide to write kernel codes / system level programming etc..
I have Tannenbaum's Design and Implementation. It addresses theoretical aspects well .But a book that teaches programming in such topics would be helpful. I want to be capable of implementing thread library, scheduler et al ..
thanks
I would like to suggest both the books by Robert Love. I've read a bit of the first one and its excellent. The latter was recommended by a friend.
Linux Kernel Development
Linux System Programming: Talking Directly to the Kernel and C Library
There is one good website by the Technical editor of Book Linux Kernel Development,
Robert P J Day (he is different from Robert Love)
and the website is
http://crashcourse.ca/introduction-linux-kernel-programming/introduction-linux-kernel-programming
Once you are done with above link I would suggest to go through
http://www.freesoftwaremagazine.com/articles/drivers_linux
and then there is a Kernel Newbies mailing list.You should subscribe to it.
Try the nice "Understanding the Linux Kernel" by O'Reilly. While Linux-specific sometimes, the basic concepts are the same everywhere.