Keeping geek notes for myself once in a while – forgive the lack of useful additional information for other folks.  If you have an interest or an expertise in these areas, happy to hear comments or thoughts….

 

Working in how to integrate Spring security, CXF, and OSGi…  (http://enikofactory.blogspot.com/2009/10/cxf-wss4j-spring-security-recipe.html)

Then interested in how to additively build up Spring security’s construct for interceptors…

 

Also see http://cxf.apache.org/distributed-osgi-reference.html

 

Additive:  Declarative Services, whiteboard pattern…..

 

Documentation – converting live docs on GitHub to other forms readily… (http://stackoverflow.com/questions/2606606/jekyll-documentation-to-pdf-with-toc)

After more than a year of being “the” person who had the knowledge of how to not only to build out a set of code, but then also integrate its JAR and configuration schtuff into our products, this week hit the ‘automate it’ tipping point. I’m “the” person because I have the right combination of access, knowledge, and just plain commitment to making sure that things happen.  That also makes it too easy for me to just do something, rather than knocking down any of those hurdles for someone else to handle these. That’s not only a risk to me that I’ll be the ‘stuckee’ for this task ongoing, but also of course is a risk to the project. If I’m not around, nothing happens on this tasker.  And because it requires knowledge, if I’m brain-addled for any reason, it’s too easy to make a mistake in configuration.

Enter automation, via an Ant script.  It’s simple, efficient, and lets me set up either a dev/test configuration, or a mechanism bundled up for distribution (e.g., without shipping out server certificates, cert passwords or any remaining log file output).  Spent probably 2 1/2 hours yesterday sum total, and then built out the last piece on my laptop this evening, just finishing out a sleepless night with a quick blip of code to help solve a problem for both me and my team. Integration in this morning, and booyah!  One button integration, which means less time checking/double-checking/triple-checking before shipping out a new capability.  Check the script into configuration management, and implicit knowledge share.  Share out my VM, and knock out another hurdle for access.  And, of course, the next person to touch the script will inevitably find some way they think it should be improved.  All I can say is: “Moose Turd Pie!”  Improve to your heart’s content!   (So long as it still works…)

It’s a sad statement on how much code I get to write from scratch that this gives me such satisfaction.  But a little bit of geek on is a good way to start the day.

Excerpt from a conversation with CleverBot, a web application that uses an artificial intelligence algorithm to chat back and forth.

Cleverbot: You want me to quest for a good film?

User: Quest? Sure!

Cleverbot: Yes. What is your quest.

User: My quest is to find a good idea for a mobile game.

Cleverbot: You are a female?

User: Yes.

Cleverbot: What do you look like?

User: Wow, that’s the stereotypical response online!

Cleverbot: Yes it is.

User: Ugh.

Cleverbot: ‘ugh’ is not a proper response.

User: Neither is ‘what do you look like’ when told I’m female.

 

Submitted for OSCON 2013, in what’s now become an annual tradition.  I attended in 2010, submitted briefs in 2011 and 2012, and now submit again in 2013.  I have the topic to bring it home: two, actually, both related to government FOSS, with a third idea in mind related to some innovations in our new architecture.  I also have, of course, the strong interest to be a visible female presenter at a technology conference.  Today’s sermon topic at church had to do with living big dreams, specifically those that are bigger than your largest life-bound items, which are tied to purposes put in place for you before you were even born.  I keep returning to themes in my life of Christian business, Christian women leaders, female technology leadership…  these appear to me to be directly in line with listening to talents and interests given, and using them to help show paths to other women so that they too might make use of their talents.  I am convinced that one could update Proverbs 31 to show that same woman providing for her family through programming.  I say with quite a bit of tongue in cheek that her “lamp does not go out at night” could be because much programming is done in the late evening hours.

Our IT / infrastructure guy is going on vacation.  Left behind a cheat sheet for his backup to help him understand how best to assist our team with Git…  LOVED his notes as to how to help team members who approach with questions or challenges with using Git (distributed version control system, otherwise known as ‘let all of work on code together’).  Catch his last bullet and tell me that he doesn’t get how to motivate software developers…

“I broke Git again/I don’t understand Git/Tell me how to use Git/What is Git/Git? Is that like a potato?”
First, if they don’t seem to understand the fundamentals of Git, ask them if they’ve read Chapters 1-3 of the Git Book: http://git-scm.com/book

If they haven’t, make them read it before continuing. Git can be complex and if they don’t know the fundamentals you will have to hold their hand through everything, and they will likely end up breaking something.

We also have a Confluence page with a bunch of helpful Git links and examples: Git Resources

If they are still confused, feel free to question their man/womanhood. Just do it nicely.

This is all after a tutorial, a few guidance emails, instructions available on our wiki (Confluence instance)…  He’s done a great job bringing the team along in its transition from Subversion (a different version control system which has a different model) to Git.  So now “if they are still confused, feel free to question their man/womanhood.”  But “do it nicely”….

Had reason to sign up for an Amazon S3 account yesterday to use as a download area for the anticipated spike in traffic to our project in the very near term. Was amazed that:the following set of steps worked so amazingly well:
– the site had me give it some info, including a phone number
– site told me it was going to call, and that I need to punch in a pin # it put up on the screen there
– I got an automated phone call and entered that pin
– as soon as I got off the phone, the site updated itself to say that it was creating my S3 account structure.

Amazing! Web site synched with autodial phone system which (I think) had its message crafted based on my info which then synched back to the web site’s back-end server to do finish processing and do a server push out to the site itself saying that the transaction had completed. Excellent user experience: no time lapses seen and my account got created seamlessly. Very cool use of multiple technologies, done breezily on the part of Amazon.

I’m trying to use a class within Grails. Specifically, I want to use one of their Codecs classes that comes within Grails itself to let me build a tool to encrypt a password, so that I’d then be able to set up their Codecs to use to decrypt / use within the application, so that I’m not storing an unencrypted database password. Grails provides Codecs – should be “easy” to use them, rather than needing to write my own. Cryptography is one of of those areas that causes code reviewers to grow concerned, in terms of releasing code out into the wild, so being able to point to making use of an existing class would have been highly helpful. However, in attempting to use a static encode closure, getting all sorts of muck which I’d need to include in the classpath, etc. Grrrrrrrrrr….

I had an opportunity to speak at the NASA/Veteran Affairs/State Department’s Open Source Summit earlier this week. I got to be part of a lineup of speakers sharing with attendees on the topic of ‘Building and Managing Community’.   The topic’s near and dear to my heart, as it’s a lot of what I spend my time on at work for the program that I and my company support. It’s also one of the differentiators, I think, in terms of why we’ve been successful so far in this grand experiment on behalf of our customer. Enabling people to understand what we’re building for them, to participate in that and advance it further, even when it’s in directions that we either hadn’t considered or frankly aren’t as interested in pursuing – that takes a lot of time to do well. Until we get better at it, we’re in a mode where we’re investing person by person, responding to emails and evaluating patches folks have submitted. Our private email group so far has > 250 messages on it this month, all of which are moderated to make sure the person sending it didn’t accidentally leak something they shouldn’t, and most of which are responded to. (OK, the 250 counts my team’s responses – I’d rather spend time giving good responses than getting perfect metrics – our responses are moderated, too, so technically an accurate metric there.) One of my goals over the next few months is to figure out ways to provide better community engagement outside of the email pattern, as some things coming down the pike for this year will cause our 1500+ community to grow significantly. I was impressed to hear that Eclipse, across its many many projects and millions of lines of code, only has 15 folks on payroll. That was inspiring, and will cause me to go looking for patterns and ideas I can use in community building to assist with those sorts of approaches. (Suddenly debating attending the Community Leadership Forum in Portland in July this year – was a very useful thing to attend two years ago as we were standing up our program. I may need a refresher, methinks.)

The room wasn’t large, compared to some other rooms I’ve spoken in of late, and the audience was interested in our topic. The forum of the presentations was that each speaker had 6 minutes to talk on their topic, and then we’d later break out into separate rooms to let folks engage directly. I wish it had worked out slightly differently, as that meant the speakers didn’t get to engage across each other and all of the attendees in the room ended up in different rooms: one of my lessons learned throughout this whole community-building effort for our program has been that I/we don’t know it all, and there’s nearly always someone who has a nugget or more that would be useful to hear and consider. Didn’t really have much of that opportunity. I didn’t get to attend Deborah Bryant’s talk, as I got pulled in with someone who wanted to chat after my talk.  (Did catch the tail end of Mike O’Neill’s breakout session on OSEHRA – very interesting to hear other government projects treading similar paths as ours.  Wandering across the OSEHRA site this morning, seeing lots of great community tools / patterns I’d like our project to emulate.)  My own breakout drew the slot before lunch as my time, which was also the slot at the same time as the executive director of the Eclipse Foundation and an Apache Foundation guy (separate rooms), so, uh, I and one attendee had a great conversation. Well worth it, though, as this guy was working to do some of the same kinds of things for his customer, and we were able to share notes and I could steer him towards some resources built out to help with that path.

Did realize it’s a long time since I’ve been in Toastmasters. 6 minutes is a short time to try to pack in a few key points. Since I work on behalf of an agency that has certain review requirements before you can speak publicly, I couldn’t develop new materials for this briefing. The slide deck I pulled from was one which had originally been built out for a 30 minute talk. Before this week’s talk, I removed a number of slides, and took out a few bullets that didn’t lend to my point for this week, but it still ended up as a talk delivered at race-pace. Clear ideas in my head, some of which came out well, I believe, but I’m still waiting to see the video to do my own critique of what came out and how well it came across. And possibly ship myself back to Toastmaster’s sessions….

So, the talk was Thursday, and I guess my brain just got around to processing everything last night while I was sleeping. Woke up from a dream this morning just as I was at a conference, being called up as one of the first speakers, patting myself on the back for being well prepared and ready to provide useful information. The conference organizer (thankfully only in my dream) tells us as we’re moving up from our seats that we’re going to kick off the conference by having the first presenters sing the Star Spangled Banner together. Woke up at that point, kind of giggling at myself. Uh, I sing in church and I’ll sing in worship gatherings, where the point is to worship and make a glorious noise unto the Lord. I don’t sing otherwise, because I don’t sing well. Glad that even in my dream I didn’t have to witness the outcome… No idea what the dream “means”, in terms of what my brain is processing back there, but now I’m not only mentally running through whether I got my points across well in my actual speech, but whether I can remember the words of the ‘Star Spangled Banner’ and which points were going to be painful for listeners versus radically painful for listeners. Hee hee….

(Technical note: for those of you who look up the agenda, I don’t work for DISA, the agency they have listed.  We cleared that up slightly at the conference, just to convey that the agency my company and I work for has requirements as to what you can share about who you work for, and so I wouldn’t be sharing that information quite so directly there…)

“Everyone” thinks open-source is good.   Software that’s free to you; software whose code is available for you to learn from, extend, or modify; software that’s presumably updated periodically by a hoard of magic elf volunteers for the sake of their own technical intellectual gratification.

Now..  are you one of those folks who contributes to an open-source project?  Hmmm – very different angle.

Now…  are you one of those folks who figures out how to run an open-source project, bringing together the disparate interests of that presumed hoard of volunteers into one uber well-running machine?

Wow.  I used to think that the hardest job in the world to do well would be to set up a high performing team at a fast food restaurant.   Staff turn-over, low pay, and the like.  I’m beginning to reconsider: the most interesting leadership and management challenges seem to be in the open-source space, particularly for projects that have a significant user base and vested interests from many parties interested in driving direction.  Lots of smart people, lots of competing interests, lots of feeling of a need to get somewhere in particular, lots of directions in particular.

Neat things to think about…