Project / Business Idea
Simple website mirroring / caching
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:
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.
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.
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.
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.
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.
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.