diy computational science?

11 views
Skip to first unread message

J. S. John

unread,
Nov 6, 2009, 10:29:02 PM11/6/09
to diy...@googlegroups.com
Does it exist? I want to learn some computational chemistry or related
area, but not being able to apply it is a real frustration in
understanding. Any ideas? Shouldn't DIYbio be think about this area as
many people have computers that are quiet capable for simple
computations.

Thanks

J. S. John

unread,
Nov 6, 2009, 10:36:49 PM11/6/09
to diy...@googlegroups.com

Oh, I spoke too soon. I found some stuff, including that R Programming
link at DIYbio. Is anyone else doing any of this at home?

Bryan Bishop

unread,
Nov 6, 2009, 10:58:10 PM11/6/09
to diy...@googlegroups.com, kan...@gmail.com
On Fri, Nov 6, 2009 at 9:36 PM, J. S. John <phill...@gmail.com> wrote:
> On Fri, Nov 6, 2009 at 10:29 PM, J. S. John <phill...@gmail.com> wrote:
>> Does it exist? I want to learn some computational chemistry or related
>> area, but not being able to apply it is a real frustration in
>> understanding. Any ideas? Shouldn't DIYbio be think about this area as
>> many people have computers that are quiet capable for simple
>> computations.
>
> Oh, I spoke too soon. I found some stuff, including that R Programming
> link at DIYbio. Is anyone else doing any of this at home?

There are over 20,000 software packages freely available through
debian. Many others through redhat and gentoo. And then there's the
entire CPAN network which Jonathan contributes to regularly with his
Robotics package. There are so many, many software tools out there.
Seriously, just download a copy of ubuntu, or check out
wubi-installer. (You can still use a lot of free software on Windows,
but I've found it a pain in the neck. Mac OS X is a nice hint in the
right direction, but I still find it unusable.) <-- I don't mean to
start a flame-war.. there's just a lot of options, especially with the
"debian science" packaging team. Their entire job is to make it easy
for anyone to just sit at a computer and say, "I want computational
chemistry software, bring it to me" and it will be done (not by them,
but by programs, of course).

- Bryan
http://heybryan.org/
1 512 203 0507

Bryan Bishop

unread,
Nov 6, 2009, 11:06:15 PM11/6/09
to diy...@googlegroups.com, kan...@gmail.com
On Fri, Nov 6, 2009 at 9:58 PM, Bryan Bishop <kan...@gmail.com> wrote:
> On Fri, Nov 6, 2009 at 9:36 PM, J. S. John <phill...@gmail.com> wrote:
>> On Fri, Nov 6, 2009 at 10:29 PM, J. S. John <phill...@gmail.com> wrote:
>>> Does it exist? I want to learn some computational chemistry or related
>>> area, but not being able to apply it is a real frustration in
>>> understanding. Any ideas? Shouldn't DIYbio be think about this area as
>>> many people have computers that are quiet capable for simple
>>> computations.
>>
>> Oh, I spoke too soon. I found some stuff, including that R Programming
>> link at DIYbio. Is anyone else doing any of this at home?
>
> There are over 20,000 software packages freely available through
> debian. Many others through redhat and gentoo. And then there's the

Just as an example, I decided to search for "chem" in the debian
repositories. Here's the results. (And yes, this computer is named
"pikachu"- get over it.)

kanzure@pikachu:~$ apt-cache search chem
libball1.3-dev - Header files for the Biochemical Algorithms Library
libball1.3 - Biochemical Algorithms Library
libballview1.3-dev - Header files for the VIEW part of the Biochemical
Algorithms Library
libballview1.3 - Biochemical Algorithms Library, VIEW framework
python-ball - Python bindings for the Biochemical Algorithms Library
python-ballview - Python bindings for VIEW-parts of the Biochemical
Algorithms Library
bkchem - Python based chemical structures editor
chemeq - Parser for chemical formula and equilibria
chemical-mime-data - chemical MIME and file type support for desktops
chemtool - Chemical structures drawing program
education-chemistry - DebianEdu chemistry related applications
science-chemistry - Debian Science Chemistry packages
easychem - Draw high-quality molecules and 2D chemical formulas
freealchemist - simpler figure block game
gchempaint - 2D chemical structures editor for the GNOME2 desktop
gcu-bin - GNOME chemistry utils (helper applications)
gcu-plugin - GNOME chemistry utils (browser plugin)
libgcu-dbg - GNOME chemistry utils (debugging symbols)
libgcu0 - GNOME chemistry utils (library)
kalzium - periodic table and chemistry tools for KDE 4
libchemistry-elements-perl - Perl extension for working with Chemical Elements
libchemistry-formula-perl - enumerate elements in a chemical formula
viewmol - A graphical front end for computational chemistry programs.
xdrawchem - Chemical structures and reactions editor

So that's, what, 24 options right there.

Let's run a similar search on Sourceforge while I'm at it.

http://sourceforge.net/search/?type_of_search=soft&words=chemistry&search=Search

Another 100 results there.

http://code.google.com/hosting/search?q=chemistry&btn=Search+projects

Another 109 results there.

http://www.google.com/codesearch?q=chemistry

Another 62,00 there.

... yeah. Welcome to diybio.

J. S. John

unread,
Nov 6, 2009, 11:06:39 PM11/6/09
to diy...@googlegroups.com
On Fri, Nov 6, 2009 at 10:58 PM, Bryan Bishop <kan...@gmail.com> wrote:

> There are over 20,000 software packages freely available through
> debian. Many others through redhat and gentoo. And then there's the
> entire CPAN network which Jonathan contributes to regularly with his
> Robotics package. There are so many, many software tools out there.
> Seriously, just download a copy of ubuntu, or check out
> wubi-installer. (You can still use a lot of free software on Windows,
> but I've found it a pain in the neck. Mac OS X is a nice hint in the
> right direction, but I still find it unusable.) <-- I don't mean to
> start a flame-war.. there's just a lot of options, especially with the
> "debian science" packaging team. Their entire job is to make it easy
> for anyone to just sit at a computer and say, "I want computational
> chemistry software, bring it to me" and it will be done (not by them,
> but by programs, of course).
>

I'm a beginner into computer programming and just learning. However,
thanks for the debian link. The problem is I'm not sure where to start
and what to do in terms of DIY computations. The introductory material
I read so far give the math behind it but I want to learn how to apply
it somehow. Just asking for a little help.

Bryan Bishop

unread,
Nov 6, 2009, 11:11:43 PM11/6/09
to diy...@googlegroups.com, kan...@gmail.com
On Fri, Nov 6, 2009 at 10:06 PM, J. S. John <phill...@gmail.com> wrote:
> On Fri, Nov 6, 2009 at 10:58 PM, Bryan Bishop <kan...@gmail.com> wrote:
>> There are over 20,000 software packages freely available through
>> debian. Many others through redhat and gentoo. And then there's the
>> entire CPAN network which Jonathan contributes to regularly with his
>> Robotics package. There are so many, many software tools out there.
>> Seriously, just download a copy of ubuntu, or check out
>> wubi-installer. (You can still use a lot of free software on Windows,
>> but I've found it a pain in the neck. Mac OS X is a nice hint in the
>> right direction, but I still find it unusable.) <-- I don't mean to
>> start a flame-war.. there's just a lot of options, especially with the
>> "debian science" packaging team. Their entire job is to make it easy
>> for anyone to just sit at a computer and say, "I want computational
>> chemistry software, bring it to me" and it will be done (not by them,
>> but by programs, of course).
>>
> I'm a beginner into computer programming and just learning. However,

Cool, congratulations.

> thanks for the debian link. The problem is I'm not sure where to start

Ubuntu is definitely a good place to start. You download the CD, turn
on a computer, and you have most of the common and popular programming
tools at your fingertips. Also a great support community.

> and what to do in terms of DIY computations. The introductory material
> I read so far give the math behind it but I want to learn how to apply
> it somehow. Just asking for a little help.

I don't actually know what you're asking for. Are you past "hello
world"? Are you looking for programming tutorials? The best thing you
can do is come up with a way to test out code for yourself, rapidly
and quickly, so you know when you have the wrong idea (because the
code doesn't work) and when you're on to something. Otherwise it's
just pie in the sky stuff. Over the past year I've become more and
more addicted to python, so try some of that out. :-)

J. S. John

unread,
Nov 6, 2009, 11:20:38 PM11/6/09
to diy...@googlegroups.com
On Fri, Nov 6, 2009 at 11:11 PM, Bryan Bishop <kan...@gmail.com> wrote:

>
> I don't actually know what you're asking for. Are you past "hello
> world"? Are you looking for programming tutorials? The best thing you
> can do is come up with a way to test out code for yourself, rapidly
> and quickly, so you know when you have the wrong idea (because the
> code doesn't work) and when you're on to something. Otherwise it's
> just pie in the sky stuff. Over the past year I've become more and
> more addicted to python, so try some of that out. :-)
>

I'm not really talking about the programming but rather I want to use
existing software to do my hands-on approach to learning computational
chemistry. This field is so vast and there's no such major in my
university. I will be taking physical biochemistry next semester and
it covers computer simulation.

Its like how some people are interested in growing cells on petri
dishes or running simple electrophoresis. I want to so simple
computation to reinforce what I'm reading.

Bob Keyes

unread,
Nov 7, 2009, 12:10:54 AM11/7/09
to diy...@googlegroups.com

I agree with Bryan, in that Ubuntu and Debian are a good starting point (Ubuntu being a refined subset of debian, more user-friendly). If you have one computer of recent vintage, you may find it best to run Ubuntu as a virtual machine (by way of vmware and its ilk).

One of the problems with the richness of the free software world, and the Debian world in particular, is figuring out where to start. There's a myriad of different tools which look very similar from a distance. You're going to have to read up on what's going on in computational chemistry in order to determine your needs and evaluate programs which are available on that basis. My suggestion when using a search engine to locate information is to be wary of old posts on mailing lists and forums, and try to determine if the software has been 'abandoned' and has no active developers. One rule of thumb is to see if there have been any revisions released within the past two years. Seldom is software of any significant sophistication perfect enough as to not need periodic updates. But don't make the mistake of applying this heuristic to simple, single-purpose programs, which often use the text console interface. Such little tools can go as much as decades
without the need for change.

I wish I could give more specific advice. I am much more of a computer guy than a biohacker.

[right now I am trying to figure out how to reset the root password on a computer I scavenged from the recycle bin at Harvard - an old IBM ThinkPad Power Series 820 running AIX4 - very much a dinosaur, but these old machines can provide much joy in the tinkering]

-Bob

p.s. I will trade knowledge of where to scavenge computer stuff in the greater Boston area in exchange for specific information on scavenging lab equipment and supplies here or in Albany NY (yes I know about MIT's "reuse" mailing list).

Bryan Bishop

unread,
Nov 7, 2009, 12:15:10 AM11/7/09
to diy...@googlegroups.com, kan...@gmail.com
On Fri, Nov 6, 2009 at 11:10 PM, Bob Keyes <keye...@yahoo.com> wrote:
> [right now I am trying to figure out how to reset the root password on a computer I scavenged from the recycle bin at Harvard - an old IBM ThinkPad Power Series 820 running AIX4 - very much a dinosaur, but these old machines can provide much joy in the tinkering]

Have you tried John the Ripper?

http://www.openwall.com/john/

"John the Ripper is a fast password cracker, currently available for
many flavors of Unix, Windows, DOS, BeOS, and OpenVMS. Its primary
purpose is to detect weak Unix passwords. Besides several crypt(3)
password hash types most commonly found on various Unix systems,
supported out of the box are Windows LM hashes, plus many more with
contributed patches."

This would help recover root, not reset root.

Simon Quellen Field

unread,
Nov 7, 2009, 1:05:50 AM11/7/09
to diy...@googlegroups.com
Trying to win a bar bet?
Any number greater than 1,000 is nonsense.

Bryan Bishop

unread,
Nov 7, 2009, 1:08:11 AM11/7/09
to diy...@googlegroups.com, kan...@gmail.com
On Sat, Nov 7, 2009 at 12:05 AM, Simon Quellen Field wrote:
> Trying to win a bar bet?
> Any number greater than 1,000 is nonsense.

Not only that but I seem to have "European numbering mode" on.

Jay Woods

unread,
Nov 7, 2009, 3:10:28 AM11/7/09
to diy...@googlegroups.com
On Fri, Nov 6, 2009 at 10:29 PM, J. S. John <phill...@gmail.com> wrote:
> Does it exist? I want to learn some computational chemistry or related
> area, but not being able to apply it is a real frustration in
> understanding. Any ideas? Shouldn't DIYbio be think about this area as
> many people have computers that are quiet capable for simple
> computations.

Are you interested short explanations (leading on to tutorials) in all the
ways that computers and chemistry interact? If so, a good place to start is
with wikipedia: http://en.wikipedia.org/wiki/Category:Chemistry_software.

Additional information that would be helpful. Are you interested in using
existing programming or contributing some of your own (when you get to that
point). If so, what programming languages are you interested in. There are
extensive and integrated packages written in PERL
(http://www.cpan.org/modules/by-module/Chemistry/), JAVA
(http://en.wikipedia.org/wiki/Chemistry_Development_Kit), and C/C++ (perhaps
not so integrated).

Or is it the more specific area of modeling and dynamics of molecules and their
chemical reactions. If so, try wikipedia again:
http://en.wikipedia.org/wiki/Category:Computational_chemistry_software.

Bob Keyes

unread,
Nov 7, 2009, 10:37:13 AM11/7/09
to diy...@googlegroups.com

--- On Sat, 11/7/09, Bryan Bishop <kan...@gmail.com> wrote:

> From: Bryan Bishop <kan...@gmail.com>
> Subject: Re: diy computational science?
> To: diy...@googlegroups.com, kan...@gmail.com
> Date: Saturday, November 7, 2009, 12:15 AM
>
> On Fri, Nov 6, 2009 at 11:10 PM, Bob Keyes <keye...@yahoo.com>
> wrote:
> > [right now I am trying to figure out how to reset the
> root password on a computer I scavenged from the recycle bin
> at Harvard - an old IBM ThinkPad Power Series 820 running
> AIX4 - very much a dinosaur, but these old machines can
> provide much joy in the tinkering]
>
> Have you tried John the Ripper?
>
> http://www.openwall.com/john/


Yes I know about John the Ripper. The problem I have no account on the system whatsoever, so I can't even get the /etc/passwd file. It might be shadowed anyhow, making john the ripper rather useless. Ideally, I'd like to get in without changing any passwords, and then use John to crack them, because I have find it funny what people use for passwords.

Of course, I still have to figure out how I am going to network this computer. It's old enough to not have USB, but even if it did have USB I doubt that AIX 4.1.3 would support any networking device that's modern. Once I get in, I am going to see if there are any device drivers included, but also look around for docs and drivers for some old pcmcia 10baseT cards (ugh, I hope I don't have to do 10base2!).

You might say, "oh it's not worth the effort. Just run debian on it" - well, if I were looking for utility, I would. But the machine is too old to be of much utility. It's more of an interesting toy, with its ancient operating system. I'll have some fun putting it up on the net and see people try to hack it. (I tried the -froot trick, but the OS isn't THAT old!)

J. S. John

unread,
Nov 7, 2009, 10:42:19 AM11/7/09
to diy...@googlegroups.com
On Sat, Nov 7, 2009 at 3:10 AM, Jay Woods <wood...@cox.net> wrote:
> Additional information that would be helpful. Are you interested in using
> existing programming or contributing some of your own (when you get to that
> point). If so, what programming languages are you interested in. There are
> extensive and integrated packages written in PERL
> (http://www.cpan.org/modules/by-module/Chemistry/), JAVA
> (http://en.wikipedia.org/wiki/Chemistry_Development_Kit), and C/C++ (perhaps
> not so integrated).

I'm trying to learn C++ now. Any idea what a good 1st language is?
Would like to try a bit of Matlab later.


>
> Or is it the more specific area of modeling and dynamics of molecules and their
> chemical reactions. If so, try wikipedia again:
>        http://en.wikipedia.org/wiki/Category:Computational_chemistry_software.
>

Thanks for the link. Now that I got some idea of the software I wish I
knew how one would go about some DIY work on them. This professor told
me he just sits in front of his pc modeling and doing some
calculations (greatly simplified). Is it possible to do something with
these programs at home? I have to learn more about the applications of
these programs.

Michael Vieths

unread,
Nov 7, 2009, 12:20:18 PM11/7/09
to diy...@googlegroups.com
Bob Keyes wrote:
>
> Yes I know about John the Ripper. The problem I have no account on
> the system whatsoever, so I can't even get the /etc/passwd file. It
> might be shadowed anyhow, making john the ripper rather useless.
> Ideally, I'd like to get in without changing any passwords, and then
> use John to crack them, because I have find it funny what people use
> for passwords.
>
Have you tried the System Rescue CD
(http://www.sysresccd.org/Main_Page)? There's a Power version of it,
which is pretty out of date, but if you're worried about 10base2, it's
probably recent enough. ;) The CD can be customized to add your own
software to it. Then just mount the hard drive and do whatever you want
to it.

--
Michael Vieths
Foe...@Visi.com

Jake

unread,
Nov 7, 2009, 11:58:08 AM11/7/09
to diy...@googlegroups.com

There's a lot of programs out there. For simple stuff you can play around with VectorNTI. Running some blast searches can also produce some interesting data. There's also a lot of unix/linux programs for doing specific types of DNA analysis.<br /><br />There should be a FAQ or guide to getting into bio-informatics. Maybe you can post back what you find out and we can start working on one.<br /><br /><br />-Jake

_____________________________________________________
This message was posted from the O-Bio.org DIYbio forums.
To view this post with all display features please visit:
http://www.o-bio.org/forums/viewtopic.php?f=2&t=1344&p=6884#p6884

Bryan Bishop

unread,
Nov 7, 2009, 1:42:25 PM11/7/09
to diy...@googlegroups.com, kan...@gmail.com
On Sat, Nov 7, 2009 at 10:58 AM, Jake <DIYbio.li...@o-bio.org> wrote:
> There's a lot of programs out there.  For simple stuff you can play around with VectorNTI.  Running some blast searches can also produce some interesting data.  There's also a lot of unix/linux programs for doing specific types of DNA analysis.<br /><br />There should be a FAQ or guide to getting into bio-informatics.  Maybe you can post back what you find out and we can start working on one.<br /><br /><br />-Jake

The best bioinformatics guide I have seen to date is over here:

http://www.bioinformatics.org/w/index.php?title=Bioinformatics_FAQ&oldid=1367

Meredith L. Patterson

unread,
Nov 7, 2009, 4:09:14 PM11/7/09
to diy...@googlegroups.com
On Sat, Nov 7, 2009 at 4:37 PM, Bob Keyes <keye...@yahoo.com> wrote:
> Yes I know about John the Ripper. The problem I have no account on the system whatsoever, so I can't even get the /etc/passwd file. It might be shadowed anyhow, making john the ripper rather useless. Ideally, I'd like to get in without changing any passwords, and then use John to crack them, because I have find it funny what people use for passwords.

Pull the hard drive, slap it in a USB enclosure, mount it from another
system. (This of course assumes that the drive is IDE -- I expect it's
too old to be SATA.)

Alternately, if you can boot from CD-ROM, burn a Knoppix disk and go to town.

Cheers,
--mlp

Jay Woods

unread,
Nov 8, 2009, 10:02:34 AM11/8/09
to diy...@googlegroups.com
On Saturday 07 November 2009 09:42:19 am J. S. John wrote:
> On Sat, Nov 7, 2009 at 3:10 AM, Jay Woods
<wood...@cox.net> wrote:
> > Additional information that would be helpful. Are you
interested in using
> > existing programming or contributing some of your own
(when you get to
> > that point). If so, what programming languages are you
interested in.
> > There are extensive and integrated packages written in
PERL
> > (http://www.cpan.org/modules/by-module/Chemistry/),
JAVA
> >
(http://en.wikipedia.org/wiki/Chemistry_Development_Kit),
and C/C++
> > (perhaps not so integrated).
>
> I'm trying to learn C++ now. Any idea what a good 1st
language is?

For diy and small controllers like the arduino, I recommend C
- using the concepts of finite state machines to organize the
code that runs on the controller. This gets away from each of
the functions (objects) being dependent on many other
functions and so simplifies testing. It also brings the code into
align with that of a PLC and ladder logic.

Then when you use C++ the use of objects becomes a lot
easier. Think scales then symphony or alternatively algebra
then calculus.

> Would like to try a bit of Matlab later.
>

It is only available as trial software or for pay according to the
maintainer: The MathWorks.
http://www.mathworks.com/products/matlab/pricing_licensing.html?tab=student

Instead, I suggest Maxima which is open source.
http://en.wikipedia.org/wiki/Maxima_(software)
http://maxima.sourceforge.net/

Jay Woods

unread,
Nov 8, 2009, 10:23:44 AM11/8/09
to diy...@googlegroups.com
On Saturday 07 November 2009 09:42:19 am J. S. John wrote:
> ... I wish I

> knew how one would go about some DIY work on them. This professor told
> me he just sits in front of his pc modeling and doing some
> calculations (greatly simplified). Is it possible to do something with
> these programs at home?

I have faith that it is possible. The idea of translating my knowledge of
chemical reactions into the actual (simulated) forces between molecules during
reaction excites. For example, is it possible to use metallic calcium or CaH2
to catalyze the conversion of N2 and H2 to NH3 via CaN2? Is this the
equivalent of converting B and H2 to BH3 using S or H2S? (Probably not because
the B dimer isn't stable.)

> I have to learn more about the applications of
> these programs.

So do I. If anyone of us can get a program up and running and usable, please
write up a how-to with screen shots. Even hints would be useful (like you have
seen one of them being used).

J. S. John

unread,
Nov 8, 2009, 2:13:15 PM11/8/09
to diy...@googlegroups.com
On Sun, Nov 8, 2009 at 10:23 AM, Jay Woods <wood...@cox.net> wrote:

> So do I. If anyone of us can get a program up and running and usable, please
> write up a how-to with screen shots. Even hints would be useful (like you have
> seen one of them being used).
>

When my exams this week are done, I will talk to the professor and see
if he has any ideas. Thanks for understanding what I was trying to do.
The introductory books are all theory and I have a hard time finding
one that gives examples of what is actually done in the program. I
know they give an output of data but how they use it is beyond me.

Jake

unread,
Nov 8, 2009, 2:06:40 PM11/8/09
to diy...@googlegroups.com

I don't think it really matters what language you start with. Once you get the basics of one language and get used to data structures, pointers, etc. you'll be able to pick up any language pretty quickly. C is a good start and most languages are closely based on it. Much of your C code will work almost unchanged in other languages if it isn't too complicated.

I see a lot of people using matlab in the university setting. PERL and PHP are really useful and common in the internet world.

I started with 2 classes on C++, then learned PERL, have since forgotten most of it, and lately I've learned enough to get by in PHP. There's a lot going on with PERL and PHP as far as interfacing databases and doing computation on sequences. Most of the research groups spend a good deal of time getting their data into databases and accessible in a useful way via the internet. If you learn a bit about SQL languages and some PERL or PHP you'll never run out of interesting things to do, or likely job offers. With that combo you can really do some useful things.


-Jake
_____________________________________________________
Posted from O-Bio.org/forums/ for all features visit:
http://www.o-bio.org/forums/viewtopic.php?f=6&t=3020&p=15574#p15574

Daniel C.

unread,
Nov 8, 2009, 4:33:36 PM11/8/09
to diy...@googlegroups.com
On Sun, Nov 8, 2009 at 12:06 PM, Jake <DIYbio.li...@o-bio.org> wrote:
> I don't think it really matters what language you start with.

I disagree. When you learn a language, the process of learning the
language influences the way that you think about programming. When
you learn new languages, you'll bring your habits of thought from the
old language to the new one. Some people think that permanent brain
damage can be caused by learning Visual Basic as your first language.
I take a more optimistic view - I think that the damage it causes can
be repaired after years of therapy ;-)

Realistically though, any reasonable suggestion for a first language
will be fine. If your only goal is to learn to program, Python is an
excellent choice for that task. Once you've learned to program,
learning related languages is easy, so you could pick up C pretty
quickly if you already knew Python.

If you want to be a Serious Programmer for Serious Business, there is
nothing wrong with learning C first (not C++, just plain old C) but if
you decide to go that route, keep in mind that learning pointers will
probably destroy your mind and rebuild it in a purer form. It can be
painful but the results are worth it. (If you are one of the few that
enjoys having your mind melted down, you can move on to Lisp when
you've got C down pat.)

Also keep in mind that each language was created for a specific
purpose, just like each tool in a tool box. Always try to use the
right tool for the right job.

> PERL and PHP are really useful and common in the internet world.

Yes, they are tremendously useful and very common. I would warn
against learning PHP as your first language. I love PHP and I use it
all the time, but it is braindead and broken in several ways and
someone who's just learning to program doesn't need those influences.
But it is an excellent tool for what it's designed for.

Perl, on the other hand, is a generally well-designed language, and
has what is possibly the best toolkit for dealing with strings of
characters (which is what most genetic information is). And plugging
it into a database is dead simple. I didn't find it particularly
newbie friendly, but that shouldn't discourage anyone from picking it
up as a first language, and everyone who programs more than casually
really should become familiar with Perl.

-Dan

Proteus

unread,
Nov 8, 2009, 4:34:14 PM11/8/09
to diy...@googlegroups.com

I'm confused... When someone changed &quot;diy computational science&quot; to &quot;diy computational science [prog language]&quot; why didn't that start a new thread?

Is text in brackets not considered a topic/thread change? If so where are these rules posted?

I ask because my message processing code takes any subject change as starting a new thread and this is making the forum out of sync with the list.


-Jake
_____________________________________________________
Posted from O-Bio.org/forums/ for all display features visit:
http://www.o-bio.org/forums/viewtopic.php?f=6&t=3020&p=15580#p15580

Daniel C.

unread,
Nov 8, 2009, 4:46:01 PM11/8/09
to diy...@googlegroups.com
On Sun, Nov 8, 2009 at 2:34 PM, Proteus <DIYbio.li...@o-bio.org> wrote:
> I'm confused... When someone changed &quot;diy computational science&quot; to &quot;diy computational science [prog language]&quot; why didn't that start a new thread?

This depends primarily on the behavior of your email client. I'm
using Gmail, which behaved as expected - i.e. it started a new thread.

If someone is going to start a new thread, they "should" actually
start a new email completely, because replying to an existing thread
maintains some email headers that tell your client what they're
replying to, even if they change the subject. So your email client
(and email clients that behave as they're "supposed" to - even though
"supposed to" and "expected" aren't always the same) maintains them in
the same thread even though the subject changed. Good luck enforcing
that though.

If anyone's interested, you can see the full headers of an email I got
from this list here: http://dcrookston.com/headers.html (copied and
pasted, not dynamically generated.) As you can see, there is a LOT of
information there, that email clients can use or ignore as they see
fit, for handling emails.

Dan

Proteus

unread,
Nov 8, 2009, 4:55:50 PM11/8/09
to diy...@googlegroups.com

How embarrassing! My email processing missed some html entities and made my post look stupid. The "&"quot;" should be simply a quotation mark. That problem should be fixed now.

Anyways, my message got posted into the "diy computational science?" thread despite having the different subject "diy computational science [prog language]?" and no headers or message id's that would tell it where to put the post. (As it was generated from the post to the forum)

So I guess there's some convention I'm not aware of in play here, and text in [] must not be figured in to which thread it goes into. Can anyone point me to reference material for this?

I don't really care one way or the other, but I'd like to have the forum mirror the list behavior. I just have to figure out what crazy rules "google groups" is following.


_____________________________________________________
Posted from O-Bio.org/forums/ for all display features visit:

http://www.o-bio.org/forums/viewtopic.php?f=6&t=3020&p=15584#p15584

Michael Vieths

unread,
Nov 8, 2009, 5:17:52 PM11/8/09
to diy...@googlegroups.com
Daniel C. wrote:
> Realistically though, any reasonable suggestion for a first language
> will be fine. If your only goal is to learn to program, Python is an
> excellent choice for that task. Once you've learned to program,
> learning related languages is easy, so you could pick up C pretty
> quickly if you already knew Python.
>
I'd disagree in the case of Python just because many things in it are
quite different than working with other C-based languages. It's been a
while since I worked with it, but there were a lot of cases where I just
found myself thinking 'Why did they do that?'. There were some syntax
changes and such that felt wrong, if only because they were different
than in C and its closer relations.

Not that it's a bad language, it just doesn't provide a great frame of
reference for learning other languages.

> If you want to be a Serious Programmer for Serious Business, there is
> nothing wrong with learning C first (not C++, just plain old C) but if
> you decide to go that route, keep in mind that learning pointers will
> probably destroy your mind and rebuild it in a purer form. It can be
> painful but the results are worth it. (If you are one of the few that
> enjoys having your mind melted down, you can move on to Lisp when
> you've got C down pat.)
>

I'd recommend Java these days, though I started my programming career by
learning C. It's pretty easy to learn and, professionally speaking, is
more portable than just C (at least this is what spending the last year
looking for work has taught me). It's also object oriented from the
ground up, which is probably a good thing to learn. Figuring out how
pointers work from C is great if you're getting into low-level
programming work, but if you just want to tinker with data you probably
don't care how it gets manipulated behind the scenes.

Really, once you know any of C, C++, Java, or Perl, the other 3 aren't
hard to pick up.

> Also keep in mind that each language was created for a specific
> purpose, just like each tool in a tool box. Always try to use the
> right tool for the right job.
>

Definitely agree here. Any time string manipulation is involved I head
straight for Perl.

> Perl, on the other hand, is a generally well-designed language, and
> has what is possibly the best toolkit for dealing with strings of
> characters (which is what most genetic information is). And plugging
> it into a database is dead simple. I didn't find it particularly
> newbie friendly, but that shouldn't discourage anyone from picking it
> up as a first language, and everyone who programs more than casually
> really should become familiar with Perl.
>

Perl is a great mishmash of a 'real' programming language like C,
combined with the 'quick and dirty' tools you find in shell scripting.
It's ideal for throwing together a complicated script in short order
that can parse files, input and really anything that generates a string.
There are _tons_ of packages out there for it, too, on cpan.org. I
love working with Perl, honestly. :)

That said, it's infamous for being a 'write-only' language; it has a
ton of shortcuts that are good for saving time, but bad for
maintainability. It's easy to fall into bad habits that make it hard
for anyone (even the person who wrote the code in the first place) to
understand it 6 months down the road.

--
Michael Vieths
Foe...@Visi.com

Daniel C.

unread,
Nov 8, 2009, 5:39:13 PM11/8/09
to diy...@googlegroups.com
On Sun, Nov 8, 2009 at 3:17 PM, Michael Vieths <foe...@visi.com> wrote:
> I'd disagree in the case of Python just because many things in it are
> quite different than working with other C-based languages.  It's been a
> while since I worked with it, but there were a lot of cases where I just
> found myself thinking 'Why did they do that?'.  There were some syntax
> changes and such that felt wrong, if only because they were different
> than in C and its closer relations.

Yeah, that is one thing to consider. I personally think that most of
these things are better for beginners. The whitespace issue, for
example, is odd for programmers coming to Python, but for someone
without preconceptions about formatting it teaches good habits and
means they never have to worry about forgetting a semicolon and
spending an hour trying to find the bug. This is an experience we've
all had and I know several people who have been turned off of
programming forever because of it.

> Not that it's a bad language, it just doesn't provide a great frame of
> reference for learning other languages.

I agree, and that (from a different perspective) is actually why I
recommend it for people new to programming. The number of things you
have to learn and keep track of in Python is pretty small. Things
like the already-mentioned semicolon issue (and several other things)
can just be ignored completely because Python doesn't make you deal
with them. This obviously is something they'll have to learn when
moving to other languages, so you are correct that it doesn't provide
a great frame of reference for learning other languages. However it
also means that a new programmer has to learn fewer things all at
once.

The optimal situation is for someone to have a mentor who knows them
well and can pick the appropriate first language. But honestly, in
the end, it doesn't really matter *that* much. Bad habits can be
unlearned, and obstacles to learning introduced by the language's
mechanics will be overcome by the determined student.


> I'd recommend Java these days

I hate Java and am therefore unfit to comment on it rationally. I
don't know why I dislike it so strongly, but I do. So keep that in
mind when I say that I don't recommend learning it as a first
language. It's heavily OO - you can't write "Hello, World" without
creating a class, instantiating it, etc. This is a good thing for big
programs but not so good for small programs, and imho there is
absolutely no reason to force a newbie to get their head around OO
before they can write "Hello, World".

That said, Java is absolutely a very good language to know if you want
to make a career of programming. (I was very very tempted to write
"make a career of being a programmer of middling talent and spend the
rest of your days as a nameless cog in a corporate giant which will
replace you as soon as your SLOC count drops below 1 standard
deviation from the mean.)

> It's also object oriented from the ground up, which is probably a good
> thing to learn.

Every serious programmer should learn OO, but that doesn't mean they
should learn it up front, and there are a lot of OO models that are
"better" than Java's. I was about to quote Alan Kay - "I invented the
term Object-Oriented and I can tell you I did not have Java in mind."
- but it turns out he actually said C++. Dang. Someday I need to get
over my irrational feelings toward Java. Some day real soon now.

> Figuring out how pointers work from C is great if you're getting into low-level
> programming work, but if you just want to tinker with data you probably
> don't care how it gets manipulated behind the scenes.

I half-agree. Rather than write why here, I present for your
consideration Joel Spolsky's article on "Java schools", in which he
discusses (among other things) why learning C pointers is important
for someone to be a Real Programmer (just like Mel):
http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

> That said, it's infamous for being a 'write-only' language;  it has a
> ton of shortcuts that are good for saving time, but bad for
> maintainability.

I have a friend who wrote a bunch of Perl scripts a while back while
he was on LSD. They all work great (he still uses some of them) but
in the morning he couldn't figure out why or how they work. In the
end he just decided to treat them like magic black boxes.

-Dan

Eugen Leitl

unread,
Nov 11, 2009, 9:52:41 AM11/11/09
to diy...@googlegroups.com
On Sun, Nov 08, 2009 at 09:23:44AM -0600, Jay Woods wrote:

> I have faith that it is possible. The idea of translating my knowledge of
> chemical reactions into the actual (simulated) forces between molecules during
> reaction excites. For example, is it possible to use metallic calcium or CaH2
> to catalyze the conversion of N2 and H2 to NH3 via CaN2? Is this the
> equivalent of converting B and H2 to BH3 using S or H2S? (Probably not because
> the B dimer isn't stable.)

Are you talking about an expert system, or computational chemistry?
Reaction dynamics at a low level of theory is currently limited to
triatomics, or such. At a high level of theory it's mostly garbage.

Computational Chemistry List is a good place to be.

--
Eugen* Leitl <a href="http://leitl.org">leitl</a> http://leitl.org
______________________________________________________________
ICBM: 48.07100, 11.36820 http://www.ativel.com http://postbiota.org
8B29F6BE: 099D 78BA 2FD3 B014 B08A 7779 75B0 2443 8B29 F6BE

Reply all
Reply to author
Forward
0 new messages