2,028 karma · joined October 3, 2009
- http://hackthology.com
- https://github.com/timtadh/
- https://twitter.com/timtadh/
- https://plus.google.com/u/0/109232399292705173597
- https://scholar.google.com/citations?user=n_se9mMAAAAJ
[ my public key: https://keybase.io/tadh; my proof: https://keybase.io/tadh/sigs/ec8yqyArGNcSDjXNT5rSoYRp-H0vMM3lxVmlY4bpcUQ ]
1. Easy to use
2. Have standardized syntax for flags across languages
3. Be easy to maintain
4. Be well documented so that I can use them a year or 5 years from now.
My applications often have complex syntax. For instance I work in frequent pattern mining, the basic syntax for some of my programs looks like:
program [global options] -o <output> --support=<int> \
<datatype> [data-type-options] <path-to-data>
<algorithm> [algorithm-options]
<filter-chains>
<logging-and-serialization>
Being able to tightly control how the sub-commands chain together is important to me. Support for both short (-s) and long (--long) options make it easy to write both one off commands and self documenting commands in scripts and makefiles.I write programs in more languages than just Go, and the programs in Go need to work the same way the programs in other languages work. That means GNU option syntax, which is the superior syntax for my needs in any case.
I should have included a section on the limitations of embedding. This is what happens when I don't stew on the writing for a day or two before putting it out there! I will have to make a pass through the article and clear up the terminology. Thanks for the feedback!
> Historically, there's been things like the original Andrew filesystem
> module: a standard filesystem that really wasn't written for Linux in
> the first place, and just implements a UNIX filesystem. Is that
> derived just because it got ported to Linux that had a reasonably
> similar VFS interface to what other UNIXes did? Personally, I didn't
> feel that I could make that judgment call. Maybe it was, maybe it
> wasn't, but it clearly is a gray area.
> Personally, I think that case wasn't a derived work, and I was willing
> to tell the AFS guys so.
So, the ZFS case is not cut and dried either way. It would probably take a court case to clarify the matter as it is in a "gray area". To me, there seems like there is a good chance than ZFS and the Linux Kernel can be distributed as a combined work (But I Am Not A Lawyer!). git diff --word-diff=color
provides a really nice word diff with coloring similar to this project. Just setup an alias in your global gitconfig: [alias]
cdiff = diff --word-diff=colorSadly, this means that the bureaucracy will increase and become more petty. People will become more concerned about protecting their jobs and less about doing them well. Because, government work on a resume will become a "bad smell" making it hard for government workers to find a job in the private sector. Who wants to hire someone with a fake PhD? Only the government.
Guile is the GNU Ubiquitous Intelligent Language for Extensions, the
official extension language for the GNU operating system.
Oh, so it is a language for writing plugins in. Kinda cool, but Python seems
more newbie friendly than scheme for the same purpose. Might have a niche for
some more scientific applications...Compared to the new site:
Guile is designed to help programmers create flexible applications that can
be extended by users or other programmers with plug-ins, modules, or
scripts.
That sounds much more general purpose. Maybe you would write the whole
application in guile not just part of it.Furthermore, without individuals who are largely interested in knowledge discovery, I maintain that progress would be slower. Someone had to desire to understand cells and know about x-ray crystallography in order for it to be applied. I picked on this example because it was brought up in the article. But, by the same token, people interested largely in technological improvement are also needed. It takes a lot to move a discovery from a lab notebook into a useful state.
I also categorically reject the notion of technology being a thing unto itself that perpetuates itself. Humanity is the engine of innovation and no amount of innovation is likely to change that any time soon. All technology and all machines are ultimately at the service of humans. We are not in the service of the machine. We are dependent upon our machines but are machines are not free from us. This is why post-apocalyptic stories of AI destroying humanity remain popular. We are uncomfortable and fearful of our own dependence.
The fear of both scientists and corporations is we fundamentally do not know what the world looks like without government involvement. There is no roadmap for a transition. There is no telling who would win and who would lose. In the past several decades major research institutions both public and private have all had shrinking "time-horizons" for their research. The time-horizon is when the research (if fruitful) could result in technological advancement. In the short term a transition to industry funded research would only accelerate that trend.
In conclusion, science funding and science in general is deeply dysfunctional right now. A lot of time is spent of obtaining and keeping funding. Our funding system has likely caused a over supply of entry level researchers which has fueled low wages. But at the same time, we do not know of a better way to fund research at the moment. If non-governmental funding is better there is no real way to try it that won't cause massive structural unemployment and pain throughout our economy. As much as I would love to see the scientists I know receive good wages for their important work I think it is about as likely as properly paying pre-school teachers.
all hail <esc> as caps lock!
for on that day,
all shall be in normal mode,
on the day of text
one will `export EDITOR=/usr/bin/vim`
-- from the book of vim 2:12There is furthermore, no way to build release packages that people can just install. There are no tarballs or jars or anything else that can be simply downloaded and depended on. So not only is everything tied to my github account I can't even release stable versions in any sane way. I never thought I would say "Man Java is really doing it right" but in comparison to Go it is!
I love writing in the language, but I solve this problem by mostly depending on only stuff I have written. That way I can at least control the problem. I have even started using submodules again! At least that way I can pin my dependencies to specific versions without having to use a third party tool. Insanity!
In conclusion, it is a nice idea to think of the doctors as "business people" but the reality is there are fewer and fewer who are. Most are now employees in a large corporate system.
(also +1 to the sibling comments)
If Sun had more tightly controlled the marketplace for these things I think the whole ecosystem would have been more robust.