Project / Business Idea
Simple website mirroring / caching
static-cache
cache.static.com
We run wget recursively (or something like it) on a website
and serve the static html files.
Manage dns redirection.
Allow enough editing for changing links to point to the correct place.
"Gihub fork for websites"
(Not really, but kind of fun)
i use ugly languages
here is a list of languages that i’ve found myself considering for upcoming projects:
- perl
- php
- c++
- shell
- erlang
- prolog
- tcl
i’ve always thought that i was interested in elegance, but i find for the stuff
that i’m thinking about that it’s easier to get started with something without
concern for elegance and then grow it organically from there.
i find that the languages that let me "get started" with the least amount of
mental effort are the ones that have a focus on getting things done quickly
but aren’t ones that any one thinks of as beautiful or elegant.
as a result, i don’t know that any project that i do will end up as "good"
code. i’m a little terrified of that. but is it better for me to get started
and end up with messy code, or to not start because i want things to be correct
or good?
i recognize that for many this would be a false dilemma, that is, that they
can think and work in a more elegant language without trouble. and i feel like
i want to be able to work in a language that looks and feels cleaner. but when
it comes to getting things started, i find that the tricks that these languages
allow give me a boost somehow toward starting initial creation whereas prettier
or more "correct" languages cause me to feel blocked.
maybe that’s because i feel like i have to be more structured to use the
"better" languages, whereas these other languages will let me just pour out
code that does something, and then work around and try to clean it up after
i’ve got something out there.
update:
here is a comment i posted on hacker news to clarify some thoughts:
here are the alternatives that i have seen posited as being cleaner / more correct for the ones mentioned:
perl -> python
php -> ruby
c++ -> java or go
erlang -> haskell
tcl -> python or scheme
prolog -> lisp
shell -> ?
these aren't so much my designations, as what i've seen in various references on the internet over the years.
confer for citations of peoples elegance / cleanness opinions:
tcl war usenet posts
perl vs python wars
c++ - paul graham's article on what languages solve,
rob pikes reasons for creating go.
erlang - damian katz "what sucks about erlang"
prolog - see above (re prolog syntax in erlang)
tcl - eric raymond's comments on tcl and perl vs python
shell - no citation, but i think defensible
in almost every case i would face the mental blockage mentioned if i were
to try to use the language to the right, compared to the one on the left side.
hacker news
i just submitted my first self post to hacker news. it’s been an interesting
day watching the response. the comments caused me to realize a lot more about
what makes an engaging and defensible post. i will need to include a lot more
detail and anticipate reactions to have enough detail to not annoy people.
i got more views today on my blog than i probably have ever combined. i think
if i could write one good article a week, i would be happy with that. i have a
lot of work to do to come up with decent presentation. today’s post was sort of
just a quick thought that i wrote and then thought, hey that might be
interesting. however, it would have been helpful if i had filled it out
significantly.
so far this has been a pretty decent experience at internet wide peer review.
it was probably a perfect link bait title, if i had had enough substance to
go with it, it would probably have sparked a better discussion. as a topic it
probably was a troll, although i didn’t realize it at the time. i basically got
lots of people upset calling languages ugly, even though i stated that those
were the ones i was thinking of using.
i will try to make my next submission a bit more worthy. hopefully i’ll still
have some cred after this one. i’d like to get more of my stuff up on github. i
really would like to actually be producing cool stuff. now that i’ve gotten
people to look at my blog, i’d really like to have some projects worthy of
being looked at.
projects website
i’d like to make a project website. i’ve been trying to decide whether to use
wordpress or drupal for a general project site. i’m kind of leaning toward
drupal just because i’d like to have a chance to get to know it, and i trust it
a little more for a personally hosted site than i do wordpress. however, i’m
pretty sure that i could convince wordpress to work the way i want it to also.
project languages
i feel like i really want to become expert in one language, to the point that i
have something to offer as far as good code or useful projects. i’d actually
probably prefer to have useful projects or utilities to just good code. i’m
okay with code that is messy but useful.
i’m not sure what the best language to use for creating useful projects is.
probably good scripts would be useful projects. some kind of gui tool that did
something useful would be cool. i could use tcl for useful gui scripts.
otherwise, for sysadmin stuff perl is probably the best bet, although if i
wanted to concentrate, tcl could do both.
maybe there’s something where python would be the right language, certainly if
i were wanting to deal with ai or data mining type stuff, python has a lot of
momentum right now, but i don’t see how those would be easy to turn into tools
really.
perl has about the best text processing, tcl is simple and extensible. tcl is
also way easier to deploy than any other scripting language. i wonder if i
could do the kind of tools i would want in c++ if i just used it as kind of a
script style language rather than going all structured. if i just let myself
use stl stuff and did things as quick and dirty as i could, i wonder how much i
could accomplish and how much code it would end up being. i still think that
perl or tcl would probably end up being a lot less code, but c++ would make it
easier to produce binaries that could just be downloaded.
i could use go as another compiled language, but i’m not sure i know it well
enough to make it useful yet. i wonder how java would work for creating
utilities. i’ve written before that i think a lot could be done just using perl
and java. i think most application areas and tools could be done pretty
successfully with one or the other of those. they wouldn’t work i suppose for
intense graphics or hardware interaction, but for any kind of application
programming or data processing, or scripting, i think those would cover a
lot.
python and c++ also would make a good pair. usually when i mention python and
c++ i immediately think of adding haskell, but i wonder if prolog could be
substituted. maybe once i get done wih prolog, i’ll have enough experience
thinking in terms of lists and stuff that haskell will be more approachable.
neither python nor c++ has very good text processing abilities, so i always end
up feeling a little constrained when i think of concentrating on c++ and python
and the languages of choice. however, i feel also feel limited by other
languages in other ways, maybe by fear of complexity.
i wonder if i concentrated on perl and java if that would be sufficient in my
life to do the kinds of projects that i want. i could run clojure on top of the
jvm to leverage java libraries. between perl and java there is no application
problem that couldn’t be solved. however, i’d feel like i needed to be oriented
toward enterprise, and i don’t really want to have that as my emphasis.
so scripting languages are where i feel most comfortable, in that arena the
options are perl, ruby, python, tcl, php, javascript, lua. of those, i feel
most competent at javascript, perl, php, and tcl. i also like lua, but i
basically have no experience in it.
i wish i actually knew enough c++ to do real stuff with it. but i don’t know
reasonably how to get that experience without expending a lot of time, and i
don’t know that i’m willing to put forth that kind of effort.
is there a valid case for perl, java, tcl, and php? is there too much
duplication there? java seems to be trying to become c# with its extra
complexity, but doing a bad job of it.
thinking and language constraints
today, talking with a friend about how our brains (his and mine) work
non-linearly might actually explain why i feel constrained by more structured
languages. i basically think in graphs, and it’s easier to get everything out
in graph form first and then collect things into linear form after the fact.
so the fact that python is essentially in outline form, means that mentally it
is crosswise to the way that my brain initially works. i wonder if there are
languages that would more closely match the way my brain works.
i’m not sure if the less structured seeming languages actually are less
structured, but for some reason they feel less constraining.
reasons i feel constrained:
- needing to install heavy environments to start
- language oriented structure
- worry about not being able to handle increasing complexity
those last two are basically opposite sides of the same coin, and i don’t know
a way to not end up with one or the other. maybe clojure has the flexibility
and capability to handle complexity to meet both of those. i’m not sure why i
don’t feel like tcl can handle programming in the large. maybe it is that i
don’t think i can handle programming in the large using tcl, not that a more
competent programmer couldn’t.