Update Friday, 23rd of January, Anno Domini MMIX, at the hour of the Pig
[git/dscho.git] / blog.rss
blobba66605e1856ca0c9e7d9cf6161ccad5350e12d3
1 <?xml version="1.0" encoding="utf-8"?>
2 <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
3 <channel>
4 <title>Dscho's blog</title>
5 <link>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html</link>
6 <atom:link href="http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=blog.rss" rel="self" type="application/rss+xml"/>
7 <description>A few stories told by Dscho</description>
8 <lastBuildDate>Fri, 23 Jan 2009 21:51:27 +0100</lastBuildDate>
9 <language>en-us</language>
10 <item>
11 <title>How to deal with files that are not source code when merging</title>
12 <link>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232742582</link>
13 <guid>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232742582</guid>
14 <pubDate>Fri, 23 Jan 2009 21:29:42 +0100</pubDate>
15 <description><![CDATA[How to deal with files that are not source code when merging
16 </p><p>
17 Last week, one of the mentors of last year's <a href=http://code.google.com/soc>
18 Summer of Code</a> mentioned the idea that merge strategies are in dear need
19 for file types other than source code.
20 </p><p>
21 I think this idea is awesome, even if I cannot bring myself to believe that
22 any of the file types would make a good Summer of Code project: either they
23 are too complicated (think raster images such as .png or even .jpg), or they
24 are too straight-forward (think LaTeX, where all that is needed is a good
25 graphical user interface to inspect the three versions: <i>ours</i>, <i>baseline</i>
26 and <i>theirs</i>).
27 </p><p>
28 The LaTeX idea would be a good project for me to mentor, though: I have a
29 pretty clear idea how it should be done; I just lack the time (and motivation)
30 to do it myself.
31 </p><p>
32 As for OpenOffice text documents, vector graphics (such as .svg), or more
33 specific data such as spreadsheets, I think that all of these are really
34 difficult: the problem is not so much the implementation (i.e. the programming
35 part of it), but the design.
36 </p><p>
37 This design should involve much more than a Summer of Code project is about:
38 you would need to survey users' expectations, and at least the mentor -- if
39 not the student -- would need to be an expert in usability questions, which
40 is rather unlikely in the realm of Open Source.
41 </p><p>
42 Maybe this is the missing part in Open Source: we have many brilliant
43 programmers, but next to nobody with a good idea how to design intuitive
44 user interfaces.
45 </p><p>
46 That might be related to the fact that brilliant software engineers, as they
47 can be found in Open Source, are not exactly known for their social skills,
48 a human trait that seems to be a very important prerequisite for designing
49 intuitive user interfaces.
50 </p><p>
51 Well, I have <a href=http://git.or.cz/gitwiki/SoC2009Ideas#head-6188833471f79f277e162ef9fbe1592aa10b5f6c>
52 added the proposal to Git's Summer of Code idea page on the Git Wiki; We will
53 see what comes out of it.]]></description>
54 </item>
55 <item>
56 <title>The UGFWIINI contest</title>
57 <link>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232626236</link>
58 <guid>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232626236</guid>
59 <pubDate>Thu, 22 Jan 2009 13:10:36 +0100</pubDate>
60 <description><![CDATA[The UGFWIINI contest
61 </p><p>
62 Just in case somebody finds this blog, here is a challenge. Inspired by my
63 own little hack (this blog), I announce the "Using Git For What It Is Not
64 Intended" contest.
65 </p><p>
66 And it is especially cool, since the acronym sounds cool! You might miss
67 this fact if you do no know that I pronounce the "F" like an "A" so that
68 it sounds cool.
69 </p><p>
70 This will be a running contest; whenever I have 10 valid applications, I
71 will announce a winner on the Git mailing list.
72 </p><p>
73 So, what accounts for a valid application?
74 </p><p>
75 <ul>
76 <li> You must use a Git program (the term is used loosely here, GitWeb is
77 considered a Git program, for example).
78 <li> The program must be intended for something completely different than
79 what you are using it for. E.g. GitWeb -- which was intended to let
80 you browse through the history using your web browser -- is used
81 to serve a blog to the wide world.
82 <li> You must be able to prove that you actually used the Git program to
83 the purpose you claim, preferably in a live demonstration like this
84 one.
85 <li> Nobody and nothing must be harmed in the process (except your
86 laughing muscle, that's okay).
87 </ul>
88 </p><p>
89 So, how does such an abuse look like?
90 </p><p>
91 <ul>
92 <li> ... like this blog.
93 <li> Managing your mail (in maildir format) in a Git repository.
94 <li> Finding duplicate files by
95 <table
96 border=1 bgcolor=white>
97 <tr><td bgcolor=lightblue colspan=3>
98 &nbsp;
99 </td></tr>
100 <tr><td>
101 <table cellspacing=5 border=0
102 style="color:black;">
103 <tr><td>
104 <pre>
105 $ git init
106 $ git add .
107 $ git ls-files --stage | sort -k2 | uniq -d -s7 -w40
108 </pre>
109 </td></tr>
110 </table>
111 </td></tr>
112 </table>
113 <li> Abusing the Git alias mechanism to call scripts defined directly in
114 the config.
115 </ul>
116 </p><p>
117 I am really looking forward to all of your submissions... *chuckles*
118 </p><p>]]></description>
119 </item>
120 <item>
121 <title>Top-posting</title>
122 <link>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232611542</link>
123 <guid>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232611542</guid>
124 <pubDate>Thu, 22 Jan 2009 09:05:42 +0100</pubDate>
125 <description><![CDATA[Top-posting
126 </p><p>
127 Okay, last post for a while. But this is something that is nagging me
128 tremendously. I should probably just let go, but in my deepest inner self,
129 really close to my heart, I refuse to believe that any human beings could
130 be incapable of certain degrees of reason.
131 </p><p>
132 Take the example of top-posting. Everybody who read a top-posted email
133 knows that you have to scroll down, possibly weeding through tons of
134 pages to find out what the heck the author of the last reply was replying
136 </p><p>
137 Never mind that it would take the author of the reply just a couple of
138 seconds to remove all the irrelevant stuff -- as she already knows what
139 is the relevant part, saving minutes, in case of mailing lists hours,
140 easily, to the readers who otherwise would have to discern what is
141 irrelevant and what is relevant first.
142 </p><p>
143 It is a horrible time waste. But of course not for the top-poster.
144 </p><p>
145 The problem is that I frequently run into such people, and when I write
146 them a polite mail, explaining to them that it is impolite to top-post,
147 and why, the answers I get sometimes make me check if the sky is still up
148 and the earth down. Yesterday was an example of such a dubitable
149 pleasure.
150 </p><p>
151 Most funny are the ridiculous attempts by those persons at explaining why
152 top-posting is <i>so</i> much superior to anything else.
153 </p><p>
154 Which is good, because if they were not that funny, they would be pretty sad.]]></description>
155 </item>
156 <item>
157 <title>Sverre's hat</title>
158 <link>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232607201</link>
159 <guid>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232607201</guid>
160 <pubDate>Thu, 22 Jan 2009 07:53:21 +0100</pubDate>
161 <description><![CDATA[Sverre's hat
162 </p><p>
163 The fun part about a blog is that you can talk about less technical stuff.
164 For example, Sverre's hat.
165 </p><p>
166 Let me start a bit earlier, so that you get the context.
167 </p><p>
168 Last year, at the <a href=http://git.or.cz/gitwiki/GitTogether>GitTogether</a>,
169 we had an <a href=http://en.wikipedia.org/wiki/Unconference>unconference style
170 conference</a>, which basically meant that it was our job to decide what
171 we want to talk about.
172 </p><p>
173 It turned out to be pretty hard, because there was so much we wanted to
174 discuss, and because we wanted to get to know each other, and we wanted to
175 do some hacking.
176 </p><p>
177 So to help us decide what subjects, and in which order we wanted to have
178 scheduled, Shawn opened a series on <a href=http://moderator.appspot.com/>
179 Google Moderator</a>, a nifty, yet simple application which allows a group
180 to agree quickly on an agenda.
181 </p><p>
182 It worked quite well; However, that little saboteur displayed his sense of
183 humor so overtly that some entertaining Gitter put the question "Should Sverre
184 wear a hat?" on the agenda.
185 </p><p>
186 Sure enough, the subject got voted up, and eventually, we got Sverre a hat:
187 </p><p>
188 <center><img src=dscho.git?a=blob_plain;hb=blog;f=sverre-hat.jpg></center>
189 </p><p>
190 By the way, another thing I like about this blog engine is that there are no
191 comments... Nothing is more annoying than leaving a comment on a blog,
192 forgetting about it for a few months, and then finding somebody answered
193 ages ago.
194 </p><p>
195 Update: Sverre says it was dsymonds idea.]]></description>
196 </item>
197 <item>
198 <title>Let there be images!</title>
199 <link>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232604722</link>
200 <guid>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232604722</guid>
201 <pubDate>Thu, 22 Jan 2009 07:12:02 +0100</pubDate>
202 <description><![CDATA[Let there be images!
203 </p><p>
204 One of the most important features of blogs is the ability to insert images.
205 So what would this blog be, if it could not present something that says
206 more than a thousand words?
207 </p><p>
208 So here it goes, my first picture in this blog, taken from my Google Tech
209 Talk in Mountain View:
210 </p><p>
211 <center><img src=dscho.git?a=blob_plain;hb=blog;f=all-your-rebase.png></center>
212 </p><p>
213 Now this blog starts to look like a real blog...]]></description>
214 </item>
215 <item>
216 <title>My blog has style</title>
217 <link>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232599693</link>
218 <guid>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232599693</guid>
219 <pubDate>Thu, 22 Jan 2009 05:48:13 +0100</pubDate>
220 <description><![CDATA[My blog has style
221 </p><p>
222 It is official. The blog has a style sheet now.
223 </p><p>
224 The major problem was how to design the system such that it would work
225 both locally and on <a href=http://repo.or.cz>repo.or.cz</a> via gitweb.
226 </p><p>
227 Basically, I realized that I'd need a dry run mode anyway, to prevent
228 all my failed attemp.. oops, I meant, to prevent an accidental push
229 when I am at an, ahem, intermediate state of the 'blog' branch.
230 </p><p>
231 Therefore, I could write a different file locally, which I can load
232 into my venerable Firefox.
233 </p><p>
234 The next plans with my new toy are to enable an easy way to support
235 showing images, and then maybe a table of contents. External links
236 would be cool (<a href=http://repo.or.cz>repo.or.cz</a> does not count, it is special-cased), too.
237 </p><p>
238 And later maybe a cut-off, with automatic generation of links to older
239 posts. Hmm, for those, I'll have to change the URL to include the
240 current commit name, so that the images will be found, too...
241 </p><p>
242 Which in turn means that I'll have to parse the source for new
243 images first, so that they can be in the commit that index.html
244 will link to, <u>before</u> it gets committed. Oh well, that cannot be
245 helped! &#x263a;]]></description>
246 </item>
247 <item>
248 <title>My new blog system... bloGit</title>
249 <link>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232589695</link>
250 <guid>http://repo.or.cz/w/git/dscho.git?a=blob_plain;hb=blog;f=index.html#1232589695</guid>
251 <pubDate>Thu, 22 Jan 2009 03:01:35 +0100</pubDate>
252 <description><![CDATA[My new blog system... bloGit
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;]]></description>
283 </item>
284 </channel>
285 </rss>