git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
	Petr Baudis <pasky@suse.cz>
Subject: Re: [PATCHv6 4/8] gitweb: (gr)avatar support
Date: Sat, 27 Jun 2009 00:58:15 +0200	[thread overview]
Message-ID: <200906270058.16686.jnareb@gmail.com> (raw)
In-Reply-To: <cb7bb73a0906261508s47e8834fuc9b3313bd9f127ce@mail.gmail.com>

On Sat, 27 Jun 2009, Giuseppe Bilotta wrote:
> 2009/6/26 Jakub Narebski <jnareb@gmail.com>:
>> On Thu, 25 June 2009, Giuseppe Bilotta wrote:
>>
>>> Introduce avatar support: the featuer adds the appropriate img tag next
>>> to author and committer in commit(diff), history, shortlog and log view.

[...]
>> There is also 'feed' action (Atom and RSS formats), but that is certainly
>> separate issue, for a separate patch.
> 
> I'm not entirely sure we want avatars there.

I think you are right. I have thought that Atom/RSS have place for icons
for each entry in feed, but it is not the case. Also feed reader can
use gravatars by itself. Sorry for the noise, then.

>> Sidenote: Gravatar API description[1] mentions 'identicon', 'monsterid',
>> 'wavatar'.  There are 'picons' (personal icons)[2].  Also avatars doesn't
>> need to be global: they can be some local static image somewhere in web
>> server which serves gitweb script, or they can be stored somewhere in
>> repository following some convention.
>>
>> Current implementation is flexible enough to leave place for extending
>> this feature, but also doesn't try to plan too far in advance.  YAGNI
>> (You Ain't Gonna Need It).
>>
>> [1] http://www.gravatar.com/site/implement/url
>> [2] http://www.cs.indiana.edu/picons/ftp/faq.html
> 
> The forthcoming series has picons provider and gravatar fallback;
> however, we might want to have some way to make the gravatar fallback
> configurable.

Do I understand this correctly that there is additional patch planned
in new release of this series providing support for gitweb.avatar = picon?

>>> +     # To enable system wide have in $GITWEB_CONFIG
>>> +     # $feature{'avatar'}{'default'} = ['gravatar'];
>>> +     # To have project specific config enable override in $GITWEB_CONFIG
>>> +     # $feature{'avatar'}{'override'} = 1;
>>> +     # and in project config gitweb.avatar = gravatar;
>>> +     'avatar' => {
>>> +             'override' => 0,
>>> +             'default' => ['']},

NOTE, NOTE, NOTE!

One thing I forgot about (and would be discovered when running t9500
with provided patch... among other errors) is that you need to provide
'sub' subroutine for feature to be overridable.

...And that subroutine would be responsible for returning '' (empty
string) when feature is overridable.  See other feature_* subroutines.

>>
>> Note that to disable feature with non-boolean 'default' we use empty
>> list [] (which means 'undef' when parsing, which is false); see
>> description of features 'snapshot', 'actions'; 'ctags' what is strange
>> uses [0] here...  Using [''] is a bit strange; and does not protect
>> you, I think.
> 
> Using an empty string (or 0 like ctags do) is nice because it spares
> the undef check you mention later on, and since empty strings and 0
> evaluate to false in Perl, it's a good way to handle it. Moreover, any
> string which is not an actual provider would result in no avatars.
> More about this later.

[...]
>>> +if (($git_avatar eq 'gravatar') &&
>>> +   !(eval { require Digest::MD5; 1; })) {
>>> +     $git_avatar = '';
>>> +}
>>
>> Here you would have to protect against $git_avatar being undefined...
>> but you should do it anyway, as gitweb_get_feature() can return
>> undef / empty list.
> 
> Using '' as defalt instead of [] shields me from this problem, and
> works properly for boolean checks.

Well, I can understand that.  I was wrong: it is up to (currently not
defined) 'sub' to ensure that gitweb_get_feature would return ''
('default').


Still,

  +our ($git_avatar) = gitweb_get_feature('avatar') || '';

is quite simple... and can be in future subtly wrong (unless it would
be gitweb_check_feature, which always return scalar / single element).


>> This might be good enough starting point, but I wonder if it wouldn't
>> be a better solution to provide additional column with avatar image
>> when avatar support is enabled.  You would get a better layout in
>> a very rare case[3] when 'Author' column is too narrow and author is
>> info is wrapped:
>>
>>  [#] Jonathan
>>  H. Random
>>
>> versus in separate columns case:
>>
>>  [#] | Jonathan
>>      | H. Random
>>
>> But this is a very minor problem, which can be left for separate patch.
>>
>> [3] unless you use netbook or phone to browse...
> 
> I had considered going this way, but it made the code somewhat more
> complex so I went for the simpler solution. I'll look into putting it
> in separate cells further on.

Well, by "left for later" here I thought about later as in after this
patch series about gravatars get accepted :-)

-- 
Jakub Narebski
Poland

  reply	other threads:[~2009-06-26 22:58 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-25 10:42 [PATCHv6 0/8] gitweb: gravatar support Giuseppe Bilotta
2009-06-25 10:43 ` [PATCHv6 1/8] gitweb: refactor author name insertion Giuseppe Bilotta
2009-06-25 10:43   ` [PATCHv6 2/8] gitweb: uniform author info for commit and commitdiff Giuseppe Bilotta
2009-06-25 10:43     ` [PATCHv6 3/8] gitweb: right-align date cell in shortlog Giuseppe Bilotta
2009-06-25 10:43       ` [PATCHv6 4/8] gitweb: (gr)avatar support Giuseppe Bilotta
2009-06-25 10:43         ` [PATCHv6 5/8] gitweb: gravatar url cache Giuseppe Bilotta
2009-06-25 10:43           ` [PATCHv6 6/8] gitweb: add 'alt' to avatar images Giuseppe Bilotta
2009-06-25 10:43             ` [PATCHv6 7/8] gitweb: recognize 'trivial' acks Giuseppe Bilotta
2009-06-25 10:43               ` [PATCHv6 8/8] gitweb: add avatar in signoff lines Giuseppe Bilotta
2009-06-25 13:21                 ` [PATCHv6 9/8] gitweb: put signoff lines in a table Giuseppe Bilotta
2009-06-27  9:55                   ` Jakub Narebski
2009-06-27  9:26                 ` [PATCHv6 8/8] gitweb: add avatar in signoff lines Jakub Narebski
2009-06-27 10:21                   ` Giuseppe Bilotta
2009-06-27  0:19               ` [PATCHv6 7/8] gitweb: recognize 'trivial' acks Jakub Narebski
2009-06-27  1:03               ` Junio C Hamano
2009-06-27  9:04                 ` Giuseppe Bilotta
2009-06-26 23:39             ` [PATCHv6 6/8] gitweb: add 'alt' to avatar images Jakub Narebski
2009-06-27  0:08               ` Thomas Adam
2009-06-26 23:11           ` [PATCHv6 5/8] gitweb: gravatar url cache Jakub Narebski
2009-06-26 23:27             ` Giuseppe Bilotta
2009-06-26 23:53               ` Jakub Narebski
2009-06-26 19:42         ` [PATCHv6 4/8] gitweb: (gr)avatar support Jakub Narebski
2009-06-26 22:08           ` Giuseppe Bilotta
2009-06-26 22:58             ` Jakub Narebski [this message]
2009-06-26 23:14               ` Giuseppe Bilotta
2009-06-26 23:25                 ` Jakub Narebski
2009-06-27  0:29                   ` Junio C Hamano
2009-06-27  0:32                     ` Giuseppe Bilotta
2009-06-26  9:33       ` [PATCHv6 3/8] gitweb: right-align date cell in shortlog Jakub Narebski
2009-06-26 18:06         ` Giuseppe Bilotta
2009-06-26 22:34           ` Junio C Hamano
2009-06-26 22:57             ` Giuseppe Bilotta
2009-06-26 23:57               ` Junio C Hamano
2009-06-27 12:14           ` Jakub Narebski
2009-06-27 12:49             ` Jakub Narebski
2009-06-25 23:14     ` [PATCHv6 2/8] gitweb: uniform author info for commit and commitdiff Jakub Narebski
2009-06-26 17:52       ` Giuseppe Bilotta
2009-06-25 22:55   ` [PATCHv6 1/8] gitweb: refactor author name insertion Jakub Narebski
2009-06-25 23:01     ` Jakub Narebski
2009-06-25 23:41     ` Giuseppe Bilotta
2009-06-25 12:55 ` [PATCHv6 0/8] gitweb: gravatar support Jakub Narebski
2009-06-25 13:15   ` Giuseppe Bilotta
2009-06-25 17:07     ` Junio C Hamano
2009-06-25 18:46       ` Giuseppe Bilotta
2009-06-25 18:56         ` Junio C Hamano
2009-06-25 23:17   ` Jakub Narebski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200906270058.16686.jnareb@gmail.com \
    --to=jnareb@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=giuseppe.bilotta@gmail.com \
    --cc=pasky@suse.cz \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).