Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route

2016-03-07 Thread Aaron Wolf
On 03/07/2016 09:10 PM, Bryan Richter wrote:
> On Tue, Mar 08, 2016 at 04:39:11AM +0200, fr33domlover wrote:
>> On Mon, 7 Mar 2016 16:39:11 -0800
>> Bryan Richter  wrote:
>>
>>> Can I pass the tasks on to someone else who can take the time to
>>> figure out the best way to use OpenProject?
>>
>> Personally I'm not exactly excited about taking that role, unless OP
>> can be used conveniently from the terminal / text-based web browser
>> / email client, but regardless - do we have a documented workflow
>> for using it? Maybe you can push tasks to some TODO file / etherpad
>> / email. So far I like the use of the dev ML and IRC for that: You
>> mention a task, a dev picks it up and sends a patch or MR.
> 
> I like the idea of the ML too, though only for pushing notifications
> and discussing tasks. It's not gonna cut it for tracking them. Design,
> development, *and* users need to be able to track tasks.
> 
> Sadly, I just checked, and OpenProject flatly does not work without
> Javascript. That is unfortunate. I still suspect OpenProject will
> become THE tool for tracking tasks.
> 
>> The same applies to me and any other volunteer here: When someone
>> has some idea / proposal / problem / suggestion, where do they put
>> it? OP or mailing list or Snowdrift wiki?
> 
> Everyone is always welcome to send suggestions to the mailing list,
> and somebody will take care of triaging it. In the shortest of terms,
> that could even just mean I add it to my large list of tasks.
> 
> Eventually, everything will end up in OpenProject, however.
> 
> The "Snowdrift wiki" is one of the things being removed, by the way.
> 

All this needs to keep in mind that our absolute focus is on getting a
working MVP situation and getting the core thing finally launched.
Decisions made now have ramifications for longer term, but we're not
deciding one way or the other about the particular tools and issues in
the long-term. The point is to have a core working MVP.

Once we're on track to have an MVP, how we handle wiki and discussion
things and whatever else isn't set in stone. What matters right now is
that we use something workable to manage our immediate needs to get MVP.

I still want to see us use Gitit2 for a wiki connected to the eventually
launched system. I'm just accepting that the wiki we have on the site
right now is not going to stay as is and *cannot* be a distraction in
the building of the MVP. Once we have a working dev MVP thing, how we
*launch* it in relation to maintaining the content of the wiki and other
stuff is something to not get distracted with discussing today.

-Aaron




signature.asc
Description: OpenPGP digital signature
___
Dev mailing list
Dev@lists.snowdrift.coop
https://lists.snowdrift.coop/mailman/listinfo/dev


Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route

2016-03-07 Thread Bryan Richter
On Tue, Mar 08, 2016 at 04:39:11AM +0200, fr33domlover wrote:
> On Mon, 7 Mar 2016 16:39:11 -0800
> Bryan Richter  wrote:
> 
> > Can I pass the tasks on to someone else who can take the time to
> > figure out the best way to use OpenProject?
> 
> Personally I'm not exactly excited about taking that role, unless OP
> can be used conveniently from the terminal / text-based web browser
> / email client, but regardless - do we have a documented workflow
> for using it? Maybe you can push tasks to some TODO file / etherpad
> / email. So far I like the use of the dev ML and IRC for that: You
> mention a task, a dev picks it up and sends a patch or MR.

I like the idea of the ML too, though only for pushing notifications
and discussing tasks. It's not gonna cut it for tracking them. Design,
development, *and* users need to be able to track tasks.

Sadly, I just checked, and OpenProject flatly does not work without
Javascript. That is unfortunate. I still suspect OpenProject will
become THE tool for tracking tasks.

> The same applies to me and any other volunteer here: When someone
> has some idea / proposal / problem / suggestion, where do they put
> it? OP or mailing list or Snowdrift wiki?

Everyone is always welcome to send suggestions to the mailing list,
and somebody will take care of triaging it. In the shortest of terms,
that could even just mean I add it to my large list of tasks.

Eventually, everything will end up in OpenProject, however.

The "Snowdrift wiki" is one of the things being removed, by the way.



signature.asc
Description: Digital signature
___
Dev mailing list
Dev@lists.snowdrift.coop
https://lists.snowdrift.coop/mailman/listinfo/dev


Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route

2016-03-07 Thread Aaron Wolf
On 03/07/2016 04:39 PM, Bryan Richter wrote:
> On Mon, Mar 07, 2016 at 02:39:07PM -0800, Aaron Wolf wrote:
>> In this case, I'm fine with moving forward but only if it's otherwise
>> clean progress.
> 
> Ok, if design is fine with it (which was expected) we come to a bigger
> problem.
> 
> Right now I'm working to strip out unnecessary features and prototype
> code. So far, that has resulted in 9,000 lines of code removed.
> 
> 9,000.
> 
> Yes, that is more than what's left. It's also as many as a good-sized
> novel.
> 
> https://github.com/snowdriftcoop/snowdrift/compare/master...chreekat:reboot?expand=1
> 
> IMO this project is dead and we don't know it yet. We HAVE to continue
> stripping out unusable code in order to resuscitate it.
> 
> Doing so, of course, massively conflicts with the changes you (fr33)
> are making; changes that are hard to make precisely because there's so
> much dead weight. This causes me — and presumably you — some tension.
> 
>> I definitely want to see *all* the stuff connected to work packages in
>> OP when it's not just minor typo fixes etc. And to that end, I hope the
>> dev team will already work to add stuff to OP and add more concrete
>> tasks to the existing user stories to make the already entered items
>> complete.
> 
> I still can't make heads or tails of OpenProject. I don't think I can
> take on the project manager role of managing that tool. And it
> *should* be managed, by some one person or another. I guess that's
> a different topic.
> 
> To be more *on* topic, the act of stripping out dead code is creating
> some new tasks. I definitely want to share them and all that.
> OpenProject is the tool to do it with. Can I pass the tasks on to
> someone else who can take the time to figure out the best way to use
> OpenProject?
> 
> (Apologies for cross posting to discuss@, but there's some larger
> topics here and I want to include more people.)
> 
> 

It seems to me that declaring a "freeze" on things makes sense while
making it clear that people can still do isolated valuable things like
figuring out what some CSS should be or discussing what some
architecture needs to look like.

I think resuscitating the code is as broadly simple as learning from all
the experience and work so far, but starting with a core MVP thing with
maximum segregation of parts, clear names for terms, clear tests… i.e.
what you're doing now.

All the design of tools and content and interest and everything else
provides valuable data from which to draw on going forward. The fact
that we already have working notifications being sent by email doesn't
mean we have to stick to the existing code, but it does mean we have
some code to draw on as we rewrite the core MVP. etc. I think when we
have a core clean MVP, it will be easy to say "oh, we need X, can we
just pull that in or adapt it easily enough from the original version?"
and the answers will vary from case to case.

Anyway, we absolutely need some leadership on Open Project. I hope we
can find people to step up and take that lead.





signature.asc
Description: OpenPGP digital signature
___
Dev mailing list
Dev@lists.snowdrift.coop
https://lists.snowdrift.coop/mailman/listinfo/dev


Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route

2016-03-07 Thread fr33domlover
On Mon, 7 Mar 2016 16:39:11 -0800
Bryan Richter  wrote:

> Doing so, of course, massively conflicts with the changes you (fr33)
> are making; changes that are hard to make precisely because there's so
> much dead weight. This causes me — and presumably you — some tension.

Ah, I didn't know you were removing old code. Please don't let my patches
interfere though. I worked hard (in the sense of lots of git grep and stack
build, not intellectualy challenging or anything :P) to make all the chaos build
after changing all the routes, but it can wait until you clean the code and
re-do the /u/ changes on much smaller and simpler code.

Actually, with such huge changes I expected conflicts. Here they are :P

> 
> [ ... ]
> 
> To be more *on* topic, the act of stripping out dead code is creating
> some new tasks. I definitely want to share them and all that.
> OpenProject is the tool to do it with. Can I pass the tasks on to
> someone else who can take the time to figure out the best way to use
> OpenProject?

Personally I'm not exactly excited about taking that role, unless OP can be
used conveniently from the terminal / text-based web browser / email client, but
regardless - do we have a documented workflow for using it? Maybe you can push
tasks to some TODO file / etherpad / email. So far I like the use of the dev ML
and IRC for that: You mention a task, a dev picks it up and sends a patch or MR.

The same applies to me and any other volunteer here: When someone has some
idea / proposal / problem / suggestion, where do they put it? OP or mailing
list or Snowdrift wiki?

--fr33
___
Dev mailing list
Dev@lists.snowdrift.coop
https://lists.snowdrift.coop/mailman/listinfo/dev


Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route

2016-03-07 Thread Bryan Richter
On Mon, Mar 07, 2016 at 02:39:07PM -0800, Aaron Wolf wrote:
> In this case, I'm fine with moving forward but only if it's otherwise
> clean progress.

Ok, if design is fine with it (which was expected) we come to a bigger
problem.

Right now I'm working to strip out unnecessary features and prototype
code. So far, that has resulted in 9,000 lines of code removed.

9,000.

Yes, that is more than what's left. It's also as many as a good-sized
novel.

https://github.com/snowdriftcoop/snowdrift/compare/master...chreekat:reboot?expand=1

IMO this project is dead and we don't know it yet. We HAVE to continue
stripping out unusable code in order to resuscitate it.

Doing so, of course, massively conflicts with the changes you (fr33)
are making; changes that are hard to make precisely because there's so
much dead weight. This causes me — and presumably you — some tension.

> I definitely want to see *all* the stuff connected to work packages in
> OP when it's not just minor typo fixes etc. And to that end, I hope the
> dev team will already work to add stuff to OP and add more concrete
> tasks to the existing user stories to make the already entered items
> complete.

I still can't make heads or tails of OpenProject. I don't think I can
take on the project manager role of managing that tool. And it
*should* be managed, by some one person or another. I guess that's
a different topic.

To be more *on* topic, the act of stripping out dead code is creating
some new tasks. I definitely want to share them and all that.
OpenProject is the tool to do it with. Can I pass the tasks on to
someone else who can take the time to figure out the best way to use
OpenProject?

(Apologies for cross posting to discuss@, but there's some larger
topics here and I want to include more people.)


signature.asc
Description: Digital signature
___
Dev mailing list
Dev@lists.snowdrift.coop
https://lists.snowdrift.coop/mailman/listinfo/dev


Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route

2016-03-07 Thread Aaron Wolf
In this case, I'm fine with moving forward but only if it's otherwise
clean progress.

I definitely want to see *all* the stuff connected to work packages in
OP when it's not just minor typo fixes etc. And to that end, I hope the
dev team will already work to add stuff to OP and add more concrete
tasks to the existing user stories to make the already entered items
complete.

I like the direction fr33domlover is going here anyway.



signature.asc
Description: OpenPGP digital signature
___
Dev mailing list
Dev@lists.snowdrift.coop
https://lists.snowdrift.coop/mailman/listinfo/dev


Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route

2016-03-07 Thread Stephen Michel
I think this is the kind of thing that it's important for you 
(chreekat) to get input on, but is ultimately your decision. It's also 
the kind of thing I'm having trouble working through on my own.


Originally I had more to this email but then decided it's a separate 
topic and deserves its own email. Sending it shortly.


On Mon, Mar 7, 2016 at 3:00 PM, Bryan Richter  
wrote:

Before I comment on this patch, I think we should make sure that
Snowdrift.coop at large is ok with this change, and that that "ok" is
made real by adding the feature to OpenProject.

I want to get in the habit of doing feature-work that is in
OpenProject, and only that is in OpenProject. From the designer/owner
side, that ensures they get a chance to approve and prioritize work,
and from the developer side, it means we have a clear understanding of
new development we're responsible for. I think both aspects are
equally important.

Still, this is probably a good thing, so I've pushed this commit to a
new branch to ease collaboration.

https://git.gnu.io/snowdrift/snowdrift/tree/user-nicknames

On Mon, Mar 07, 2016 at 02:13:07PM +0200, fr33domlover wrote:

 From: fr33domlover 

 Making UserR take a Text that refers to a whole new User field is a 
big
 change. Many handlers and templates need to be updated. Therefore 
please
 read below carefully to understand my plan and what exactly this 
commit

 does.

 The GOAL is to move all UserId-based routes to use UserHandle 
instead,
 which is Text. That "handle" references a new 'userNick` field in 
the
 User table. But since this is a huge change, this commit does a 
smaller
 change. The rest will come in the next patches. What this commit 
does

 is:

 1. Update the UserR route and add a deprecated UserByIdR route
 2. Add the 'userNick' field to account creation and account update 
forms

 3. Require a pattern for the 'userNick' field to avoid all-digit
nicknames and other potential issues
 4. Fix all handlers and templates to pass the 'userNick' to 'UserR'
instead of the 'userId'. That includes inserting 'get404' calls 
in

several places just to get the User value, and other helpers that
will be removed later. They are used just so that the code 
builds and

works after applying this patch.

 The next patch(es) will update all the other handlers and probably
 change some of the helper functions to work with the new 'userNick'
 field.

 Before this gets committed, some input/review from dev and desig 
teams
 will be great. But don't be pedantic, as the next commits will 
change

 many things and will remove some of the ugly parts used here
 temporarily.

 I suggest we make this change in 2 steps because it's so big:

 1. Change the routes and UI as needed, and do whatever is needed to 
make the

code build again
 2. When done, refactor and add helpers and put all the chaos back 
to order

 ---
  config/models|   7 +
  config/routes|   3 +-
  src/Foundation.hs|  24 +++-
  src/Handler/NewDesign.hs |  19 ++-
  src/Handler/Project.hs   |  20 +--
  src/Handler/User/Comment.hs  |   1 +
  src/Handler/User/Delete.hs   |   3 +-
  src/Handler/User/Edit.hs |   7 +-
  src/Handler/User/NewDiscussion.hs|   1 +
  src/Handler/User/Notifications.hs|   3 +-
  src/Handler/User/ProjectNotifications.hs |   3 +-
  src/Handler/User/SelectProject.hs|   3 +-
  src/Handler/User/User.hs |   3 +-
  src/Handler/User/Utils.hs|   2 +-
  src/Handler/Who.hs   |  10 +-
  src/Model/Transaction.hs |   2 +-
  src/Model/User.hs|   7 +-
  src/Model/User/Internal.hs   |  18 +--
  src/View/SnowdriftEvent.hs   |  22 +--
  src/View/User.hs |  37 -
  templates/application.hamlet |   2 +-
  templates/auth/create-user-form.hamlet   |  12 +-
  templates/comment.hamlet |   7 +-
  templates/default/navbar.hamlet  |  35 ++---
  templates/invite.hamlet  |   8 +-
  templates/navbar.hamlet  |   8 +-
  templates/project_patrons.hamlet |   2 +-
  templates/project_transactions.hamlet|   2 +-
  templates/sponsors.hamlet| 226 
+++

  templates/tag.hamlet |   2 +-
  templates/user.hamlet|   2 +-
  templates/user_discuss.hamlet|   2 +-
  templates/user_discussion_wrapper.hamlet |   2 +-
  templates/user_tickets.hamlet|   2 +-
  templates/users.hamlet   |   2 +-
  templates/who.hamlet |   4 +-
  templates/wiki_history.hamlet|   2 +-
  tests/TestImport.hs  |   2 +-
  38 files changed, 295 insertions(+), 222 deletions(-)

 diff --git a/config/models b/confi

Re: [Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route

2016-03-07 Thread Bryan Richter
Before I comment on this patch, I think we should make sure that
Snowdrift.coop at large is ok with this change, and that that "ok" is
made real by adding the feature to OpenProject.

I want to get in the habit of doing feature-work that is in
OpenProject, and only that is in OpenProject. From the designer/owner
side, that ensures they get a chance to approve and prioritize work,
and from the developer side, it means we have a clear understanding of
new development we're responsible for. I think both aspects are
equally important.

Still, this is probably a good thing, so I've pushed this commit to a
new branch to ease collaboration.

https://git.gnu.io/snowdrift/snowdrift/tree/user-nicknames

On Mon, Mar 07, 2016 at 02:13:07PM +0200, fr33domlover wrote:
> From: fr33domlover 
> 
> Making UserR take a Text that refers to a whole new User field is a big
> change. Many handlers and templates need to be updated. Therefore please
> read below carefully to understand my plan and what exactly this commit
> does.
> 
> The GOAL is to move all UserId-based routes to use UserHandle instead,
> which is Text. That "handle" references a new 'userNick` field in the
> User table. But since this is a huge change, this commit does a smaller
> change. The rest will come in the next patches. What this commit does
> is:
> 
> 1. Update the UserR route and add a deprecated UserByIdR route
> 2. Add the 'userNick' field to account creation and account update forms
> 3. Require a pattern for the 'userNick' field to avoid all-digit
>nicknames and other potential issues
> 4. Fix all handlers and templates to pass the 'userNick' to 'UserR'
>instead of the 'userId'. That includes inserting 'get404' calls in
>several places just to get the User value, and other helpers that
>will be removed later. They are used just so that the code builds and
>works after applying this patch.
> 
> The next patch(es) will update all the other handlers and probably
> change some of the helper functions to work with the new 'userNick'
> field.
> 
> Before this gets committed, some input/review from dev and desig teams
> will be great. But don't be pedantic, as the next commits will change
> many things and will remove some of the ugly parts used here
> temporarily.
> 
> I suggest we make this change in 2 steps because it's so big:
> 
> 1. Change the routes and UI as needed, and do whatever is needed to make the
>code build again
> 2. When done, refactor and add helpers and put all the chaos back to order
> ---
>  config/models|   7 +
>  config/routes|   3 +-
>  src/Foundation.hs|  24 +++-
>  src/Handler/NewDesign.hs |  19 ++-
>  src/Handler/Project.hs   |  20 +--
>  src/Handler/User/Comment.hs  |   1 +
>  src/Handler/User/Delete.hs   |   3 +-
>  src/Handler/User/Edit.hs |   7 +-
>  src/Handler/User/NewDiscussion.hs|   1 +
>  src/Handler/User/Notifications.hs|   3 +-
>  src/Handler/User/ProjectNotifications.hs |   3 +-
>  src/Handler/User/SelectProject.hs|   3 +-
>  src/Handler/User/User.hs |   3 +-
>  src/Handler/User/Utils.hs|   2 +-
>  src/Handler/Who.hs   |  10 +-
>  src/Model/Transaction.hs |   2 +-
>  src/Model/User.hs|   7 +-
>  src/Model/User/Internal.hs   |  18 +--
>  src/View/SnowdriftEvent.hs   |  22 +--
>  src/View/User.hs |  37 -
>  templates/application.hamlet |   2 +-
>  templates/auth/create-user-form.hamlet   |  12 +-
>  templates/comment.hamlet |   7 +-
>  templates/default/navbar.hamlet  |  35 ++---
>  templates/invite.hamlet  |   8 +-
>  templates/navbar.hamlet  |   8 +-
>  templates/project_patrons.hamlet |   2 +-
>  templates/project_transactions.hamlet|   2 +-
>  templates/sponsors.hamlet| 226 
> +++
>  templates/tag.hamlet |   2 +-
>  templates/user.hamlet|   2 +-
>  templates/user_discuss.hamlet|   2 +-
>  templates/user_discussion_wrapper.hamlet |   2 +-
>  templates/user_tickets.hamlet|   2 +-
>  templates/users.hamlet   |   2 +-
>  templates/who.hamlet |   4 +-
>  templates/wiki_history.hamlet|   2 +-
>  tests/TestImport.hs  |   2 +-
>  38 files changed, 295 insertions(+), 222 deletions(-)
> 
> diff --git a/config/models b/config/models
> index a592753..bf64b14 100644
> --- a/config/models
> +++ b/config/models
> @@ -16,6 +16,12 @@ Transaction
>  
>  User
>  ident Text
> +-- ^ Private login name, never shown in UI, may be an email address in 
> the
> +--   case of Persona logins.
> +nick  Text

[Snowdrift-dev] [PATCH] User nicknames as public user IDs: Change UserR route

2016-03-07 Thread fr33domlover
From: fr33domlover 

Making UserR take a Text that refers to a whole new User field is a big
change. Many handlers and templates need to be updated. Therefore please
read below carefully to understand my plan and what exactly this commit
does.

The GOAL is to move all UserId-based routes to use UserHandle instead,
which is Text. That "handle" references a new 'userNick` field in the
User table. But since this is a huge change, this commit does a smaller
change. The rest will come in the next patches. What this commit does
is:

1. Update the UserR route and add a deprecated UserByIdR route
2. Add the 'userNick' field to account creation and account update forms
3. Require a pattern for the 'userNick' field to avoid all-digit
   nicknames and other potential issues
4. Fix all handlers and templates to pass the 'userNick' to 'UserR'
   instead of the 'userId'. That includes inserting 'get404' calls in
   several places just to get the User value, and other helpers that
   will be removed later. They are used just so that the code builds and
   works after applying this patch.

The next patch(es) will update all the other handlers and probably
change some of the helper functions to work with the new 'userNick'
field.

Before this gets committed, some input/review from dev and desig teams
will be great. But don't be pedantic, as the next commits will change
many things and will remove some of the ugly parts used here
temporarily.

I suggest we make this change in 2 steps because it's so big:

1. Change the routes and UI as needed, and do whatever is needed to make the
   code build again
2. When done, refactor and add helpers and put all the chaos back to order
---
 config/models|   7 +
 config/routes|   3 +-
 src/Foundation.hs|  24 +++-
 src/Handler/NewDesign.hs |  19 ++-
 src/Handler/Project.hs   |  20 +--
 src/Handler/User/Comment.hs  |   1 +
 src/Handler/User/Delete.hs   |   3 +-
 src/Handler/User/Edit.hs |   7 +-
 src/Handler/User/NewDiscussion.hs|   1 +
 src/Handler/User/Notifications.hs|   3 +-
 src/Handler/User/ProjectNotifications.hs |   3 +-
 src/Handler/User/SelectProject.hs|   3 +-
 src/Handler/User/User.hs |   3 +-
 src/Handler/User/Utils.hs|   2 +-
 src/Handler/Who.hs   |  10 +-
 src/Model/Transaction.hs |   2 +-
 src/Model/User.hs|   7 +-
 src/Model/User/Internal.hs   |  18 +--
 src/View/SnowdriftEvent.hs   |  22 +--
 src/View/User.hs |  37 -
 templates/application.hamlet |   2 +-
 templates/auth/create-user-form.hamlet   |  12 +-
 templates/comment.hamlet |   7 +-
 templates/default/navbar.hamlet  |  35 ++---
 templates/invite.hamlet  |   8 +-
 templates/navbar.hamlet  |   8 +-
 templates/project_patrons.hamlet |   2 +-
 templates/project_transactions.hamlet|   2 +-
 templates/sponsors.hamlet| 226 +++
 templates/tag.hamlet |   2 +-
 templates/user.hamlet|   2 +-
 templates/user_discuss.hamlet|   2 +-
 templates/user_discussion_wrapper.hamlet |   2 +-
 templates/user_tickets.hamlet|   2 +-
 templates/users.hamlet   |   2 +-
 templates/who.hamlet |   4 +-
 templates/wiki_history.hamlet|   2 +-
 tests/TestImport.hs  |   2 +-
 38 files changed, 295 insertions(+), 222 deletions(-)

diff --git a/config/models b/config/models
index a592753..bf64b14 100644
--- a/config/models
+++ b/config/models
@@ -16,6 +16,12 @@ Transaction
 
 User
 ident Text
+-- ^ Private login name, never shown in UI, may be an email address in the
+--   case of Persona logins.
+nick  Text  
default=concat('user-',floor(random()*10))
+-- ^ Public user unique nickname, shown in the UI.
+--   TODO the default value is meant just for initial migration, remove it
+--once all users get assigned auto-generated nicks
 email Text Maybe
 email_verifiedBool  default=false
 createdTs UTCTime
@@ -35,6 +41,7 @@ User
 discussionDiscussionId   
default=nextval('discussion_id_seq'::regclass)
 
 UniqueUser ident
+UniqueUserNick nick
 UniqueUserAccount account
 UniqueUserDiscussion discussion
 
diff --git a/config/routes b/config/routes
index 999f36b..7118d51 100644
--- a/config/routes
+++ b/config/routes
@@ -74,7 +74,8 @@
 -- ## Browsing a particular user (may need fleshing out?)
 --
 
-/u/#UserHandle UserR GET
+/u/!#UserIdUserByIdR GET
+/u/#UserHandle UserR GET
 
 -- Yesod jibber jabber
 /static StaticR St