I learned a lot from a project in school when I made something similar
to what I described. I collected data from a set of wireless sensor
nodes and wrote it to a port on my web host. The data looks like this
"1, 2113". The first byte tells me whether the door to the room is
open or closed, and the last four bytes tell me the room number. On
the web host machine, I set up a simple multi-threaded server socket
listener to collect the data, check that it is the right format, and
write it to a SQL database. This taught me about Unix sockets and
pthreads. I wanted other people to be able to administer my web host,
so this taught me about Unix permissions.

Since I was storing information in a SQL database, I had to create the
tables in the database and learn how to connect and write to it
programmatically. This taught me about SQL. I used the information
about whether a door was open or closed to dynamically update a
listing on a website that I wrote with Django. Installing Apache with
Django taught me some more about Unix permissions and Unix system
administration. And of course I learned a lot about web programming
with Django.

There are lots of other projects that you can take on as well. Another
school project that taught me a lot about Unix system programming was
a benchmarking project. We benchmarked pretty much every piece of the
operating system with C (found the size of the processor caches
programmatically, tested raw disk reading and writing speed, file
cache size, network transfer speed, thread and process overhead, and
etc. ). Basically we replicated the Imbench suite. You can find the
project description here:
http://cseweb.ucsd.edu/classes/wi09/cse221/project.html/. I pretty
much learned about every Unix system call there is from this project.

If you use your imagination, you can think of many more.

I recommend taking on a project if you want to really learn something
to use in the future. At the end, you will have a nice piece of work
that you can show to other people. Reading a book is the easy way out,
and you are probably just going to forget it all quickly if you don't
have a chance to use it. If you already know some stuff and want to
become an expert, then books are a good way to go. But you have to use
it to truly know it.


On Mon, May 3, 2010 at 1:37 AM, Luke Pebody <[email protected]> wrote:
> To be honest, I'd go with the book option. But different people have
> different learning styles.
>
> On Mon, May 3, 2010 at 8:23 AM, Jacob Lyles <[email protected]> wrote:
>> For the basics, don't learn from a book. Install an apache server
>> running a Django site on a fresh Unix install and share administration
>> privileges with a friend. Then put a shared git repository on the
>> machine that you and your friend can access through ssh. Then use that
>> repository for version control on a simple server you write in c or
>> python that listens to a socket and then collects any data written to
>> that port and writes it to a database. Make your server multi-threaded
>> and asynchronous. Then test your server with a script to simulate
>> client activity.
>>
>>
>> On Sun, May 2, 2010 at 9:47 PM, viswanath emani
>> <[email protected]> wrote:
>>> Unix by Sumithaba Das is also a very good book for beginners.
>>>
>>> Regards,
>>> Viswanath.
>>>
>>> On Mon, May 3, 2010 at 9:24 AM, Amit Agarwal <[email protected]> wrote:
>>>>
>>>> yeah, navathe is pretty good for Database ans SQL.
>>>> For UNIX, you can check "The Design of the Unix Operating System" by
>>>> Maurice J. Bach. Its the best book I have ever read on Operating systems
>>>> specially Unix.
>>>>
>>>>
>>>> -Regards
>>>> Amit Agarwal
>>>> Contact: 09765348182
>>>> www.amitagrwal.com
>>>>
>>>>
>>>>
>>>> On Mon, May 3, 2010 at 8:56 AM, Bharath Raghavendran
>>>> <[email protected]> wrote:
>>>>>
>>>>> your topic is "off-topic" .. which means if you are off-topic, you are
>>>>> on-topic which implies you are not off-topic and based on the topic, you 
>>>>> are
>>>>> off-topic. omg paradox .. *faints*
>>>>>
>>>>> On 3 May 2010 02:14, Moh Ghooo <[email protected]> wrote:
>>>>>>
>>>>>> When I studied SQL
>>>>>> I was using
>>>>>> Fundamentals of Database Systems, by Elmasry and Navathe
>>>>>>
>>>>>> but i dont know about unix :D
>>>>>>
>>>>>> Regards
>>>>>> Mohamed Sayed Ghoneim
>>>>>> 016-86-56-215
>>>>>>
>>>>>>
>>>>>> ---------- Forwarded message ----------
>>>>>> From: Jaspreet Kaur <[email protected]>
>>>>>> Date: Sun, May 2, 2010 at 11:31 PM
>>>>>> Subject: [gcj] off topic.
>>>>>> To: google-code <[email protected]>
>>>>>>
>>>>>>
>>>>>> Hi all,↲I know this is off topic but can someone please suggest ny
>>>>>> good books for learning sql and unix?
>>>>>> Thanks.
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "google-codejam" group.
>>>>>> To post to this group, send email to [email protected].
>>>>>> To unsubscribe from this group, send email to
>>>>>> [email protected].
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/google-code?hl=en.
>>>>>>
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "google-codejam" group.
>>>>>> To post to this group, send email to [email protected].
>>>>>> To unsubscribe from this group, send email to
>>>>>> [email protected].
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/google-code?hl=en.
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google Groups
>>>>> "google-codejam" group.
>>>>> To post to this group, send email to [email protected].
>>>>> To unsubscribe from this group, send email to
>>>>> [email protected].
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/google-code?hl=en.
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google Groups
>>>> "google-codejam" group.
>>>> To post to this group, send email to [email protected].
>>>> To unsubscribe from this group, send email to
>>>> [email protected].
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/google-code?hl=en.
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "google-codejam" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/google-code?hl=en.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "google-codejam" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to 
>> [email protected].
>> For more options, visit this group at 
>> http://groups.google.com/group/google-code?hl=en.
>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "google-codejam" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/google-code?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-codejam" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-code?hl=en.

Reply via email to