tag:blogger.com,1999:blog-60197417175557517372024-03-13T09:14:15.510-07:00Low Level ManagerManagement, Coding, and Life.Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.comBlogger246125tag:blogger.com,1999:blog-6019741717555751737.post-16241257874561274762021-08-29T19:21:00.005-07:002021-08-29T19:43:04.016-07:00LDAP: peering behind the curtain.LDAP is mysterious and opaque to me. Deep dark magic, etc.
Summary
Jump down to see perl and ldapsearch examples for querying an ldap server as
well as example search filters.
Long rambling background journey
I've tried a few times over the years to poke around -- notably making that
Dancer example to authenticte via ldap. But I've never had, you know, authz
and approval to futz with an Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-65167828007116382622021-07-02T13:44:00.000-07:002021-07-02T13:44:21.711-07:00We're baaaaaack!Lowlevelmanager.com domain is back online!
Godaddy allowed a ring of foreign IPs to access my account and modify domains.
Most actions would have triggered warning emails. Modifying DNS records does
not. Nor are changes to DNS logged. Their actions did not trigger any warnings
or any fraud detection at all. Who even allows admin traffic from russia,
china, or brazil here in the Andrew Grangaardhttp://www.blogger.com/profile/03847262632044642929noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-12726817554503152002020-06-16T10:22:00.000-07:002020-06-16T11:30:23.563-07:00Profiling vim start up timeAfter updating my vim plugins and adding a few new ones, I found my start up time became unreasonably slow. I blamed my tag generating plugin because of how the slowdown only occurred when opening vim with a file. That was a red herring, removing it didn't speed things up. Checking that projects issues I found that it was already switched to be asynchronous.
While investigating, I found a Andrew Grangaardhttp://www.blogger.com/profile/03847262632044642929noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-57980624160378641132020-06-01T13:27:00.002-07:002020-06-01T13:30:39.063-07:00Updating syntax highlighting imports to CDN (alexgorbatchev)TL;DR:replace:
https://alexgorbatchev.com/pub/sh/current/
with:
https://cdnjs.cloudflare.com/ajax/libs/SyntaxHighlighter/3.0.83
Syntax highlighting
For many years I have used a javascript based syntax highlighter on this blog. Including it directly from the author Alex Gorbatchev's site alexgorbatchev.com. Lately his site has been timing out behind Cloudflare (522) and slowing my initial Andrew Grangaardhttp://www.blogger.com/profile/03847262632044642929noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-75554409256760764062020-06-01T12:13:00.000-07:002020-07-06T19:11:53.798-07:00An expansive view of back-end engineeringOriginally written for an introduction email/cover letter, this ran well over blog length. I moved it here and aggressively edited the email. The email is still way too long. I get loquacious when I'm passionate and excited.
Je n’ai fait celle-ci plus longue que parce que je n’ai pas eu le loisir de la faire plus courte.
-- Blaise Pascal
I didn’t have time to write you a short letter, so I Andrew Grangaardhttp://www.blogger.com/profile/03847262632044642929noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-4087000778326806362020-05-01T23:42:00.001-07:002020-05-01T23:42:23.981-07:00Rust playground from your own gistThe rust playground is awesome.
It allows playing with rust in the browser, without needing to install anything locally. These playgrounds / playpens are popular with newer languages. I've definitely seen with rust, go, kotlin, and others. Javascript ones allow script and css and other elements.
When editing a playground, the file can be modified, compiled, and run. The file can be Andrew Grangaardhttp://www.blogger.com/profile/03847262632044642929noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-33596329093872599162020-05-01T23:16:00.000-07:002020-05-01T23:16:07.399-07:00Embedding a single file from a github gistEmbedding a github gist
Github has improved their gists by directly providing an embed script.
This is pretty handy. From the sharing dropdown on the gist, choose embed and then copy the script tag. Paste that directly into your html (say on your super minimal blogging platform, like blogger/blogspot).
The script will embed the gist with syntax highlighting and links to view the raw gist.
Andrew Grangaardhttp://www.blogger.com/profile/03847262632044642929noreply@blogger.com2tag:blogger.com,1999:blog-6019741717555751737.post-39127710553613212412020-05-01T13:50:00.002-07:002020-05-01T23:16:39.530-07:00toy interiew problems in rust2019 was my "Year of Rust". I'd hoped to blog about that, yet here we are. :)
Recently I've been doing random problems at random "coding-interview" sites. This is a bit like working musical scales. Practice in flexing the low level muscle memory to allow it to fade into the background and allow thinking at a higher level.
I mostly do them in python to work out Andrew Grangaardhttp://www.blogger.com/profile/03847262632044642929noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-83983648434668109802019-11-05T13:11:00.000-08:002019-11-05T13:29:25.325-08:00Update tmux default directory for new windowsTIL:
the -c flag to attach-session will update the default current working directory for new windows.
attach-session can be run from the tmux command prompt with an arg of -t . to connect to the current session,
so we don't need to detach and reattach.
attach also supports -c
tmux makes the current pane's working directory available in the command prompt as '#{pane_current_path}'
new-window alsoAndrew Grangaardhttp://www.blogger.com/profile/03847262632044642929noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-235193094765424902019-02-09T22:52:00.000-08:002019-02-09T22:56:27.625-08:00Hacktoberfest 2018For Hacktoberfest 2018, I set a goal of completing both the primary contest and at least one side quest. I succeeded!
Hacktoberfest is a fun "contest" sponsored by DigitalOcean and Github each October to encourage open-source contributions. If you make enough pull-requests after signing up, then you win a tshirt and some stickers. This year the primary goal was 5 pull-requests on any public Andrew Grangaardhttp://www.blogger.com/profile/03847262632044642929noreply@blogger.com2tag:blogger.com,1999:blog-6019741717555751737.post-91551763734168458002019-02-09T22:26:00.000-08:002019-02-09T22:26:01.487-08:00Hi Blog!It's been a dark few years here on the "darkest timeline." I'm going to let my light shine -- I'm hopeful that I'll write some fun tech content in the near future detailing my current adventures.
I have a full docket of books and videos I'm reading and watching on safari. Triggers thoughts about how to amalgamate the knowledge into a lecture/presentation. Assuming I keep up this newly recoveredAndrew Grangaardhttp://www.blogger.com/profile/03847262632044642929noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-46490041356078402962016-09-16T17:46:00.001-07:002016-09-16T17:46:23.544-07:00
But these little setbacks are sometimes just what we need to take a giant step forward, Right Kent?Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com1tag:blogger.com,1999:blog-6019741717555751737.post-89221893327888886122016-05-25T11:48:00.000-07:002016-05-25T11:48:05.501-07:00maintaining SSH_AUTH_SOCK in tmuxTmux has a neat feature where certain environment variables can be updated during attachment.
SSH_AUTH_SOCK is included by default. When you reconnect from within a new ssh environment, SSH_AUTH_SOCK is updated inside of tmux. Any new windows created in the tmux session will have the updated ssh information.
Already running shells are not updated (how would tmux tell the shell to update?).Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-23715586013360236022016-02-09T13:59:00.000-08:002016-02-09T13:59:41.655-08:00Interview with an adware author.
It was funny. It really showed me the power of gradualism. It’s hard to get people to do something bad all in one big jump, but if you can cut it up into small enough pieces, you can get people to do almost anything.
http://philosecurity.org/2009/01/12/interview-with-an-adware-authorAndrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-28522319162553833272016-02-07T11:31:00.004-08:002016-02-09T13:56:57.105-08:00how-to: run git interactive rebase non-interactivelyTL;DR
git alias to autosquash fixup commits non-interactivly:
git config --global alias.fixup '!GIT_SEQUENCE_EDITOR=true git rebase -i --autosquash'
non-interactive interactive rebase
In the normal workflow, git interactive rebase presents the user with a document to edit interactively to modify and reorder commits. What if you want to run it non-interactively?
Yes, you can do this. And yes Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com3tag:blogger.com,1999:blog-6019741717555751737.post-3357834572737547052016-02-07T10:16:00.001-08:002016-02-07T10:16:23.434-08:00rust: to_string() vs to_owned() for string literalsAlways use to_owned() to convert a string literal.
I found this lovely explanation of to_string() vs to_owned() for rust. Only use to_string() for other types that can convert to string.
You should always be using to_owned(). to_string() is the generic conversion to a String from any type implementing the ToString trait. It uses the formatting functions and therefor might end up doing Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-29983115110932246262016-01-24T12:22:00.004-08:002016-01-24T12:25:44.929-08:00SCALE14xI'm presenting at SCALE 14x on Sunday January 24, 2016.
Fix the Website: a devops success story (details)
Here are my slides!
Original Keynote file
PDF
pdf with presenter info
Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-68216224035122298922015-07-08T18:34:00.002-07:002015-07-08T19:09:17.902-07:00Effective Git messages and history inspectionEmbedded below is my presentation from YAPC.na 2015 on Effective Git: better commits via inspecting history and code archeology.
I showed the elements of an effective commit message, why they're useful during inspection of the code, and how to coerce your rough draft feature branch into a production ready artifact.
The slides in the video are washed out, so follow along with the
Slides (pdf)
Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-20162095621657751082015-04-22T20:43:00.000-07:002015-04-22T20:48:44.135-07:00Renew expiring GeoTrust HTTPS/SSL certificate in Amazon AWS for S3 and CloudFrontKey Insight
AWS doesn't let you modify the key for server-credentials, forcing you to create new ones and then update CloudFront(CF) and Elastic Load Balancer(ELB) configurations to use the new cert.
My corporate https/ssl certificate is expiring. I need to renew it and get it pushed to AWS IAM for use in S3 and CloudFront. If you're in the same boat, I hope these instructions help you out.
Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-34732559076295550102015-02-08T23:48:00.004-08:002015-02-08T23:51:19.327-08:00haskell on centos 6.5 Use justhub rather than version in epel repo.
Don't bother with the version of haskell-platform in epel repo. It is sufficiently out-of-date (circa 2010) that it can't update via cabal install cabal-install. Jump straight to using justhub.
Justhub example for centos 6.x:
# install the justhub yum repo:
sudo rpm -ivh http://sherkin.justhub.org/el6/RPMS/x86_64/justhub-release-2.0-4.0.el6.Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-32663278447571956652014-07-03T13:10:00.000-07:002014-07-03T13:12:34.817-07:00Monitorama Conference
I attended the second Monitorama Conference last month in Portland and the first last year in Boston. It’s been a privilege and joy to watch the journey as the conference coalesced from twitter gripes to discussions to international happening.
“An Open Source Monitoring Conference & Hackathon”, Monitorama is focused on embracing open source and improving monitoring to Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-83595536548853262342014-06-11T11:07:00.000-07:002014-06-11T11:10:52.390-07:00Test-Driven Development with Python.Harry Percival (@hjwp / obeythetestinggoat on gmail) has written a new book on TDD with python: "Test-Driven Development with Python." An early release of the book is available for free reading on chimera.oreilly.com.
Last week he led a webcast, "Outside-in TDD and Unit Test Isolation with Python, Django and Selenium." It was almost 2 hours, lots of Good stuff. He started by explaining Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-5835215819803761102014-05-12T16:56:00.001-07:002014-05-12T17:15:03.516-07:00Monitorama Slides 2014 <!-- wiki content -->
Videos will be posted in the monitorama channel on vimeo: http://vimeo.com/monitorama. Until then, enjoy this collection of slidedecks and twitter handles.
Day 1:
Please, no More Minutes, Milliseconds, Monoliths... or Monitoring Tools!
Adrian Cockcroft
@adrianco
http://www.slideshare.net/adriancockcroft/monitorama-please-no-more
Gene Kim's Andrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-13527640328915472642013-11-15T13:18:00.001-08:002013-11-15T13:18:54.977-08:00Kinesis Advantage: mapping the Macintosh Power keyTL;DR
Press = and Scroll Lock together while in a pc master mode to make Scroll Lock the Macintosh Power Key.
Motivation
I normally use non-windows pc mode (=p) for my kinesis. Now that I'm on a mac I need a Command key, so I switched to windows pc mode. Windows pc mode only changes one thumb key relative to non-pc mode, the right alt becomes a Command/Windows key. Mac mode remaps all theAndrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0tag:blogger.com,1999:blog-6019741717555751737.post-81953539281672477212013-06-08T12:47:00.001-07:002013-06-08T12:47:48.552-07:00Hack day with Kenny: Fey::ORM, testing and screen. [lost draft from 1/12/10]
After sleeping through the LILAX users group meeting (sorry guys), I rolled up to Kenny's (Kenny Flegal), where he had invited me for a day of coding and authentic Salvadorian food. Win Win!
I showed him briefly the topic of my upcoming Monger's presentation, but mostly we looked at his current project. He is forking a GPL licensede project, to recreate part of the functionality and extend itAndrew Grangaardhttp://www.blogger.com/profile/14818383405782029025noreply@blogger.com0