lostmypw
I've had been cleaning up a mess of code that I've ported from a book whilst changing parts to fit my needs. I've got stuck on the process of cleaning up and now I'm going to reread the book and try to understand the concepts fully to then write my own code based on my understandings.
Even though I already considered doing that I still felt completely demotivated. The discussion here and the quote from the zen-book made me reconsider my options and think about what the correct next step would be.
I'm feeling relieved.
I'm using Linux myself full-time, but for flash games I might even consider Linux irrelevant if there is no way of getting good performance. The by far biggest part of the audience still uses windows and that probably won't change for quite a while.
I'm wondering this because I might be using the keyboard and touchpad in a different way than others, but naturally for me, as in: the path of least resistance.
For scrolling, my right forearm points at the touchpad in a 45 degree angle, my middle finger touches the pad and I move my whole hand at the wrist to scroll. So all the middle finger does is touch the pad and raise again.
I use my right index finger for pointing. To move the cursor up & down I do the same as for scrolling, only with my index finger. For left & right I do what would look like pushing a marble to move the cursor left and the reverse to move it to the right. So my index finger really points (mostly) to the left side (depending on forearm position) and expands in it's natural path.
Regarding heavy keyboard use you often hear about the emacs pinky when somebody over years strenuously used their pinky to hold the control key down. Well, I've noticed that I press control with the finger nail of my pinky and alt with the nail of my thumb. I'm sure it's unusual and it looks a bit funny, but it's completely natural to me and not strenuous at all.
I wonder how you do those things differently.
I wonder if it's just an illusion or if there really also is an influx in me-too submissions. Not that I'm judging any submission in particular, but there is clearly a difference in usefulness and novelty when you compare them.
To me, the hacker/cracker thing is just a lost battle and thus a big waste of time.
That being said, I'd only use "hacker" in the original sense, i.e. the hacker philosophy about exploring, learning and teaching. To me, a person with no clue about cars that learns to fix it themselves is by definition a hacker.
You all too often see people pulling the e-peen thing on the net, which I find sad, as it's also just another waste of time. The "correct" use of the term hacker is just a pretense imho.
In the same vein of whining and bitching: has there been another influx from reddit lately or is the cooling effect (or what it's called) only gradually noticeable? I've noticed that I'm more disappointed with the content and comments on HN lately, even more so on reddit obviously.
To understand the importance of closures it might be interesting to look at this poster[1]. Look at the node in the top left that says "Functional programming". Every paradigm that descends from that node depends on closures. THAT's how important they are.
Late to the party here, but over at the other SICP-related thread that's on the frontpage right now I've linked to an updated version of SICP where an enthusiast has created a pdf with greatly improved legibility, formulas set with tex and figures drawn with vector graphics.
Description:
The typography has been modernized for better on-screen legibility
and comfort. All the mathematics is set in proper TEX, and figures
redrawn in vector graphics.
[1] http://sicpebook.wordpress.com/2011/05/28/new-electronic-sic... Concepts, Techniques, and Models of Computer Programming (Van Roy
& Haridi) is seen by some as the modern-day successor to Abelson &
Sussman. It is a tour through the big ideas of programming,
covering a wider range than Abelson & Sussman while being perhaps
easier to read and follow. It uses a language, Oz, that is not
widely known but serves as a basis for learning other languages.
[1] http://news.ycombinator.com/item?id=2848027I've started reading "The Haskell Road to Logic, Maths and Programming", maybe that's something for you or some other lurker here that would like to improve on math.
There is a review [2] that gives an interesting impression on the book. The other ones at amazon might also be interesting.
The table of contents + first chapter is available as a postscript file[3]. This should give you an idea what to expect from the book.
[1] http://www.amazon.com/Haskell-Logic-Maths-Programming-Comput...
[2] http://www.amazon.com/review/R3CL50MCVEO7UA/ref=cm_cr_pr_per...
I had been looking for opinions regarding CTM vs SICP to choose which to read first and I've found two postings [2][3] from a mailing list to be very helpful in that regard. Also a comment on HN[4].
I do plan to read SICP sometime in the future as I'm already interested in Lisp, i.e. I'm reading Practical Common Lisp, On Lisp, deferred Paradigms of Artificial Intelligence Programming for later and plan to read Lisp In Small Pieces, which covers compilation.
I've also stumbled across PLAI (Programming Languages: Application and Interpretation)[5] by Shriram Krishnamurthi which seems to cover similar topics, and I plan to dive into that sometime in the future as well. If someone can tell where PLAI stands in contrast to SICP or CTM, that would be very helpful. Ah well... I found an opinion [6] on that too.
[1] http://www.amazon.com/Concepts-Techniques-Models-Computer-Pr...
[2] http://lists.racket-lang.org/users/archive/2008-February/022...
[3] http://lists.racket-lang.org/users/archive/2008-February/022...
[4] http://news.ycombinator.com/item?id=1119132
[5] http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/200...
[6] http://schemers.livejournal.com/584.html?thread=1864#t1864
So this is the width of the paragraphs. I think it would still be useful if you could disable the automatic line breaking to provide your own formatting. I think there is a middle ground between the two regarding readability.
EDIT: Of course you can disable the automatic line breaking as I've done exactly this by indenting the whole post with 4 spaces, except for the links. But that also changes the font to the monospace family.
Talking about stuff like this is bound to sound esoteric, I think. So
I want to put this disclaimer upfront that I detest esotericism.
I can only assume that your problems are similar to mine, so I can
only suggest what works for me. And that might not completely work out
for you in the end, but it's worth a try for sure.
Concentration: The problem of not being able to keep distracting
thoughts away can be lessened with meditation. I came across this
suggestion in the book Pragmatic Thinking and Learning [1] and have
found an excellent CD to listen to called Guided Mindfulness
Meditation [2] by Jon Kabat-Zinn.
I tend to try to avoid meditation because for a while I seem to do
fine and so long as I do fine it just feels like a waste of time for
me. Time that I could invest reading a book. But eventually I always
end up having an extreme amount of distracting thoughts to the point
that I cannot learn anymore. I've now had this problem crop up often
enough with meditation always helping that I'm now a lot more willing
to spend the time and meditate. I want to emphasize that for *me* it
was necessary to get to the dead end and suffer from it to become
willing to change something. Maybe you can relate.
Structure: Well well, the way you write it sounds a little bit rigid
to me. I tightened up imagining all that structure you strive for and
I'm thinking you should relax a little bit. Or at least I should (and
do). So maybe we are different in this regard.
I do think you should lay back a bit and think about what really
interests you deep down in your heart. I assume you've been working
too much on hopelessly boring stuff, because with that I can relate
again. I've been working a little bit on a little server in erlang but
somehow at some point I couldn't bring myself to working further on
it. Well I could, but all the time I felt something was wrong.
As I'm happy to learn interesting programming languages and have heard
all the hype about lisp for so long (I'm looking at you, pg) I finally
gave in and started reading Practical Common Lisp [3] and now
Paradigms of Artificial Intelligence Programming [4] and what can I
say. I see now that what disappoints me in erlang but also in other
languages is having forced upon me one paradigm and/or a rigid set of
rules. In the case of erlang that might be perfectly fine as the
language can make certain guarantees that way. I've realized though
that I would much rather enjoy the lisp-ish freedom while molding a
solution. So this is my story of disappointment and fresh wind.
One quick addition in the end: In an xkcd comic [5] there is a
description of a solution (see the alt-text of the image) that delays
access to certain websites (like reddit, hn for me) but does not block
them completely. It just delays the access (-- more discussion on the
xkcd blog [6]). This serves the purpose of destroying the notion of
instant reward these stupid little bits of new information might give
you, however irrelevant they may be. I've found this to be helpful for
me because sometimes in the past I've procrastinated the hell out of
the day. I got fed up with repeatedly spending hours with unproductive
stuff and feeling sorry for the time in the end. See the pattern? I
needed to run into this problem several times before I decided that I
have to change something. I don't want to make some point here. I just
find this pattern interesting.
What I have done is I have taken an existing little chrome extension
called delaybot which by default only delays for rand(1.5) seconds and
changed the delay to 30 secs. This has worked wonders in the
beginning. I say in the beginning because I've now disabled the
extension as it is getting in my way now. No, this is not the
procrastinator disabling a helpful little tool. :-) I've found that
since I've picked up meditation again I didn't run into this problem
anymore anyways. I also tend to just bookmark away a lot of actually
interesting discussions to read them later, which of course I never
do. I do this bookmarking and closing of tabs because I tend to
accumulate too many tabs easily otherwise.
Not all is great though, the article made me realise that I'm a little
bit too hard with myself when I'm excerting will-power. I try to go
through the mentioned lisp books fast (as there are more to come
still) and at some point I notice that I can't bring myself to read a
lot more at that point. To me this looks similar to the cookie
experiment where a group of people is less productive after excerting
will power in a previous task.
So, to conclude: Even if not all is roses I can say with certainty
that meditation is the single most helpful tool to increase my
productivity. It changes me from being helpless to being more in
control of what I'd like to do with my time.
Regarding your lack of passion: Man, search your feelings. If you find
something that really interests you, you probably wouldn't think much
about what other people could do better than you. That AI book [4] I'm
reading? It features ancient techniques at the point where I am right
now but it's still a great read and I'm learning a heck of a
lot. That's what keeps me going. Also, lisp.
Phew, that was long.
I would love to hear feedback. :-)
[1] http://www.amazon.com/Pragmatic-Thinking-Learning-Refactor-P...[2] http://www.amazon.com/Guided-Mindfulness-Meditation-Jon-Kaba...
[3] http://www.gigamonkeys.com/book/
[4] http://www.amazon.com/Paradigms-Artificial-Intelligence-Prog...
[6] http://blog.xkcd.com/2011/02/18/distraction-affliction-corre...
EDIT: I've changed the formatting because it renders with long lines otherwise.
Coincidentally, I just happened to come across this quote in Peter Norvig's "Paradigms of Artificial Intelligence Programming".
My suggestions:
- Erlang: Erlang & OTP in Action
- (Common) Lisp: Practical Common Lisp
- this one can also be read online for free[1]
Disclaimer: Haven't finished either of them but they've been great so far.