As Obama heads back to office, a battle rages over the tech that got him reelected

Ryan and others argue, because the Obama tech team built on top of open source code — code that has been shared publicly and can be “forked,” essentially edited, by anyone. “The things we built off of open source should go back to the public,” says Manik Rathee, who worked as a user experience engineer with OFA. The team relied on open source frameworks like Rails, Flask, Jekyll and Django. “We wouldn’t have been able to accomplish what we did in one year if we hadn’t been working off open source projects,” says Rathee.

via As Obama heads back to office, a battle rages over the tech that got him reelected | The Verge.

I think this is all kind of silly.  The code is probably not that novel.  I’d be more interested in simply learning more how they did it and I might be interested in their development process more than the actual code itself.  Although this team seemed to have done a good job, it was Obama who won the election — not the programmers or the program.  I find it funny that the non techie politicians want to keep all of this proprietary like the code itself has some sort of value.  I’m sure in 4 years this program will be so obsolete no one would think of using it.

About the OpenMP ARB and OpenMP.org

The OpenMP Application Program Interface (API) supports multi-platform shared-memory parallel programming in C/C++ and Fortran on all architectures, including Unix platforms and Windows NT platforms. Jointly defined by a group of major computer hardware and software vendors, OpenMP is a portable, scalable model that gives shared-memory parallel programmers a simple and flexible interface for developing parallel applications for platforms ranging from the desktop to the supercomputer.

via OpenMP.org » About the OpenMP ARB and OpenMP.org.

ACM Classic: Reflections on Trusting Trust

The moral is obvious. You can’t trust code that you did not totally create yourself. (Especially code from companies that employ people like me.) No amount of source-level verification or scrutiny will protect you from using untrusted code. In demonstrating the possibility of this kind of attack, I picked on the C compiler. I could have picked on any program-handling program such as an assembler, a loader, or even hardware microcode. As the level of program gets lower, these bugs will be harder and harder to detect. A well installed microcode bug will be almost impossible to detect.

via ACM Classic: Reflections on Trusting Trust.

The Billion-Dollar Startup: Inside Obama’s Campaign Tech

The Obama campaign tended to hire senior developers, which meant nearly everyone on the team had an extensive skillset. They worked in weeklong sprints, with the goal of releasing new software every week. They were determined to remain technology agnostic, building apps in a variety of languages—Ruby on Rails, Java, PHP backed by Kohana. The management and engineering teams worked in close physical proximity, helping close the feedback loop: if something was going drastically wrong, the path to fixing it started with a ten-yard walk to another cubicle and smacking the responsible party in the back of the head.

via The Billion-Dollar Startup: Inside Obama’s Campaign Tech.

In a perfect world, the Romney campaign would have led its volunteers through several dry runs on Orca before Election Day; but someone had decided to keep the major parts of the software a secret for as long as possible. As a result, Orca proved toothless against Narwhal and the other Obama apps.

agedu: Unix / Linux Command For Tracking Down Wasted Disk Space

Say hello to agedu tool (pronounced as ‘age dee you’) – it scans a directory tree and produces reports about how much disk space is used in each directory and subdirectory, and also how that usage of disk space corresponds to files with last-access times a long time ago. In other words, this command might help you to free up disk space.

via agedu: Unix / Linux Command For Tracking Down Wasted Disk Space.

Can I access agedu reports using terminal mode?
Type the following command (replace /home/wwwroot with actual path):
$ agedu -t /home/wwwroot

Errata Security: Apple’s secret “wispr” request

The reason Apple does this is because you may be using an app other than the web browser. For example, the only thing you might be doing is syncing your e-mail. In such situations, you would never see the portal page, and your app will mysteriously fail to connect to the Internet.

Therefore, before your app has a chance to access the network, Apple does this for you. It sends out a request to the above URL. If the request gets redirected, then Apple knows there is a portal. It then launches a dialog box, containing Safari, to give you a chance to login.

via Errata Security: Apple’s secret “wispr” request.

At my local Starbucks, all web surfing is free. But, Windows presents a captive logon page where you must accept the Terms of Service, but the iPhone doesn’t. I assume the portal detects this URL, and automatically opens up the access-point without doing a redirection. I need to test witha Linux distro in order to figure out what’s going on.

Introducing Qt 5.0 | Qt Blog

While we have cleaned up many things in our internal architecture and made Qt more modular, leaner and faster, we have managed to keep application compatibility in a way that most applications will work with very few changes and a simple recompile on Qt 5.

Of course, this also implies that Qt Widgets are fully supported and an essential part of Qt 5.

via Introducing Qt 5.0 | Qt Blog.

How to find out if X is an element in an array?

Try using the modern “smart match” operator:
if ( $tofind ~~ @in )

via How to find out if X is an element in an array?.

Had to do this for a script I’m writing where I need to compare two lists and find out which elements in list A aren’t in list B.   This was the simplest of all the solutions described in the above link.  I haven’t actually implemented this yet…

Update 12/19.  The above does indeed work.  Not sure how they do it.  It would seem comparing two lists of length n would be an O(n**2) problem.  Might have to look into a proper database however it’s still manageable at this scale.

Also, a shoutout to perlmonks.org, a site that usually gets high rankings on my searches for perl related information and that is always concise and easy to read to  divine the info I was searching for.  The above link is a perfect example.  It points to a page that contains a lot of different implementations of what is probably a very common algorithmic problem.

The Imgur API – General Information

Imgur’s API exposes the entire Imgur infrastructure via a standardized programmatic interface. Using Imgur’s API, you can do just about anything you can do on imgur.com, while using your programming language of choice.

The Imgur API is a RESTful API based on HTTP requests and XML or JSON responses. If you’re familiar with the APIs of Twitter, Amazon’s S3, del.icio.us, or a host of other web services, you’ll feel right at home.

This version of the API, version 3, uses OAuth 2.0. This means that all requests will need to be encrypted and sent via SSL/TSL to https://. It also means that you need to register your application, even if you aren’t allowing users to login.

via The Imgur API – General Information.

10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10 from MIT Press, reviewed.

10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10, a new book collaboratively written by 10 authors, takes a single line of code—inscribed in the book’s mouthful of a title—and explodes it.

That one line, a seemingly clumsy scrap of BASIC, generates a fascinatingly complicated maze on a Commodore 64

via Computer programming: 10 PRINT CHR$ (205.5 + RND (1)); : GOTO 10 from MIT Press, reviewed. – Slate Magazine

The book, which has also been released for free download under a Creative Commons license, unspools 10 PRINT’s strange history and dense web of cultural connections, winding its way through the histories of mazes and labyrinths, grids in modern art, minimalist music and dance, randomness, repetition, textiles, screensavers, and Greek mythology. There are forays into early computer graphics, hacking, Cold War military strategy and Pac-Man. References abound, from the Commodore 64 user’s manual to Roland Barthes’ S/Z. This is a book where Dungeons and Dragons and Abstract Expressionism get equal consideration.