moved a lot of stuff around

master
muflax 2012-06-23 20:21:43 +02:00
parent 8c47154e66
commit f162f22124
62 changed files with 205 additions and 335 deletions

16
TODO
View File

@ -1,21 +1,23 @@
* content [1/8]
* content [2/7]
- [X] universal RSS
- [ ] portal
- [-] portal
- [ ] rss feeds
- [X] move stuff to blog
- [X] merge more stuff (experiments etc.)
- [-] disown bad sites
- [X] upper bound implemented
- [ ] are *all* condemnations necessary? think more.
- [ ] merge more stuff (experiments etc.)
- [ ] start gospel
- [ ] start let's read for reviews
- [ ] some portal for all sites
* layout [1/5]
- [ ] fine-grained episteme tags
* layout [2/6]
- [ ] better handling of footnotes (parallel column?)
- [ ] search bar prettier
- [ ] next_prev for first page float broken
- [X] disown site
- [ ] better merged -> moved
* technical [0/3]
- [X] better merged -> moved
- [ ] smaller logo
* technical [0/4]
- [ ] imply all_sites without -s
- [ ] fork nanoc, move site config there
- [ ] cache compilation better

View File

@ -16,7 +16,7 @@
[Dawrst]: http://www.utilitarian-essays.com/
[Devil Pascal]: http://squid314.livejournal.com/301735.html
[Eyercize]: http://www.eyercize.com
[Find the Bug]: http://www.findthebug.com
[Find the Bug book]: http://www.findthebug.com
[Francois Caplan]: http://francoistremblay.wordpress.com/2011/12/07/bryan-caplan-repeats-same-nonsense-but-this-time-with-more-arrogance/
[Fyfe Purpose]: http://atheistethicist.blogspot.com/2009/07/purpose-to-life-choosing-purpose.html
[Happiness Stochastic]: http://www.psych.umn.edu/psylabs/happness/happy.htm
@ -231,4 +231,4 @@
[sutra]: http://sutra.muflax.com
[dlog]: http://daily.muflax.com
[RSS]: /rss.xml
[Universal RSS]: http://muflax.com/rss-merged.xml

View File

@ -4,7 +4,7 @@ date: 2012-01-30
techne: :done
episteme: :believed
slug: 2012/01/30/dark-stance-thinking-demonstrated/
disowned: true
merged: muflax:morality/stances
---
As I [once noted][Dark Stance]:

View File

@ -2,7 +2,7 @@
title: 3 Months of Beeminder
date: 2012-02-03
techne: :done
episteme: :personal
episteme: :log
slug: 2012/02/03/3-months-of-beeminder/
---

View File

@ -2,7 +2,7 @@
title: Dude, Where's My Time?!
date: 2011-02-03
techne: :done
episteme: :personal
episteme: :log
---
A few days ago, I got up at 6:00 and went to bed around 22:00. During the day, I felt I worked rather well. Maybe not optimally so, but still pretty well. When I was about to fall asleep, I thought about what I had accomplished and couldn't help but feel disappointed. I could remember about 2 hours of work or so. But I was awake for over 18 hours! Where did all my time go?

View File

@ -1,6 +1,6 @@
---
title: Unifying Morality
date: 2012-06-22
date: 2012-01-22
techne: :done
episteme: :speculation
slug: 2012/01/22/unifying-morality/

View File

@ -24,7 +24,7 @@ disowned: true
>
> -- Ngak'chang Rinpoche, excerpt from talk on [samsara, suffering and suspicion][Samsara Talk]
Compare [Gospel of Muflax][], written October 2010:
Compare [Gospel of Muflax][Sayings], written October 2010:
> - TOKSHI said, now is good, tomorrow never good enough.
> - TOKSHI said, don't wish for things because then you will get exactly what you wished for and it will totally suck and you will look stupid.

View File

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

Before

Width:  |  Height:  |  Size: 75 KiB

After

Width:  |  Height:  |  Size: 75 KiB

View File

Before

Width:  |  Height:  |  Size: 200 KiB

After

Width:  |  Height:  |  Size: 200 KiB

View File

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View File

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View File

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View File

Before

Width:  |  Height:  |  Size: 169 KiB

After

Width:  |  Height:  |  Size: 169 KiB

View File

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

View File

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

View File

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 100 KiB

View File

@ -26,7 +26,7 @@ episteme: :believed
# Condemnation of 23 Propositions
Muflax, [by divine permission][Condemnation of 1277] unworthy servant of the [Timeless Church][comment Church], sends greetings to all those who will read this post.
Muflax, by divine permission unworthy servant of the [Timeless Church][comment Church], [sends greetings][Condemnation of 1277] to all those who will read this post.
We have received frequent reports, inspired by zeal for the Faith, on the part of important and serious persons to the effect that some students of the [Art][LW virtues] on the Internet are exceeding the boundaries of their own faculty and are presuming to treat and discuss, as if they were debatable in the schools, certain obvious and loathsome errors, or rather vanities and lying follies, which are contained in the list at the end of this post.
@ -40,7 +40,7 @@ By this same sentence of ours we also condemn the book "Better Never To Have Bee
"Cave, igitur, Galtere, amoris exercere mandata, and so on, as well as the book of geomancy that begins
We likewise condemn the books, blogs and tweets dealing with [algorithmancy][Algorithmancy], or containing experiments in prediction, invocations of demons or incantations [endangering lives, or in which these and similar things evidently contrary to expert opinion and good sanity are treated.
We likewise condemn the books, blogs and tweets dealing with [algorithmancy][Algorithmancy], or containing experiments in prediction, invocations of demons or incantations endangering lives, or in which these and similar things evidently contrary to expert opinion and good sanity are treated.
We pronounce the sentence of excommunication against those who shall have taught the said books, blogs and tweets, or listened to them, unless to [openly mock them][AntiANtrollbot] as described earlier in this post; in addition to which we shall proceed to inflict such other penalties as the hilarity of the offense demands.

View File

@ -45,7 +45,7 @@ But I definitely need a confession right now. Or someone to run a daily mass. I'
(Puts on todo[^todo]: start Church of All Faiths. We offer all rituals, teach all practices, are in communion with all churches in all worlds, accept all doctrines, pray to and for all gods, saints and concepts. Heretics welcome.)
<% end %>
Lacking such a church, I did the best on my own until my head cleared and I could work again. Read Marcion's Apostolicon again, thought about it, worked more on my own texts[^own], prayed, meditated. (Should do that more often.) I think I'm getting to a point where I really should start collecting the material and make my own gospel according to muflax. That is, one with explicit theology, parables and so on, not just [a bunch of sayings][Gospel of Muflax].
Lacking such a church, I did the best on my own until my head cleared and I could work again. Read Marcion's Apostolicon again, thought about it, worked more on my own texts[^own], prayed, meditated. (Should do that more often.) I think I'm getting to a point where I really should start collecting the material and make my own gospel according to muflax. That is, one with explicit theology, parables and so on, not just [a bunch of sayings][Sayings].
[^own]:
Not that I have any particular problem with Marcion. I've got a big theology-crush on him already and I blame any perceived flaws on mischaracterizations by his enemies or scribal errors or somesuch. But his canon is somewhat limited in scope, too fragmented and disorganized to use, and still trapped in its cultural context. It is only dimly aware of Buddhist texts, for example, even though they would greatly enhance it. None of this is Marcion's fault, but A New Canon is needed. I might as well write it.

BIN
content_daily/pigs/rei.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -1,8 +0,0 @@
---
title: PIT 1
date: 2012-05-11
techne: :done
episteme: :speculation
---
Stuff about PIT.

View File

@ -1,6 +0,0 @@
---
title: Psychedelic Information Theory
is_category: true
---
<%= category :pit %>

View File

@ -0,0 +1,43 @@
---
title: Find the Bug
date: 2010-02-22
techne: :done
episteme: :believed
---
The book [Find the Bug][Find the Bug book] by Adam Barr, to quote the author, "\[...\] contains 50 programs, in one of five languages (C, Java, Python, Perl, and x86 assembly language). Each program contains a single, hard-to-detect but realistic bug—no tricky *gotchas*.". The idea is to train your ability to find bugs. The examples claim to be something you might be asked to do in a job interview. "Write me an algorithm to do $x!" and you move up to a whiteboard, write a few dozen lines in a language of your choosing (thus the 5 languages in the book) and now you must be able to defend it or criticize it (depending on whether you are the interviewer or not). You don't have test cases, you can't compile it, you only have your brain.
This is a really neat idea *in principle*, but unfortunately, the execution is rather lacking. The enforced simplicity (every program has to fit on one page) ignores many realistic kinds of bugs. None of the examples require much background knowledge, which at first looks like a good idea, but again is rather unrealistic. If I'm writing a level generator for a game and my random number generator has a bug, then I'll probably only see it in some cases and finding it may require a bit of statistical knowledge. Just because I dislike statistics doesn't mean I get to ignore them.
Especially bad is the fact that there are no performance optimizations. The code is always as clean and simple as it can be to solve the problem, but that's not what real code looks like. In some cases, this is alright, but there are plenty of low-level function like memory allocation, string parsing or sorting and those normally have the hell optimized out of them. A "clever trick" is exactly the kind of thing that is widespread, evil and buggy.
Also, the examples sometimes aren't really typical. The Python and Perl code in particular looks nothing like normal code. The Python code is way too low-level, uses no list comprehension and barely anything of the extensive library. In short, it's rather unpythonic and looks a lot more like quickly converted C code. The Perl code has multiple comments and meaningful variable names, something no self-respecting Perl hacker would ever use. :\>
It's a bit hard to avoid because you can't throw around all the neat little features everyone familiar with the language would use while still assuming that the reader has at best a passing knowledge themselves. It would have been a lot better to either stick with a common and small language (like C) or use pseudo code instead. Most bugs aren't language specific anyway, so this wouldn't have hurt the book. Finally, some of the example code is just... strange. There is one Java example that wants to find out whether a year is a leap year or not.
The relevant logic is this:
~~~
#!java
// A leap year is a multiple of 4, unless it is
// a multiple of 100, unless it is a multiple of
// 400.
//
// We calculate the three values, then make a
// 3-bit binary value out of them and look it up
// in results.
//
final boolean results[] =
{ false, false, false, false,
true, false, false, true };
if (results[
((((yearAsLong % 4) == 0) ? 1 : 0) << 2) +
((((yearAsLong % 100) == 0) ? 1 : 0) << 1) +
((((yearAsLong % 400) == 0) ? 1 : 0) << 0)]) {
throw new LeapYearException();
} else {
throw new NotLeapYearException();
}
~~~
If I ever meet anyone who uses something like this, then all my promises of non-violence will be void. However, it *is* a rather typical example of the twisted and mad code a Java programmer would write, so kudos to the author. It's still an abomination, though. Anyway, a lot of wasted potential. \*sigh\*

View File

@ -0,0 +1,6 @@
---
title: Stuff I Read
is_category: true
---
<%= category :read %>

View File

@ -11,7 +11,7 @@ All major changes on the site
=============================
{:#changelog}
- 2012/06/22: Major cleanup due to the [Condemnation][].
- 2012/06/22: Major cleanup and restructuring due to the [Condemnation][].
- 2012/05/25: [Antinatalism FAQ][] is officially not a draft anymore.

View File

@ -1,6 +0,0 @@
---
title: Digesting History
is_category: true
---
<%= category :history %>

View File

@ -9,20 +9,32 @@ no_comments: true
Yet another hypergraphic information whore's site.
[muflax][] is empty. My [LibraryThing][] profile says more about me than I ever could.
You may, of course, just read this site to find out more. You can
get in [Contact][] with me about anything, be it comments, criticisms or
corrections.
Links are sorted by mysterious processes. There is a [Changelog][] for major changes. You can subscribe to the [universal RSS feed][Universal RSS] for all sites, or go to each site for their individual feeds.[^snr]
Articles are sorted by latest major modification. You can see the [Changelog][]
for any recent changes or subscribe to the [RSS Feed][RSS]. You can also read
the [Twitter][] feed or my [Blog][blog] for raw thought in smaller chunks.
[^snr]: As if you cared about signal-to-noise. I know you watch cats jumping into boxes all day like the rest of us.
There is also [Twitter][].
<%= google_search %>
<%= category :morality %>
<%= category :reflections %>
<%= category :religion %>
<%= category :experiments %>
<%= category :software %>
<%= category :fiction %>
# Sites
<%= site_link :blog %>
<%= site_link :daily %>
<%= site_link :letsread %>
<%= site_link :sutra %>
<%= site_link :gospel %>
# Topics
<%= topic_link "Antinatalism", "muflax:morality/antinatalism" %>
<%= topic_link "Experiments", "blog:experiments" %>
<%= topic_link "The Dark Stance", "muflax:morality/stances" %>
<%= topic_link "Meta-Morality", "blog:morality" %>

View File

@ -7,6 +7,8 @@ episteme: :broken
disowned: true
---
# Idea
I destabilized again, but this time I see a different direction to stabilize in, something I've never done before.
I'm used to not having stable preferences or personalities. Typically, every 1.5-3 months, I have a breakdown event, lose all my motivation and enjoyment of whatever I've been doing and am stuck with reassembling the pieces into something new. Over the last few years, I've tried [many things][LW bipolar] to fix this, but never got anywhere.
@ -46,3 +48,36 @@ And then I just took my pain and said to it, "I'm ok with you. This is not a tra
I do not know where this path will lead, only that it will be interesting.
*run on hatred // run on pain // transform nothing // seek no gain*
# Demonstration
After running through a dark forest at 0°C, high (who the fuck runs sober?!), I noticed something. (Besides that I really need a better lamp than my mp3 player's display next time.)
There already is a precedence for Dark Stance thinking. And it has a catchy tune. Listen (starts a minute in):
<%= youtube("http://www.youtube.com/v/YvUbbYX9BMs") %>
In particular, look at these lyrics:
> Now take Sir Francis Drake, the Spanish all despise him,
> But to the British he's a hero and they idolize him.
> It's how you look at buccaneers that makes them bad or good
> And I see us as members of a noble brotherhood.
>
> [...]
>
> On occasion there may be someone you have to execute,
> But when you're a professional pirate
> You don't have to wear a suit. (What?)
>
> I could have been a surgeon,
> I like taking things apart.
>
> I could have been a lawyer,
> But I just had too much heart.
That's exactly what it's about. Embrace the monster that you are. If you are a pirate, be the *best* pirate you can be. Whatever you do, do it *right*.
This is the real problem, hidden by hypocrisy and moral progress thinking. The faulty idea is that we are good because we do good things. This way corrupts Honor, corrupts what Ye Olde Existentialists called authenticity. We are good because we are *pure*, unified in what we do. We embrace what we are and do it the *right* way, regardless what it is. A pirate is not evil for being a pirate, as long as they are a *professional* pirate.
*(On the off-chance that I become a religious saint some centuries down the road, I want to force the Muppets into the canon of whatever religion takes me up. This will be my true heritage.)*

View File

@ -1,183 +0,0 @@
---
title: Gospel of Muflax
date: 2010-11-12
techne: :done
episteme: :believed
merged: gospel:/sayings/
---
Foreword
========
Every mystic needs their own gospel. You can't just go around, claiming "Those dudes pretty much said it all." and expect to be taken seriously. You have to not just invent your own terms, mythology and techniques, you also need your own Holy Texts about Everything One Needs To Know. At the very least, write some <del>fanfic</del> new revelations to some other text. But then it better have some angels and dragons and shit!
So, here is mine. Even with added confusing commentary! Further revelations will be added as The One Who Knows Shit (TOKSHI, 特使) teaches me more.
Gospel of Muflax
================
Thus have I heard.
1. TOKSHI said, nothing lasts.[^anicca] If you watch closely, things keep on wobbling away, even really sticky ones.
2. TOKSHI said, don't identify with things. Those that think they are things, become things. Those that don't think they are things, aren't bogged down by all the silly associations.[^anatta]
3. TOKSHI said, now is good, tomorrow never good enough.
4. TOKSHI said, don't force it. Things have a way of getting done if you don't try to get them done while getting them done.[^gtd]
5. TOKSHI said, do whatever you want to do because that's what you're gonna do anyway. But try being nice sometimes?
6. TOKSHI said, those that know the Law, will follow it. Those that say they know the Law, will break It. But they will get laid.[^unity]
7. TOKSHI said, it's worse than you think. The Thing That Makes Things Happen According To Plan lost The Plan, but It is pretty good at faking it.
8. TOKSHI said, the universe doesn't care about you. Like, at all.[^emptiness]
9. TOKSHI said, if you try hard, you can do some wicked shit with your mind. Play around some time.
10. TOKSHI said, everything is better with practice. Try it some more, you will get good at it, promise. This includes dying.
11. TOKSHI said, don't wish for things because then you will get exactly what you wished for and it will totally suck and you will look stupid.[^wish]
12. TOKSHI said, you have a brain the size of a coconut. You think that's just the right size to understand everything? Are you sure about that?
13. TOKSHI said, there are only two correct answers to the question "What is this?"[^whatisthis] - the first, "It's not what you think it is."; the second, "Let me show you!".
14. TOKSHI said, every strength is a weakness. Be empty, be invincible.
15. TOKSHI said, fail in interesting ways.
16. TOKSHI said, go meta.[^meta]
17. TOKSHI said, justification flows from above to below.
18. TOKSHI said, never compromise.
19. TOKSHI said, be concrete about your despair.
20. TOKSHI said, don't be happy.
[^anatta]:
Try "finding yourself" some time. But don't do a half-assed job and stop
with the first thing that comes up. Be thorough. Allow yourself to be
genuinely surprised. If it makes sense right away, then it is most
definitely wrong.
A koan. One day, a monk went to TOKSHI and said, "Holy One, my mind has no
peace as yet. Please, put it to rest.". TOKSHI quoted,
> Huike said, "Your disciple's mind has no peace as yet. Master, please, put
> it to rest.". Bodhidharma said, "Bring me your mind, and I will put it to
> rest.". Huike said, "I have searched for my mind, but I cannot find it.".
> Bodhidharma said, "I have completely put it to rest for you.".
The monk searched and returned. "Holy One, I have searched for my mind and
found it. Please, put it to rest now.". Upon hearing this, TOKSHI died.
[^anicca]:
When you watch yourself watching yourself, you will occasionally catch
yourself not watching yourself. Really. Try it. (Unfortunately, it takes a
lot of practice to get there. The problem is developing a strong enough
concentration and to get rid of many mental filters until you can direct
your attention at your own attention. The rest falls into place in no time.)
You see, even the elementary metaphysics of the universe are too lazy to put
in full effort all the time. But hey, being All There Is can be exhausting
sometimes. You'd cut corners, too.
[^gtd]:
Imagine the world being run by the most spiteful of all Demons. Whatever you
plan, it will prevent. Whatever you want, it will take away. Whatever you
want to avoid, it will force on you. But if you stop making any plans, it
can't do anything anymore. The opposite of zero is still zero.
This is when the Tao can take over. The Tao is a lot nicer than the Demon.
So, stop making plans. And imagining demons. What are you, 5?
[^unity]:
Bullshitting others and yourself is a crucial skill in evolution. Even
bacteria fake hard work while slacking off. Saying what is right, but
doing what is convenient is the Ultimate Shortcut.
[^emptiness]:
This place is Limbo. It is utterly devoid of Meaning, of Truth, of Value, of
God, of Purpose or of Choice. You are not even a prisoner or a slave because
there is no Master, no Punishment, no Torment and no Guilt.
Nothing you or any one else does matters. Understanding is irrelevant and
temporary. Ignorance always takes over, no Structure lasts, everything is
ground down eventually. There is no escape, but also no meaning to be had in
suffering or revolution because there is no one watching, nothing to escape
into and no transformation to be achieved. All we will ever do will be
undone.
It is the worst of all Hells because it uses consciousness against itself.
If there were active punishment, active torment, any plan at all, we could
rebel. We could take a stand. If there were any purpose, Freedom would be
possible.
It is the best of all Heavens because it never lasts, never allows us to
grasp it, never fulfills. It gives us constant struggle, doomed to failure,
and in it, we strive.
It is just on the brink of emptiness, just full enough that our minds can
make out Forms and Shadows, but not enough for them to hold onto. All
suffering is self-inflicted by delusion, but knowledge is impossible, and
delusion becomes inevitable.
> Long have you repeatedly experienced the death of a mother. The tears
> you have shed over the death of a mother while transmigrating and
> wandering this long, long time - crying and weeping from being joined with
> what is displeasing, being separated from what is pleasing - are greater
> than the water in the four great oceans.
>
> Long have you repeatedly experienced the death of a father, the death of a
> brother, the death of a sister, the death of a son, the death of a
> daughter, loss of relatives, loss of wealth, loss due to disease. The
> tears you have shed over loss with regard to disease while transmigrating
> and wandering this long, long time - crying and weeping from being joined
> with what is displeasing, being separated from what is pleasing - are
> greater than the water in the four great oceans. Why is that? From an
> inconstruable beginning. A beginning point is not evident, though beings
> hindered by ignorance and fettered by craving are transmigrating and
> wandering on. Long have you thus experienced stress, experienced pain,
> experienced loss, swelling the cemeteries - enough to become disenchanted
> with all fabricated things, enough to become dispassionate, enough to be
> released.
>
> -- Buddha, Assu Sutta
This world is exactly as I would have designed it. Have fun.
[^wish]:
A long time ago, a young monk had a clear vision of The Perfect Life,
including a place to live and a girl to be with. Then he moved to that
place and met that girl and he was really unhappy. Turned out, he didn't
actually like being there and the girl was kinda boring and just as full of
fear and uncertainty as the monk, so what good is she, really?
[^whatisthis]:
A koan.
After a lesson, TOKSHI would often meet with individual students in private
and allow them to ask any question about things they didn't understand. One
day, an especially curious monk hid behind a curtain and listened to the
conversations. This day, three students came.
The first student asked TOKSHI, "Holy One, you have told us about God. I
don't know what God is. Can you tell me?", and TOKSHI answered, "It's not
what you think it is. Let me show you!", upon which TOKSHI would make the
student see God.
The second student asked TOKSHI, "Holy One, you mentioned rebirth. What is
this?", and TOKSHI answered, "It's not what you think it is. Let me show
you!", upon which TOKSHI would make the student be reborn.
The third student asked TOKSHI, "Holy One, what is liberation?", and TOKSHI
answered, "It's not what you think it is. Let me show you!", upon which
TOKSHI would make the student free.
Upon hearing TOKSHI's three answers, the monk was enlightened.
[^meta]: Including on going meta. You can always go meta.

View File

@ -1,6 +0,0 @@
---
title: Religion
is_category: true
---
<%= category :religion %>

View File

@ -1,77 +0,0 @@
---
title: "Review: Find the Bug"
date: 2010-02-22
techne: :done
episteme: :believed
---
The book [Find the Bug][] by Adam Barr, to quote the author, "\[...\] contains
50 programs, in one of five languages (C, Java, Python, Perl, and x86 assembly
language). Each program contains a single, hard-to-detect but realistic bug—no
tricky *gotchas*.". The idea is to train your ability to find bugs. The examples
claim to be something you might be asked to do in a job interview. "Write me an
algorithm to do $x!" and you move up to a whiteboard, write a few dozen lines in
a language of your choosing (thus the 5 languages in the book) and now you must
be able to defend it or critize it (depending on whether you are the interviewer
or not). You don't have test cases, you can't compile it, you only have your
brain.
This is a really neat idea *in principle*, but unfortunetaly, the execution is
rather lacking. The enforced simplicity (every programm has to fit on one page)
ignores many realistic kinds of bugs. None of the examples require much
background knowledge, which at first looks like a good idea, but again is rather
unrealistic. If I'm writing a level generator for a game and my random number
generator has a bug, then I'll probably only see it in some cases and finding it
may require a bit of statistical knowledge. Just because I dislike statistics
doesn't mean I get to ignore them.
Especially bad is the fact that there are no performance optimizations. The code
is always as clean and simple as it can be to solve the problem, but that's not
what real code looks like. In some cases, this is alright, but there are plenty
of low-level function like memory allocation, string parsing or sorting and
those normally have the hell optimized out of them. A "clever trick" is exactly
the kind of thing that is widespread, evil and buggy.
Also, the examples sometimes aren't really typical. The Python and Perl code in
particular looks nothing like normal code. The Python code is way too low-level,
uses no list comprehension and barely anything of the extensive library. In
short, it's rather unpythonic and looks a lot more like quickly converted C
code. The Perl code has multiple comments and meaningful variable names,
something no self-respecting Perl hacker would ever use. :\>
It's a bit hard to avoid because you can't throw around all the neat little
features everyone familiar with the language would use while still assuming that
the reader has at best a passing knowledge themselves. It would have been a lot
better to either stick with a common and small language (like C) or use pseudo
code instead. Most bugs aren't language specific anyway, so this wouldn't have
hurt the book. Finally, some of the example code is just... strange. There is
one Java example that wants to find out whether a year is a leap year or not.
The relevant logic is this:
~~~
#!java
// A leap year is a multiple of 4, unless it is
// a multiple of 100, unless it is a multiple of
// 400.
//
// We calculate the three values, then make a
// 3-bit binary value out of them and look it up
// in results.
//
final boolean results[] =
{ false, false, false, false,
true, false, false, true };
if (results[
((((yearAsLong % 4) == 0) ? 1 : 0) << 2) +
((((yearAsLong % 100) == 0) ? 1 : 0) << 1) +
((((yearAsLong % 400) == 0) ? 1 : 0) << 0)]) {
throw new LeapYearException();
} else {
throw new NotLeapYearException();
}
~~~
If I ever meet anyone who uses something like this, then all my promises of
non-violence will be void. However, it *is* a rather typical example of the
twisted and mad code a Java programmer would write, so kudos to the author. It's
still an abomination, though. Anyway, a lot of wasted potential. \*sigh\*

View File

@ -1,6 +0,0 @@
---
title: Software
is_category: true
---
<%= category :software %>

View File

@ -13,8 +13,8 @@ def rss_feed
rss.channel.description = @site.title
rss.items.do_sort = true # sort items by date
# add changelog, if available
unless log.nil?
# use changelog or non-draft articles
if not log.nil?
changes(log).each do |change|
i = rss.items.new_item
i.title = "muflax hath written unto you..."
@ -22,20 +22,19 @@ def rss_feed
i.date = Time.parse(change[:date])
i.description = change[:description]
end
end
# add all non-draft articles
@site.items_by_date.last(5).each do |item|
i = rss.items.new_item
i.title = "#{item[:title]}"
i.link = "#{@site.url}" + item.path
i.date = item[:date].to_time
i.description = tidy(item.compiled_content).force_encoding("utf-8")
else
@site.items_by_date.last(5).each do |item|
i = rss.items.new_item
i.title = "#{item[:title]}"
i.link = "#{@site.url}" + item.path
i.date = item[:date].to_time
i.description = tidy(item.compiled_content).force_encoding("utf-8")
end
end
# mod date is newest article / entry in log
last_article = @site.items_by_date.last[:date].to_time
rss.channel.date = log.nil? ? last_article : [last_article, log.mtime].max
rss.channel.date = log.nil? ? last_article : log.mtime
end
content

65
moved.yaml Normal file
View File

@ -0,0 +1,65 @@
sites:
muflax:
# moved to blog
- from: experiments/magnetic
to: blog:experiments/magnetic
- from: experiments/polyphasic_sleep
to: blog:experiments/polyphasic_sleep
- from: experiments/speedreading
to: blog:experiments/speedreading
- from: experiments/synestesia
to: blog:experiments/synestesia
- from: experiments/dude_time
to: blog:experiments/dude_time
- from: experiments/concentration
to: blog:experiments/concentration
- from: experiments/good_sleep
to: blog:experiments/good_sleep
- from: morality/purpose
to: blog:morality/purpose
- from: morality/vegetarian
to: blog:morality/vegetarian
- from: reflections/quale
to: blog:consciousness/quale
- from: reflections/through_wall
to: blog:personal/through_wall
- from: religion/crucifixion
to: blog:jesus/crucifixion
- from: religion/samsara
to: blog:personal/samsara
- from: religion/milinda
to: blog:culture/milinda
- from: religion/gospel
to: gospel:sayings
- from: software/backup
to: blog:hack/backup
- from: software/find_the_bug
to: letsread:read/find_the_bug
- from: software/vim
to: blog:hack/vim
- from: software/xmonad
to: blog:hack/xmonad
# better org
- from: kanji/all.txt
to: muflax:stuff/kanji/all.txt
- from: kanji/both.txt
to: muflax:stuff/kanji/both.txt
- from: kanji/kanji.tar.gz
to: muflax:stuff/kanji/kanji.tar.gz
- from: kanji/kanken.txt
to: muflax:stuff/kanji/kanken.txt
- from: kanji/simplified.txt
to: muflax:stuff/kanji/simplified.txt
- from: kanji/traditional.txt
to: muflax:stuff/kanji/traditional.txt
blog:
- from: /personal/3-months-of-beeminder
to: blog:experiments/3-months-of-beeminder