Generate an RSS feed
[git/dscho.git] / index.html
blobae178364b57d256597282420af9483d224a342e0
1 <html>
2 <head>
3 <title>Dscho's blog</title>
4 <meta http-equiv="Content-Type"
5 content="text/html; charset=UTF-8"/>
6 </head>
7 <body style="width:800px;background-image:url(dscho.git?a=blob_plain;hb=832be85c785c80202f17b87db7f063ae57ec2cac;f=paper.jpg);background-repeat:repeat-y;background-attachment:scroll;padding:0px;">
8 <div style="width:610px;margin-left:120px;margin-top:50px;align:left;vertical-align:top;">
9 <h1>Dscho's blog</h1>
10 <div style="position:absolute;top:50px;left:810px;width=400px">
11 <table width=400px bgcolor=#e0e0e0 border=1>
12 <tr><th>Table of contents:</th></tr>
13 <tr><td>
14 <p><ol>
15 <li><a href=#1232626236>22 Jan 2009 The UGFWIINI contest</a>
16 <li><a href=#1232611542>22 Jan 2009 Top-posting</a>
17 <li><a href=#1232607201>22 Jan 2009 Sverre's hat</a>
18 <li><a href=#1232604722>22 Jan 2009 Let there be images!</a>
19 <li><a href=#1232599693>22 Jan 2009 My blog has style</a>
20 <li><a href=#1232589695>22 Jan 2009 My new blog system... bloGit</a>
21 </ol></p>
22 </td></tr></table>
23 <br>
24 <table width=400px bgcolor=#e0e0e0 border=1>
25 <tr><th>Links:</th></tr>
26 <tr><td>
27 <ul>
28 <li> <a href=http://git-scm.com/>Git's homepage</a>
29 <li> <a href=http://gitster.livejournal.com/>Junio's blog</a>
30 <li> <a href=http://www.spearce.org/>Shawn's blog</a> seems to be sitting
31 idle ever since he started working for Google...
32 <li> <a href=http://torvalds-family.blogspot.com/>Linus' blog</a> does not
33 talk much about Git...
34 <li> Scott Chacon's <a href=http://whygitisbetterthanx.com/>Why Git is better
35 than X</a> site
36 <li> <a href=http://vilain.net/>The blog of mugwump</a>
37 <li> <a href=http://blogs.gnome.org/newren/>Elijah Newren</a> chose the
38 same path as Cogito, offering an alternative porcelain (an approach
39 that is doomed in my opinion)
40 <li> <a href=http://msysgit.googlecode.com/>The msysGit project</a>, a (mostly)
41 failed experiment to lure the many Windows developers out there to
42 contribute to Open Source for a change.
43 </ul>
44 </td></tr></table>
45 <br>
46 <table width=400px bgcolor=#e0e0e0 border=1>
47 <tr><td align=center>
48 <script type="text/javascript"><!--
49 google_ad_client = "pub-5106407705643819";
50 /* 300x250, created 1/22/09 */
51 google_ad_slot = "6468207338";
52 google_ad_width = 300;
53 google_ad_height = 250;
54 //-->
55 </script>
56 <script type="text/javascript"
57 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
58 </script>
59 </td></tr></table>
60 </div>
61 <h6>Thursday, 22nd of January, Anno Domini MMIX, at the hour of the Goat</h6>
62 <a name=1232626236>
63 <h2>The UGFWIINI contest</h2>
65 <p>
66 </p><p>
67 Just in case somebody finds this blog, here is a challenge. Inspired by my
68 own little hack (this blog), I announce the "Using Git For What It Is Not
69 Intended" contest.
70 </p><p>
71 And it is especially cool, since the acronym sounds cool! You might miss
72 this fact if you do no know that I pronounce the "F" like an "A" so that
73 it sounds cool.
74 </p><p>
75 This will be a running contest; whenever I have 10 valid applications, I
76 will announce a winner on the Git mailing list.
77 </p><p>
78 So, what accounts for a valid application?
79 </p><p>
80 <ul>
81 <li> You must use a Git program (the term is used loosely here, GitWeb is
82 considered a Git program, for example).
83 <li> The program must be intended for something completely different than
84 what you are using it for. E.g. GitWeb -- which was intended to let
85 you browse through the history using your web browser -- is used
86 to serve a blog to the wide world.
87 <li> You must be able to prove that you actually used the Git program to
88 the purpose you claim, preferably in a live demonstration like this
89 one.
90 <li> Nobody and nothing must be harmed in the process (except your
91 laughing muscle, that's okay).
92 </ul>
93 </p><p>
94 So, how does such an abuse look like?
95 </p><p>
96 <ul>
97 <li> ... like this blog.
98 <li> Managing your mail (in maildir format) in a Git repository.
99 <li> Finding duplicate files by
100 <table
101 border=1 bgcolor=black>
102 <tr><td bgcolor=lightblue colspan=3>
103 &nbsp;
104 </td></tr>
105 <tr><td>
106 <table cellspacing=5 border=0
107 style="color:#ffffff;">
108 <tr><td>
109 <pre>
110 $ git init
111 $ git add .
112 $ git ls-files --stage | sort -k2 | uniq -d -s7 -w40
113 </pre>
114 </td></tr>
115 </table>
116 </td></tr>
117 </table>
118 <li> Abusing the Git alias mechanism to call scripts defined directly in
119 the config.
120 </ul>
121 </p><p>
122 I am really looking forward to all of your submissions... *chuckles*
123 </p><p>
124 </p>
125 <h6>Thursday, 22nd of January, Anno Domini MMIX, at the hour of the Snake</h6>
126 <a name=1232611542>
127 <h2>Top-posting</h2>
130 </p><p>
131 Okay, last post for a while. But this is something that is nagging me
132 tremendously. I should probably just let go, but in my deepest inner self,
133 really close to my heart, I refuse to believe that any human beings could
134 be incapable of certain degrees of reason.
135 </p><p>
136 Take the example of top-posting. Everybody who read a top-posted email
137 knows that you have to scroll down, possibly weeding through tons of
138 pages to find out what the heck the author of the last reply was replying
140 </p><p>
141 Never mind that it would take the author of the reply just a couple of
142 seconds to remove all the irrelevant stuff -- as she already knows what
143 is the relevant part, saving minutes, in case of mailing lists hours,
144 easily, to the readers who otherwise would have to discern what is
145 irrelevant and what is relevant first.
146 </p><p>
147 It is a horrible time waste. But of course not for the top-poster.
148 </p><p>
149 The problem is that I frequently run into such people, and when I write
150 them a polite mail, explaining to them that it is impolite to top-post,
151 and why, the answers I get sometimes make me check if the sky is still up
152 and the earth down. Yesterday was an example of such a dubitable
153 pleasure.
154 </p><p>
155 Most funny are the ridiculous attempts by those persons at explaining why
156 top-posting is <i>so</i> much superior to anything else.
157 </p><p>
158 Which is good, because if they were not that funny, they would be pretty sad.
159 </p>
160 <h6>Thursday, 22nd of January, Anno Domini MMIX, at the hour of the Dragon</h6>
161 <a name=1232607201>
162 <h2>Sverre's hat</h2>
165 </p><p>
166 The fun part about a blog is that you can talk about less technical stuff.
167 For example, Sverre's hat.
168 </p><p>
169 Let me start a bit earlier, so that you get the context.
170 </p><p>
171 Last year, at the <a href=http://git.or.cz/gitwiki/GitTogether>GitTogether</a>,
172 we had an <a href=http://en.wikipedia.org/wiki/Unconference>unconference style
173 conference</a>, which basically meant that it was our job to decide what
174 we want to talk about.
175 </p><p>
176 It turned out to be pretty hard, because there was so much we wanted to
177 discuss, and because we wanted to get to know each other, and we wanted to
178 do some hacking.
179 </p><p>
180 So to help us decide what subjects, and in which order we wanted to have
181 scheduled, Shawn opened a series on <a href=http://moderator.appspot.com/>
182 Google Moderator</a>, a nifty, yet simple application which allows a group
183 to agree quickly on an agenda.
184 </p><p>
185 It worked quite well; However, that little saboteur displayed his sense of
186 humor so overtly that some entertaining Gitter put the question "Should Sverre
187 wear a hat?" on the agenda.
188 </p><p>
189 Sure enough, the subject got voted up, and eventually, we got Sverre a hat:
190 </p><p>
191 <center><img src=dscho.git?a=blob_plain;hb=832be85c785c80202f17b87db7f063ae57ec2cac;f=sverre-hat.jpg></center>
192 </p><p>
193 By the way, another thing I like about this blog engine is that there are no
194 comments... Nothing is more annoying than leaving a comment on a blog,
195 forgetting about it for a few months, and then finding somebody answered
196 ages ago.
197 </p><p>
198 Update: Sverre says it was dsymonds idea.
199 </p>
200 <h6>Thursday, 22nd of January, Anno Domini MMIX, at the hour of the Dragon</h6>
201 <a name=1232604722>
202 <h2>Let there be images!</h2>
205 </p><p>
206 One of the most important features of blogs is the ability to insert images.
207 So what would this blog be, if it could not present something that says
208 more than a thousand words?
209 </p><p>
210 So here it goes, my first picture in this blog, taken from my Google Tech
211 Talk in Mountain View:
212 </p><p>
213 <center><img src=dscho.git?a=blob_plain;hb=832be85c785c80202f17b87db7f063ae57ec2cac;f=all-your-rebase.png></center>
214 </p><p>
215 Now this blog starts to look like a real blog...
216 </p>
217 <h6>Thursday, 22nd of January, Anno Domini MMIX, at the hour of the Rabbit</h6>
218 <a name=1232599693>
219 <h2>My blog has style</h2>
222 </p><p>
223 It is official. The blog has a style sheet now.
224 </p><p>
225 The major problem was how to design the system such that it would work
226 both locally and on <a href=http://repo.or.cz>repo.or.cz</a> via gitweb.
227 </p><p>
228 Basically, I realized that I'd need a dry run mode anyway, to prevent
229 all my failed attemp.. oops, I meant, to prevent an accidental push
230 when I am at an, ahem, intermediate state of the 'blog' branch.
231 </p><p>
232 Therefore, I could write a different file locally, which I can load
233 into my venerable Firefox.
234 </p><p>
235 The next plans with my new toy are to enable an easy way to support
236 showing images, and then maybe a table of contents. External links
237 would be cool (<a href=http://repo.or.cz>repo.or.cz</a> does not count, it is special-cased), too.
238 </p><p>
239 And later maybe a cut-off, with automatic generation of links to older
240 posts. Hmm, for those, I'll have to change the URL to include the
241 current commit name, so that the images will be found, too...
242 </p><p>
243 Which in turn means that I'll have to parse the source for new
244 images first, so that they can be in the commit that index.html
245 will link to, <u>before</u> it gets committed. Oh well, that cannot be
246 helped! &#x263a;
247 </p>
248 <h6>Thursday, 22nd of January, Anno Domini MMIX, at the hour of the Tiger</h6>
249 <a name=1232589695>
250 <h2>My new blog system... bloGit</h2>
253 </p><p>
254 Nowadays, you got to have your blog. Or better: your blogs. Even Junio
255 blogs about Git.
256 </p><p>
257 So I felt a little left behind, having no blog to show off. But then
258 I read about this fantastic new website on the mailing list, called
259 <i>git planet</i> which was supposed to be a place where you could have your
260 Git located blog.
261 </p><p>
262 Except that you could not have your blog <u>there</u>. Instead, it is just an
263 aggregator site.
264 </p><p>
265 I was disappointed.
266 </p><p>
267 But then, I had this (in my humble opinion very cute) idea that I already used to "publish"
268 my slides from the talk "Contributing with Git (AKA All your rebase are
269 belong to us)": back then, I just created a new branch, committed the
270 file, and uploaded the result to <a href=http://repo.or.cz>repo.or.cz</a>, to be downloaded via Gitweb.
271 </p><p>
272 So I asked Pasky via IRC, if he would have any objections if I abused
273 <a href=http://repo.or.cz>repo.or.cz</a> as a blog server. He understood at once, and found it "sounds
274 like a pretty cool idea".
275 </p><p>
276 Of course, just writing plain HTML and committing that is <i>too easy</i>,
277 therefore I decided to write a shell script that would turn some sort
278 of simple text file into proper HTML, commit it, and upload the result.
279 </p><p>
280 Well, about two hours later, I finished the first version of the script
281 turning plain text with minimal markup into an HTML page, and it obviously
282 worked -- otherwise nobody would be able to read this &#x263a;
283 </p>
284 </div>
285 </body>
286 </html>