HNHacker News
TopNewBestAskShowJobs

torial

342 karma · joined April 29, 2009

submissionscomments
torial··on A neurologist’s quest to solve Covid-related neurological disorders
For anyone with Long Covid, there is an online support group with a lot of resources available (it does use Slack). The group can be found at: https://www.wearebodypolitic.com/covid-19
torial··on Vigil: A programming language with eternal moral vigilance
I like python-like languages, but the deleting of code seems rather extreme (and unlike the personality I'd expect from a python-like language). Boo provided a super extensible compiler pipeline and metaprogramming (http://boo.codehaus.org/), while Cobra provided built in unit test support and contracts (with keywords of ensure and require) (http://cobra-language.com/) -- neither destroy your work (even if it is WIP).
torial··on How I Learned to Defrag My Brain
Do you have a file called "mule" for bad ideas?
torial··on Sites that pushed JavaScript to the limit
Not sure if this is the criteria -- but Facebook's Timeline feature was recently added and appears to me to be JS heavy.
torial··on Amazon to Unveil the "Kindle Fire"
If a consumer does research, as I did, and looks for comparison of the eInk of the Nook and of the Kindle, you quickly discover side by side photos of the Nook and Kindle and conclude that the Kindle eInk is better (it does use a more current version of eInk than the Nook after all). If you wanted color - you with w/ the Nook because that was the option you had out of the big two, otherwise, with the Kindle.
torial··on The worst program I ever worked on
The article and the comments here remind me of a great article on how to write unmaintainable code:

http://freeworld.thc.org/root/phun/unmaintain.html

torial··on Forty-five times faster at programming
Agreed, that was similar to what I've seen with other programmers and with my only education. I profited greatly by taking engineering courses for a while, and they teach how to problem solve. I've also observed that others who have had a similar experience do well with problem solving (but also those with math background, which is counterintuitive to me). Small sample sizes for both, but they have been pretty consistent.
torial··on Mining Wikipedia with Hadoop and Pig for Natural Language Processing
For others, a warning. There isn't any technical discussion, it is really just a demo.
torial··on Simple Truths Smart People Forget
Perhaps it is a new kind of SEO?
torial··on PostgreSQL performance considerations
It could be my understanding of what was going on was incorrect, but I'll tell you what I observed, and please let me know if there was a better way to fix it. I found the easiest way to do so was just to avoid using Views. And frankly, wasn't surprised by this, as using UDFs w/ SQL Server also had really bad perf, so I didn't question that a particular feature was badly performing.

Ok, lets say you have two large tables: Sentences and Annotations, and you make a view that joins those, lets call it vwSentencesDetailed. Then you do a query like:

select * from vwSentencesDetailed where srcID = _srcID

Where srcID is an indexed field in the Sentences table that will let you get a narrow subset of the data. Let's say the particular file it came from....

The performance characteristic I observed was that the it behaved like (loosely):

select * from (Select * from Sentences s Inner Join Annotations a on a.sentID = s.sentID) vw where srcID = _srcID

rather than like:

select * from (Select * from Sentences s Inner Join Annotations a on a.sentID = s.sentID where srcID = _srcID) vw

I believe that SQL Server makes such a performance optimization, but Postgres does not.

torial··on PostgreSQL performance considerations
Here's a blog-like post (really a Facebook Note) I made about the differences a while back:

Having the right syntax for databases is critical. Here's the moderately optimized SQL for two DB systems for two different updates:

SQL Server

Update tok Set spid = est.sid FROM @Tok tok INNER JOIN @eST est ON tok.cs = est.cs

For SQL Server -- using the table alias for the update is critical for good performance. Another trick for SQL Server can be to do something like (which is recommended by the SQL Server team -- and it yields excellent speed improvements):

Update tok Set spid = est.sid FROM (SELECT * FROM @Tok) tok INNER JOIN @eST est ON tok.cs = est.cs

Postgres

Update _Tok Set spid = est . sid FROM _Tok tok INNER JOIN _eST est ON tok.cs = est.cs WHERE tok.cs = _Tok.cs

For Posgres, the performance critical line is the addition of the WHERE clause to bind the Update table to the FROM table. It makes sense -- once you understand (from the SQL Server perspective) that it is equivalent to using the alias in the Update clause

torial··on PostgreSQL performance considerations
>MySQL outperformed Postgres.

For my part, I thought Postgres was slow until 5 months ago (when I came from a port from SQL Server).

Then I learned something! The default install of Postgres is slow (at least on Windows). And on benchmarks against the baseline SQL Server port I had, it was about 2x slower. BUT there were a number of things I could do to make it faster: a) Use the EnterpriseDB wizard for tuning Postgres --> resulted in a 2x to 3x performance improvement. b) Adjust the way I did updates (there is a way to get Postgres updates to be fast, it just takes some massaging) c) Get rid of views when possible -- I found that certain query compilation optimizations I had taken for granted on SQL Server weren't available.

Doing all this resulted in a system that performed faster and w/ less RAM than SQL Server(and I had spent a bunch of time tuning the SQL Server perf in the first place!)

torial··on Ask HN: Why isn't C# recommended more often?
C# is a decent language to use, and has evolved rather rapidly over the last few years. I remember in the 1.0 (and even PDC days) when C# came out as essentially a Java clone, and to find out about how to use classes I'd find the most help from Java documentation! Now it is a different beast, and has become more usable, and lots of the changes have made it more useful and faster programming.

Since 2.0 VB.Net has started falling behind, for example not getting the "yield" convenience that C# got. So on the MS provided languages, C# is continously getting better than VB.Net, and you'll hear even less advocacy for VB.Net!

That said, the .Net framework can be used with more interesting languages (my preferred one is a python-like language called Cobra: www.cobra-language.com) and the primary loss in the equation is the Visual Studio environment (although MS is making it easier to write language extensions in 2010 version). So you can use an excellent framework with many other languages.

So then what you are left with is the language itself. I can't speak for others, but the script-like syntaxes speak to my brain more naturally than C-like languages, and I have found that I am most effective in thinking in a language like python than I am with either VB.Net or C#.

Part of the appeal that python/ruby have is they typically come with the non-Windows OS a person might use. For instance Python comes out of the box with OS X and most *nix OSes.

You are right on the abstracting what you've learned. It is true for a general language family, and less so (but still helpful) when you cross families. By that, if you stay in the procedural/OO realm of languages, you'll notice lots of similarities, but if you branch out into functional languages it will be very different.

torial··on Will high reputation in Stack Overflow help to get a good job?
Last year when I was interviewing, I didn't mention my rank (which is so-so), but mentioned that my answers could be found, and if they wanted to see how I answered, and determine my competence, they would be able to do so. I believe that for at least one set of interviews making the additional information available helped me to get further.

But that was not my "rep"...

torial··on Which programming language do you want to learn next?
Languages affect how you can express certain concepts. More expressive languages can be useful in new programming concepts. A personal example: Many years ago I had to program in VB.Net, and never understood polymorphism until I dabbled in Python and played around with some projects in that language. VB.Net lets you do Polymorphism, but it doesn't assist you in learning it (at least for the way my brain is wired).
torial··on Which programming language do you want to learn next?
Cobra - I've dabbled with it to see that it works nicely with my brain, but not enough to really know and grok all it has to offer.

The initial draw is that it is a python-like language for .Net (important since my day job is in .Net). And while I've dabbled with Boo and IronPython, Cobra seems to have removed most of the syntactic worts that I found w/ Python, as well as a few other features.

In particular, as someone who hasn't really done automated unit testing or contractual programming, I'm drawn to the fact that support for unit testing and contracts is built in. I like the python-like syntax as I find it easiest to learn new programming concepts in (which I can then generalize to my day-to-day work).

torial··on Hiring Great Developers: The Pre-Screening
At my previous job (which I enjoyed greatly until the president embezzled funds and ran off with a woman), I asked to do a programming task so that I could prove my skill and ability to do what they needed.
torial··on Hiring Great Developers: The Pre-Screening
The company I work for has prospective developers write something that parses Java property files, and sample files are given to them to examine. It is amazing how many are unable to write something to do this. Additional small-grained programmer behaviors are also discovered besides if they can code the answer: do they comment their code, do they structure it, name it in a thought out manner or use X,Y, and Z as variable and function names? Do they use exception handling? It is a pretty useful test and filters out people who have head knowledge but inability to do a simple task, or have impressive resumes that mean nothing.
torial··on The humble programmer...
I find this quote to be interesting...

"On the contrary: the programmer should let correctness proof and program grow hand in hand. Argument three is essentially based on the following observation. If one first asks oneself what the structure of a convincing proof would be and, having found this, then constructs a program satisfying this proof's requirements, then these correctness concerns turn out to be a very effective heuristic guidance."

Anyone else think that TDD is a close approximation of what Dijkstra was talking about in the quote? FWIW - I say this as a non-practioner of TDD.

torial··on Superfast SSDs are coming, but will they be used the right way?
Essentially the pagefile.sys (which at a high level is a massive memory mapped file that Windows uses for virtual memory) gets stored on a flash drive. It very much helps the overall responsiveness of a computer that doesn't have enough RAM to do without a pagefile.sys -- especially if they have a slow hard drive (I inadvertently installed Vista on a slow computer and this helped quite a bit).

ReadyBoost is different from PreFetch (they are features you can turn off/on independent of each other) which I believe you are referring to when you mention "pre-loading". The wikipedia article is decent: http://en.wikipedia.org/wiki/ReadyBoost

torial··on Google Sues The US Government For Only Considering Microsoft Solutions
I would love a different way of handling Government RFQs: If your company engages in income shifting to avoid paying taxes, you are ineligible for government contracts.
torial··on Google to bring Dead Sea Scrolls online
I was hoping they'd be using advanced imaging for text not visible to the naked eye, and was excited to see this paragraph: "The refined images were shot with a high-tech infrared camera NASA uses for space imaging. It helped uncover sections of the scrolls that have faded over the centuries and became indecipherable"
torial··on Six scientists tell us about the most accurate science fiction in their fields
For anyone that picks up the book, it is worth slogging through the boring first quarter of the book. After that point, each chapter gets better than the previous.
torial··on Ask HN: Tools of the trade, 2010 edition
I've had good experiences with http://www.bugnotes.com/home.php for bug tracking. Also provides exports of all data in an SQLite DB or in CSV format if desired.
torial··on Potentially Habitable Planet Discovered
FWIW, your math is off you state: "35,000 miles per hour / 60 = 583 miles per second."

Really, this would be: 35,000 mph / (60 minutes per hour) / (60 seconds per minute) = 9.72 miles per second.

Then just decrease the distance traveled by a factor of 60, so instead of 386 billion miles traveled by V2, it would be about 6.4 billion miles.

torial··on Google Translate might not be as good as people thought
For a great discussion / informal research on comparing online translation tools (primarily Google, Bing, Yahoo) on quality, see: http://www.tcworld.info/index.php?id=175

The interesting factor was when they took brand identity away as a criteria given to the graders of the translation Bing and Yahoo's quality scores rose.

torial··on Cuil Goes Down for Good
"IMHO DDG's success stems from the fact that yegg listens to the users"

I once contacted Cuil about some worthless search results, and got a standard reply asking me to be patient since they were a small company. But there wasn't any hint in the email that they would actually address the issue, so drastically reduced my use of them and never bothered to contact them again. Listening to users would have probably helped if my experience indicates a pattern.

torial··on I was bored so I did a Flickr Instant Search
I did a few searches... land, cobra, corn... and really didn't get many results that matched those words. Is that just how people are tagging them w/in Flickr?
torial··on Author Simon Singh Puts Up a Fight in the War on Science
"I don't think scientist are so much hurt as lost: when you have years of evidence pointing in one direction, and someone replies with a completely unscientific argument (take a lot of pseudo-science for example) what is he supposed to do?"

My suggestion as to what the scientist is supposed to do when encountering a completely unscientific argument is below. Please note, I am not trying to respond to any of the other aspects or questions you asked -- this "simple" response became way too long as it is :-)

PREPARE AHEAD OF TIME: A. Learn to communicate. A lot of life is dealing with miscommunication. It seems scientists as a group have the same issue with miscommunication that software developers generally have. This is very important where the science is critical for impacting public policy decisions. Especially, learn to listen, so that the metaphors and analogies that are guiding the incorrect thinking can be ascertained.

B. Expect that as soon as you are using science to advocate for public policy changes scientists will have opposition. Actually, the science part isn't the prereq, it is the "advocate for public policy changes". Lots of groups who advocate for public policy changes get villianized. It sucks, but it should not come as surprise to anyone who enters into that arena. If you (generic) want to be left alone, keep your head low. If you (generic) want to stand up for something -- you will be opposed.

REACT: C. Educate. In my opinion, the scientist is supposed to educate people in a simple a terms as possible. I believe scientists used to view this as part of their duty and I believe it has been something that has been generally lost (fwiw I have a 3 volume set of articles that great scientists such as Einstein and Bohr wrote for lay people that span over two centuries... often the articles were published in newspapers.. I have loaned it out, otherwise, I'd list the set for those interested). To educate the lay people, write articles for news papers or online venues. Engage critics with openness, because in doing so professionalism is shown and confidence is built up.

D. Be respectful. Don't refer to people who disagree as deniers or anti-science or ignorant. Give them the benefit of the doubt. Figure out the faulty metaphors they are employing and reveal them. At the worst, agree to disagree. I have recently encountered a scientist doing exactly this, and have been very impressed with him (and I expect I disagree with him on some fundamental beliefs), but I have contacted him to encourage him in what he is doing, and even sought his feedback on some of my own interests.. because I can trust him to be methodical AND respectful. Respect opens up the possibility for long term dialogue. Also, keep in mind that your audience isn't only the person asking questions or postulating absurd theories. It includes the people who are undecided watching the debate (or reading the news article, etc..) as well as the minority / subset of the opposing view who are willing to listen.

FOLLOW UP: E. Make a point of gathering objections, alternative theories etc, and having the data that refutes them readily and publicly available. This is just a tactical confidence building move.

SUMMARY: Please note, I'm not encouraging necessarily that a single person do all these things. Happily scientists do not work alone, are part of associations, etc.. and collectively they can do these steps and maintain/gain/improve a good footing with the public. And doing so in a respectful way will gain more good will (even from people who disagree) than you might imagine.

torial··on The 99% Rule (nsfw)
Basically it includes some screenshots of the supposed effectiveness of the Airport scanner... e.g. a nude woman, then has the images inverted. I didn't read the article too closely, I'm not sure that the author understands those images are from an image catalog that has nothing to do with the airport scanner, but have been misrepresented as being so. Can't provide citation, but saw that on an earlier article from HN about a month ago.
← PreviousPage 2 of 5Next →