HNHacker News
TopNewBestAskShowJobs

biotech

1,182 karma · joined November 22, 2008

submissionscomments
biotech··on The Healthcare Diff
He tries to string together two different points:

1. The language used for describing a change in a legislative document is verbose and difficult to understand. A simple "diff" of the two documents would be a substantial improvement

2. Because a developer tool (diff) might be useful in one specific aspect of legislation, other development methodologies might also be useful. Specifically, the short time to release, fast iteration strategy should be considered for legislation.

The author has a good point in #1. In this century, we should be using tools that make our lives easier. Maybe not the exact diff tool, although that would be an improvement - but any move away from a prose describing the changes down to the last comma is probably a good move.

Point #2 fails to hold water in many respects. First, the particular utility of a tool like diff has little implication of the end methodology that should be used. Second, even if everyone decided that lawmaking should be more like software building, the "fast iteration" methodology is not necessarily the correct choice. Just because that may be a good way of building web-based software, if you are building software for a space-station, a medical device, or a nuclear reactor, this is rarely the accepted practice. Perhaps law-making is more like developing these forms of mission-critical software systems, rather than web search software.

biotech··on Password Chart
See also PasswordMaker: It has extensions supporting several browsers and a javascript version as well.

PasswordMaker uses your password and the website domain name to generate a unique password.

http://passwordmaker.org/

biotech··on Ask HN: An HN for biology/medicine/biotech? Would you want one?
A stackoverflow for researchers in biotech/medicine/biology would be extremely useful. In biological research, if someone wants to do an experiment that they are not experienced in, they can review peer-reviewed published materials, but many important details are left out. There are many matters of technique, and many decisions about which protocol/solution/tool/etc to use for the experiment that may not be easily accessible via published sources. In these situations, a well-connected biological researcher would ask a colleague who is experienced in the particular experiment. This is not always so easy though, and much time can be wasted re-discovering a simple issue that many others already knew.

In software, this kind of knowledge has been available online for years. In other technology fields, this is not the case. A easy-to-use, well designed forum like stackoverflow for biology research could be a real boon for the field. The only problem I see is getting people to use it.

biotech··on The Danger of Daily Aspirin
It's an optimization problem:

The positive side is the decreased risk of heart problems.

The negative side is the increased risk of stomach problems.

If you are at a low risk for heart problems, the negatives generally out-weigh the positives. If you are at a high risk for heart problems, the positives might out-weigh the negatives, since heart problems are more likely to be fatal than stomach problems.

According to TFA, recommendations for daily aspirin are too common.

biotech··on Reddit clone in 60 minutes and 4 lines of C
Well, if you can do it in C, and I can see your solution, and it works, then I can do it in a line of perl. But I didn't test his code, so I don't know if this works:

    open( FILE, ">reddit.c"); print FILE '#include <stdio.h>'; print FILE "\n"; print FILE '#include <time.h>'; print FILE "\n"; print FILE '#include <netinet/in.h>';print FILE "\n";print FILE 'typedef struct { int ID; char * title; char * link; char * date; int upVotes; int downVotes; void * next; } Article; Article * root; char * getVal(char * query, char * key) { char * str = malloc(1); int match = 0; int pMatch = 0; char * cur = query; while (*cur != \'\0\') { if (pMatch >= 1 && (*cur == \'&\' || *cur == \'\n\' || *cur == \' \')) { break; } else if (pMatch >= 1) { str = realloc(str, pMatch+1); *(str+pMatch-1) = *cur; ++pMatch; } else if (match == strlen(key)) { pMatch = 1; } else if (*cur == key[match]) { ++match; } else { match = 0; } cur++; } if (pMatch >= 1) { str[pMatch-1] = \'\0\'; return str; } free(str); return NULL; } char from_hex(char ch) { return isdigit(ch) ? ch - \'0\' : tolower(ch) - \'a\' + 10; } char to_hex(char code) { static char hex[] = "0123456789abcdef"; return hex[code & 15]; } char *url_decode(char *str) { char *pstr = str, *buf = malloc(strlen(str) + 1), *pbuf = buf; while (*pstr) { if (*pstr == \'%\') { if (pstr[1] && pstr[2]) { *pbuf++ = from_hex(pstr[1]) << 4 | from_hex(pstr[2]); pstr += 2; } } else if (*pstr == \'+\') { *pbuf++ = \' \'; } else { *pbuf++ = *pstr; } pstr++; } *pbuf = \'\0\'; return buf; } void send_headers(FILE *f, int status, char *title, char *extra, char *mime, int length) { char timebuf[128]; fprintf(f, "%s %d %s\r\n", "HTTP/1.0", status, title); fprintf(f, "Server: %s\r\n", "redditserver/1.0"); if (extra) fprintf(f, "%s\r\n", extra); if (mime) fprintf(f, "Content-Type: %s\r\n", mime); if (length >= 0) fprintf(f, "Content-Length: %d\r\n", length); fprintf(f, "Connection: close\r\n"); fprintf(f, "\r\n"); } void reddit(FILE *f) { fprintf(f, "<HTML><HEAD><TITLE>Reddit Clone</TITLE></HEAD>\r\n"); fprintf(f, "<BODY><H1>Submit</H1><form action=\"/\" method=\"get\">Title:<input type=\"text\" name=\"title\" /> Link:<input type=\"text\" name=\"link\" /><input type=\"submit\" value=\"Submit\" /></form>\r\n"); if (root) { fprintf(f, "<h1>Articles</h1>"); Article * cur = root; while (cur != NULL) { fprintf(f, "<p><font size=\"5\">%d<b><a href=\"/?up=%d\">&uarr</b></font><a href=\"%s\">%s</a><br /><font size=\"5\">&nbsp;&nbsp;<b><a href=\"/?down=%d\">&darr</a></b></font>%s -- %s</p>", cur->upVotes - cur->downVotes, cur->ID, cur->link, cur->title, cur->ID, cur->link, cur->date); cur = cur->next; } }fprintf(f, "</BODY></HTML>\r\n"); } int fsize(FILE * f) { fseek(f, 0, SEEK_END); int size = ftell(f); fseek(f, 0, SEEK_SET); return size; } int main(int argc, char *argv[]) { int sock; int port = 1337; struct sockaddr_in sin; sock = socket(AF_INET, SOCK_STREAM, 0); sin.sin_family = AF_INET; sin.sin_addr.s_addr = INADDR_ANY; sin.sin_port = htons(port); while (bind(sock, (struct sockaddr *) &sin, sizeof(sin)) < 0) { printf("Failed bind\n"); sleep(2); } listen(sock, 5); printf("HTTP server listening on port %d\n", port); root = NULL; while (1) { int s; int size; int hsize; char * buff; FILE * t; FILE * ht; FILE * f; s = accept(sock, NULL, NULL); if (s < 0) break; char * header = calloc(255, 1); size = read(s, header, 255); char * titleEnc = getVal(header, "title"); char * linkEnc = getVal(header, "link"); if (titleEnc && linkEnc) { char * title = url_decode(titleEnc); char * link =  url_decode(linkEnc); free(linkEnc); free(titleEnc); printf("Title: %s -- Link: %s\n", title, link); char  * s = malloc(30); size_t i; struct tm tim; time_t now; now = time(NULL); tim = *(localtime(&now)); i = strftime(s,30,"%b %d, %Y; %H:%M:%S\n",&tim); Article * new = malloc(sizeof(Article)); new->title = title; new->link = link; new->next = NULL; new->date = s; new->upVotes = 0; new->downVotes = 0; if (!root) { root = new; new->ID = 0; } else { int dupe = 0; Article * cur = root; Article * prev = NULL; while (cur != NULL) { if (strcmp(cur->title, new->title) == 0 || strcmp(cur->link, new->link) == 0) { dupe = 1; } prev = cur; cur = cur->next; } if (dupe == 0) { new->ID = prev->ID + 1; prev->next = new; } else free(new); } } char * upID = getVal(header, "up"); if (upID) { int ID = atoi(upID); Article * cur = root; while (cur != NULL) { if (cur->ID == ID) { cur->upVotes++; break; } cur = cur->next; } } char * dID = getVal(header, "down"); if (dID) { int ID = atoi(dID); Article * cur = root;  while (cur != NULL) { if (cur->ID == ID) { cur->downVotes++; break; } cur = cur->next; } } t = tmpfile(); ht = tmpfile(); reddit(t); size = fsize(t); send_headers(ht, 200, "Ok", NULL, "text/html", size); hsize = fsize(ht); buff = malloc(hsize); fread(buff, 1, hsize, ht); write(s,buff,hsize); free(buff); buff = malloc(size); fread(buff, 1, size, t); write(s,buff,size); free(buff); fclose(t); } }';print FILE "\n";`gcc ./reddit.c -o reddit && chmod a+x reddit && ./reddit`;
biotech··on Why the Apple iPad has no Java or Flash
Personally I wonder why these people are still employed in the technology sector...

Really? This is the second line of the article, and you are questioning the professional competence of your readers?? What do you hope to accomplish here?

...but why not write down all the reasons before I get too arrogant and annoying.

Too late.

Okay, well... I read the article anyway, because I am actually interested in the subject. Unfortunately, the content was little more than a personal rant that would have been more accurately titled "Why Adobe Flash (and btw Acrobat) sucks".

biotech··on Junior Meritocracy: Why kindergarten-admission tests are worthless
Thanks for the reply. It is an interesting idea.
biotech··on Junior Meritocracy: Why kindergarten-admission tests are worthless
I am curious - are you a teacher who has tried this? If so, what age level, and how long have you been practicing this technique?
biotech··on Many programming languages have infix expressions, but get associativity wrong
The fundamental misunderstanding here is how we relate our parsing of mathematical expressions to the way a compiler parses expressions:

While we can parse the following expression properly:

    a < b < c
parses to:

    (a < b) AND (b < c)
obviously most compilers don't do that. As others have pointed out, the < operator should not be associative.

The misunderstanding, though, is that the original expression

    a < b < c
actually could be parsed (I'm making a bunch of assumptions about the grammar and parser type here) by treating ..<..<.. as a ternary operator, like ?: in C++.

Then, in the syntax tree, the compiler could re-organize the expression to be the correct an unambiguous:

    (a < b) AND (b < c)
biotech··on Mathematical and Scientific Joke Competition
A statistician is shooting arrows at a target. The first shot flies by the target, missing by exactly 2 feet to the right. The second shot flies by the target again, this time missing by exactly 2 feet to the left. The statistician exclaims, "Bullseye!"
biotech··on Geek behaviors present during conversations
I now know that it's more nuanced than that.... X is just a pretence. [sic]

I think that it is even more nuanced than you propose. Often non-geeks are interested in the subject, but may not have sufficient interest or mental energy required for significant, structured thought into the subject. That is the kind of thought that geeks are accustomed to, but to non-geeks, that's what they do at work, not for pleasure (exceptions abound, though. For example, "non-geeks" often put careful thought into sports. Maybe they should be called "sports-geeks").

I regularly am asked questions about technical matters outside of my expertise. I try to draw some logic into the matter, break it down, and come up with a simple, reasonable, and probably accurate answer. If required, the asker is often intelligent enough to come up with a similar answer - or at least an equally plausible one. But they don't want to, so they ask me. And that's okay. If I don't want to think about, I'll tell them I don't know.

biotech··on Unix-like virtual shell inside browser
If you refresh the page 4 times, the page shows:

You can use "fortune" you know...

biotech··on The 4 Big Myths of Profile Pictures
There's a typo in the 2nd link. It should be:

http://www.funnyandjokes.com/top-country-and-western-songs-o...

biotech··on [dead]
So long and thanks for all the fish.

Clicking flag is also an option.

biotech··on Brian Williams: Why Jon Stewart Is Good For News
In TFA, Brian Williams mentions Stewart's takedown of Cramer in an interview in which 'the odds were stacked against Jim Cramer'.

This brought to mind a brilliant attack on the now defunct political show "Crossfire", in which Liberals battled Conservatives. In a nutshell, Stewart was brought on as a guest after attacking Crossfire on The Daily Show. Although Stewart is the guest on the show, he takes the offensive and puts the Crossfire hosts at an instant disadvantage. Here's the link: http://www.youtube.com/watch?v=aFQFB5YpDZE

biotech··on An Android Developer's Top Gripes (plusses and minuses)
"I'm looking forward to an Android-powered toaster oven any day now."

I assume that he's joking, but at CES (Consumer Electronics Show) this weekend, a company called "Touch Revolution" had a microwave with a touchscreen running Android. They also had Android on a Washer/Dryer and on a printer. Thankfully, though, I did not see an actual toaster running Android.

biotech··on The Elements - A Perfect Coffee Table Book for Nerds
There is an interesting piece about Plutonium. It seems that Plutonium Batteries were used in some pacemakers. Here's the link: http://www.periodictable.com/Items/094.3/index.qt.html
biotech··on Is College Really Worth It?
One out of two students fail to correctly analyze prose like a newspaper editorial

Okay, I don't know the source, but this statistic seems reasonable to me. In fact, I'd venture to add a couple more (based purely on my anecdotal experience):

- One out of two students can't structure a well-reasoned argument.

- One out of two students are unable to write a readable essay.

- One out of two students do not know how to prepare for and deliver a speech.

My problem is not the state of State Colleges. The problem is the state of highschools in America (although we are not unique with respect to some of these problems). These are all skills that can and should be learnt before college.

biotech··on Portrait of a Noob
you didn't know this is an older post .... until I started reading it. I don't always recognize these posts by their title.
biotech··on Why Basic is Still Relevant
As much as I dislike Basic in all of its forms, I have to agree with the author on this: it's a good way for Kids to learn programming. My agreement is partially based on my own experience: When I was 13, I wanted to learn how to program my 386 computer. I tried, and failed, to teach myself C++. I then bought a book on QBasic, and learned it. Afterwards I went back to C++ (well, mostly the C subset of C++ actually). I eventually had to come back to Basic in the form of Visual Basic, but by the time that happened, I was an adult and already familiar with several different languages.

At some point, my dislike for Basic brought me to the question: "What language is appropriate to use for introducing kids to programming?" Of all of the other languages I know, none seem appropriate. (And yes, people have suggested Python, but I'm not convinced.) Languages designed for children are dumbed down. Languages designed to meet the rigor of modern programming requirements have complexities that should be hidden for relatively simple operations. Sigh. I'm sure there is a better way out there, but to find it within the haystack that is the collection of modern programming languages is a formidable task.

biotech··on Online Development Studio - CodeRun
Cool idea, although I would like to see other languages supported. Currently it has C#, JavaScript, and PHP. To CodeRun's credit, these choices do span different takes on web development. I'd like to see some support for Perl and/or Ruby though.
biotech··on When and how to micromanage
When I hear someone defending micromanagement, it sends a shiver down my spine - I was once a victim of micromanagement. It sucked, and I quit. As did some of my co-workers.

This article, however, is not really a justification of micromanagement. Joel Spolsky suggests that you can't trust technical people who you didn't hire to do their job properly. I wouldn't call this micromanagement.

This strategy is important in any situation in which you are forced to let a technical person from another company do important work for you, and you or someone you know and trust has that expertise. For example, if you are a medical professional, and your mother is sick at the hospital, it is advisable that you carefully monitor her treatment by nurses and doctors, to make sure every little thing that they do it okay. Since you probably did not hire these people, and probably don't work with them, you can't trust them. So watch them like a hawk.

On the other hand, if you hire and train someone at your company but still cannot trust them to do their job, then you should re-examine your hiring process.

biotech··on CRU Admits to Dumping Raw Climate Data
we don't even know yet if the calculations in question here are not reversible.

??? If the calculations are reversible, there would be no argument. Everyone would know the base data.

I think you are kind of pushing it with your quicksilver example; I don't see how taking a single measurement is "averaging". If you mean to say that there is some built-in variance - well, that's true. But the fact is the variance itself can be established by other scientists if they know the model of thermometer that is being used. This is the essence of repeatability!

Now, imagine that a scientist had many temperature readings, and then they did some kind of complex calculation which involved regression analysis, statistical modeling, etc. These are the types of calculations that could easily have errors. Without the initial recordings, the results are unverifiable. That doesn't make them necessarily useless, but I wouldn't lean on those kinds of results.

biotech··on Craigslist blocks Yahoo Pipes
http://www.codinghorror.com/craigslist/
biotech··on CRU Admits to Dumping Raw Climate Data
there are conceivable cases were it seems natural to not keep the "base data" around.

Your example does not demonstrate this point. By taking the temperature readings in degrees C, you, in fact, are taking the "base data". Of course, you also should record the equipment that you are using to take that data. The height of mercury in your thermometer can be determined by the the brand of thermometer (including the Manufacturer and Model #), and the temperature reading given. Most scientific peer-reviewed research articles are very specific about the equipment being used.

biotech··on Notes about Go
While true, GO is not unique in this respect:

- C was noticed due to Bell Labs

- C# was noticed due to Microsoft

- Java was noticed due to Sun

- etc

biotech··on Linux: still better for coding
This article is about Linux vs. Mac for coding, not Linux vs. Windows.
biotech··on Ask HN: Is Linus creating AI Life?
I disagree. Evolution designed all life forms. Design and implementation are not separate for evolution, but that doesn't mean that design did not occur. Humans did not do (Edit: ..most of) the designing, but that also does not mean that design did not occur.
biotech··on Does math have big scary teeth or something?
I run screaming from courses that cover mathematical background I don't have

I had the opposite attitude when it came prerequisites in college. For example, I had no problem taking a course that required linear algebra, or signal analysis, or data structures (none of which I had taken; eg, I took Data Structures II before I). You pick up the missing pieces as you go. I actually had more fun that way - "Signal Analysis" was much more interesting when I already knew the applications!

BTW, I didn't do this on purpose. I was trying to get these classes in to fit my schedule.

biotech··on C++Next
Good webpage, I like that it isn't shy about getting right into simple examples of source code. More language websites should be outlined like this.
← PreviousPage 4 of 7Next →