Cookie Notice

As far as I know, and as far as I remember, nothing in this page does anything with Cookies.
Showing posts with label work. Show all posts
Showing posts with label work. Show all posts

2016/04/04

Taking the Great Leap Forward with Dancer2

I am working on understanding a raft of technologies, including Dancer and Bootstrap, in order to make our web presence look more current and, more importantly, be more maintainable. 

I'm learning a lot, which is not the positive statement that it sounds like. Rip Van Winkle certainly learned a lot after he slept for twenty years and woke up in post-Revolution America. 

For most of my time as a web developer, when I needed to do authentication, I did it with Apache's built-in server authentication. The number of users I needed to handle was always small enough, and except for a few things where it was entirely for me, I was not the person in charge of creating and maintaining the password system.

I know and believe in a few points. I know that I as admin of a system should not have access to the plain-text passwords of the users. I know that it is common to have two password fields when creating/changing passwords, to ensure you have the right spelling. I'm not 100% bought into that one, but I understand it. I know you keep an email address for "Forgot Password" systems can use your email system as a factor to ensure you're authorized to change that password. And I know you should use encryption systems created by experts, rather than roll your own and create a system that's full of holes. 

I've been using Dancer2::Plugin::Auth::Extensible, trying to get the parts I'd want for a generic system before working on things that I'd want for the lab, and there's much I'm comfortable with. I can get people logged in. I can set roles and limit access to users with specific roles. I can store the date of the last login, which might be useful. And it's all backed by MySQL, which means that, even without an admin dashboard, I have the skills to change anything about a user profile that needs changing.

But we don't want that. We want the techs and the users to have the ability to set values for the user, if for no other reason than I want to be able to move on to other things. So I need to figure out, as a standard, how these things go together, so I can try to implement it. I have things that I'm getting together. I do have questions, though.
  • Clearly, lots consider the repeat-your-password thing as an important part of the password workflow, and clearly, this is a check that I need to at least be able to do. I'm seeing a huge task-duplication thing, because you want to be able to say "passwords don't match" on the client side before the user presses go, but you always want to check things on the server side before you click "submit", because the user might block Javascript. Is this something that Bootstrap can help with? Or will I have to write something like that? I'm willing and able, but with the layout stuff and the way of the future encouraging us to have CSS and JS that's combined and minified and gzipped and included on every page, I'd like to have that taken care of automatically by the framework than go custom.
  • It's not immediately clear in the docs how to enable password encryption. I do need to read that more. (Solved. It was in the docs. I need to read the docs.)
  • I'm hitting the concept of roles and finding that they'd make certain things very useful. I'd like to be able to handle things like unix groups instead, but as is, they allow certain things that will make the end result a lot easier.

    I found, however, that, while the tools to check and control access due to roles are solid, setting and removing roles is less so. I asked the Dancer2 IRC about it, and was told to make a Github issue. I did, and then I wrote something that, within context of my tooling, adds add_user_role and remove_user_role functions. So I have that covered and can move forward.
There's more than this. I could see us wanting a website that has static, CGI and Dancer2 paths, although I think that, when I wake up with a start at 3am, bathed in sweat with a racing heartbeat, this thought is what I was dreaming about. But I'll wait for a while before I have to worry about that.

And, with a parting shot from @perigrin.

2010/05/06

I Need More Mojo

We have an instrument machine. What that means is, we have a dingus that's computer-controlled, and we have a computer to control the dingus. This dingus is complex, shiny and new, and this machine has Windows 7 64-bit and 16 gigs of RAM. Easily the swankest machine in the lab, but since we don't use the instrument nearly at all, we don't use the machine at all.

We had occasion today to use it today. Specifically, there was CSV that someone wanted to open in the use-within-30-days initial Office Excel 2007. And it's been well past 30 days. We have a site license, so I grab the discs.

It will not recognize the 2007 disc as a disc, even, but 2003 goes on easily. So I install Office 2003, check for updates, let it reboot, and try again.

No love for the Office 2007 install media.

I have a netbook w/o CD drive so I put an external USB CD drive on my Christmas list. Shazam! It works.

So, I get my boss. "Hey, boss. This is flaky. See how it works here?" I take the CD out of my drive and into the machine's internal drive.

And it works perfectly

I swear, this is the second time this has happened to me this month! He just stands near misbehaving hardware and it sees the error of it's ways. I need this aura of fix. I need more freakin' mojo.

2010/01/29

Charting the Descent into Madness

A friend is getting XMPP to work on a private network, mixing XP, Linux and Solaris. So private, only he's on it. Madness after the cut.


2009/12/22

Lies! All Lies!


Most of the lab wants to take the week between Christmas and New Years off. But there are researchers who are still dropping off samples today, the day before Festivus. I've got a lot of problems with you people!