08-15-2012
Open-source projects to learn concurrency-managed network programming in Unix?
Hi,
I am a mid-career programmer with extensive experience in object-oriented design and development in C, C++, and C#. I've written a number of multi-threaded server applications and background services, although my grasp of networking protocols is a bit weak: my current job drifted away from the promise of true infrastructure work and into application development. That, along with the C#/.NET technology stack, has made me a bit dull.
I am ready for a change.
I am about 1/3 the way through APUE and am hooked. Unix really appeals to me. I plan to continue on to the Steven's network programming volumes. I am of course coding up my own exercises as I go through the material.
My ideal job would be something along the lines of a recent (admittedly vague) job posting that describes woking on "a highly flexible/scalable framework to provide services to various end user applications," requiring "proficiency in building network protocol frameworks and thorough knowledge of inter-process communication, multithreading and thread synchronization."
Ideally I would find an employer who can leverage my Windows experience while also giving me exposure to this kind of work in Unix. But most employers these days don't want to have to make that kind of investment in their employees.
So I am considering finding an open source project where I could both make a contribution and acquire these skills. The ideal project would be in C or C++: several traumatic experiences with memory leaks in C# and the CLR have given me a strong yearning for reclaiming control of allocation.
There are a number of good open-source projects out there, but many of them are either done (e.g., OpenLDAP) or being done in Java (e.g., HDFS). Can anyone recommend any active open-source projects for this purpose?
Or do you have any other ideas about making this kind of career transition?
Many thanks for your help!
4 More Discussions You Might Find Interesting
1. Programming
I want to learn Network Programming with C,but I don't know how to start.
Thank you. (2 Replies)
Discussion started by: hubin330
2 Replies
2. UNIX for Dummies Questions & Answers
How does unix system administration, unix programming, unix network programming differ?
Please help. (0 Replies)
Discussion started by: thulasidharan2k
0 Replies
3. Shell Programming and Scripting
Guys,
What do you think is the best way to learn UNIX and shell scripting?
** I keep on searching tutorials online, where I loose most of my time :(
Let me know the way you learnt the UNIX concepts, your replies might help me learn more.
Thanks a ton:b: (2 Replies)
Discussion started by: dnam9917
2 Replies
4. UNIX for Beginners Questions & Answers
Hi ,
wanna learn native GUI programming in Unix-Linux instead of Gtk and Qt.
No problem. You don't need a cross platform Gui toolkit like Gtk and Qt.
And the code and syntax is also not more or less than others.
Check out this code for a simple mainwindow for your application that is openend in... (0 Replies)
Discussion started by: Sennenmut
0 Replies
LEARN ABOUT DEBIAN
globus_gram_protocol_job_state
GRAM Job States(3) globus gram protocol GRAM Job States(3)
NAME
GRAM Job States -
Enumerations
enum globus_gram_protocol_job_state_t { GLOBUS_GRAM_PROTOCOL_JOB_STATE_PENDING = 1, GLOBUS_GRAM_PROTOCOL_JOB_STATE_ACTIVE = 2,
GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED = 4, GLOBUS_GRAM_PROTOCOL_JOB_STATE_DONE = 8, GLOBUS_GRAM_PROTOCOL_JOB_STATE_SUSPENDED = 16,
GLOBUS_GRAM_PROTOCOL_JOB_STATE_UNSUBMITTED = 32, GLOBUS_GRAM_PROTOCOL_JOB_STATE_STAGE_IN = 64, GLOBUS_GRAM_PROTOCOL_JOB_STATE_STAGE_OUT
= 128, GLOBUS_GRAM_PROTOCOL_JOB_STATE_ALL = 0xFFFFF }
Detailed Description
The globus_gram_protocol_job_state_t contains information about the current state of the job as known by the job manager.
Job state changes are sent by the Job Manager to all registered clients. A client may ask for information from the job manager via the
status request.
Enumeration Type Documentation
enum globus_gram_protocol_job_state_t
GRAM Job States.
Enumerator:
GLOBUS_GRAM_PROTOCOL_JOB_STATE_PENDING
The job is waiting for resources to become available to run.
GLOBUS_GRAM_PROTOCOL_JOB_STATE_ACTIVE
The job has received resources and the application is executing.
GLOBUS_GRAM_PROTOCOL_JOB_STATE_FAILED
The job terminated before completion because an error, user-triggered cancel, or system-triggered cancel.
GLOBUS_GRAM_PROTOCOL_JOB_STATE_DONE
The job completed successfully.
GLOBUS_GRAM_PROTOCOL_JOB_STATE_SUSPENDED
The job has been suspended. Resources which were allocated for this job may have been released due to some scheduler-specific
reason.
GLOBUS_GRAM_PROTOCOL_JOB_STATE_UNSUBMITTED
The job has not been submitted to the scheduler yet, pending the reception of the GLOBUS_GRAM_PROTOCOL_JOB_SIGNAL_COMMIT_REQUEST
signal from a client.
GLOBUS_GRAM_PROTOCOL_JOB_STATE_STAGE_IN
The job manager is staging in files to run the job.
GLOBUS_GRAM_PROTOCOL_JOB_STATE_STAGE_OUT
The job manager is staging out files generated by the job.
GLOBUS_GRAM_PROTOCOL_JOB_STATE_ALL
A mask of all job states.
Author
Generated automatically by Doxygen for globus gram protocol from the source code.
Version 11.3 Mon Apr 30 2012 GRAM Job States(3)