Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Wednesday, April 12, 2017

The Thor: Ragnarok Trailer Gives Us an Excuse to Do Physics

Wired has a cute article, The Thor: Ragnarok Trailer Gives Us an Excuse to Do Physics analyzing the physics of the Thor/Hulk punch in the new trailer. They embed some simulations using two things I'd hadn't heard of before. The embedding of code seems to happen via trinket and the code is using GlowScript IDE to do the physics animation.

Thursday, March 02, 2017

A software engineer is detained for several hours by U.S. Customs and given a test to prove he’s an engineer

Caroline Fairchild reported on LinkedIn (I didn't really know they did reporting) A software engineer is detained for several hours by U.S. Customs — and given a test to prove he’s an engineer .

It was Sunday, Feb. 26, and the 28-year-old software engineer had left his home in Lagos, Nigeria, to come to the United States for the first time. It was a work trip. For the last six months, Omin had been working for Andela, a startup that connects the top tech talent in Africa with employers in the U.S. Andela accepts less than 1% of applicants into its program and is backed by Facebook’s Mark Zuckerberg and Priscilla Chan. For this particular role, Omin was helping NYC-based fintech startup First Access create a JavaScript application for emerging markets and had secured a short-term joint B1/B2 visa.   

After landing, Omin waited for 20 minutes and then reached the front of the line, where a Customs and Border Protection officer asked him a series of questions. It was here that Omin realized that the job might be challenging, but getting into America could now be impossible. No one at Andela had prepared him for the new reality."

Wednesday, November 23, 2016

Continuous Unix commit history from 1970 until today in Git

The Unix History Repository on GitHub is a Continuous Unix commit history from 1970 until today:

The history and evolution of the Unix operating system is made available as a revision management repository, covering the period from its inception in 1970 as a 2.5 thousand line kernel and 26 commands, to 2016 as a widely-used 27 million line system. The 1.1GB repository contains about half a million commits and more than two thousand merges. The repository employs Git system for its storage and is hosted on GitHub. It has been created by synthesizing with custom software 24 snapshots of systems developed at Bell Labs, the University of California at Berkeley, and the 386BSD team, two legacy repositories, and the modern repository of the open source FreeBSD system. In total, about one thousand individual contributors are identified, the early ones through primary research. The data set can be used for empirical research in software engineering, information systems, and software archaeology. The project aims to put in the repository as much metadata as possible, allowing the automated analysis of Unix history.

The files appear to be added in the repository in chronological order according to their modification time, and large parts of the source code have been attributed to their actual authors. Commands like git blame and (sometimes) git log produce the expected results.

Friday, July 22, 2016

Not Politics: Some Random Tech Stuff

Researchers find over 100 spying Tor nodes that attempt to compromise darknet sites

These nodes -- ordinary nodes, not exit nodes -- sorted through all the traffic that passed through them, looking for anything bound for a hidden service, which allowed them to discover hidden services that had not been advertised. These nodes then attacked the hidden services by making connections to them and trying common exploits against the server-software running on them, seeking to compromise and take them over.

The researchers used "honeypot" .onion servers to find the spying computers: these honeypots were .onion sites that the researchers set up in their own lab and then connected to repeatedly over the Tor network, thus seeding many Tor nodes with the information of the honions' existence. They didn't advertise the honions' existence in any other way and there was nothing of interest at these sites, and so when the sites logged new connections, the researchers could infer that they were being contacted by a system that had spied on one of their Tor network circuits.

MIT’s anonymous online communications protocol Riffle could beat Tor at its own game

In addition to wrapping messages in multiple layers of encryption (the eponymous technique of Tor, “The Onion Router”), Riffle adds two extra measures meant to baffle would-be attackers.

First, servers switch up the order in which received messages are passed on to the next node, preventing anyone scrutinizing incoming and outgoing traffic from tracking packets using metadata.

Then comes a two-part measure to prevent a malicious server from simply replacing real messages with dummies and tracking a single target one. Messages are sent from the user to all servers, not just one — and outgoing messages must be signed with an independently verifiable mathematical proof that they are the ones the server received. This way, any server tampering with messages will be spotted at once.

LittleSis is a free database of who-knows-who at the heights of business and government. "A unique resource for investigating cronyism, conflicts of interest, and systemic corruption."

Ars describes Learning to code as a 30-year-old kid with Apple’s Swift Playgrounds

Pretty interesting story of how Feedly tracked down a performance problem: What Goes Down Better Come Up a.k.a. Adventures in Hbase Diagnostics

Here's another where Stack Overflow fixed an outage because of a malformed post an regular expressions: Outage Postmortem - July 20, 2016

Monday, June 20, 2016

Hello, TensorFlow!

Aaron Schumacher walks through using Google's open sourced machine learning library in Hello, TensorFlow!. Python knowledge assumed.

Wednesday, June 01, 2016

Interview with Dennis Ritchie, Bjarne Stroustrup, James Gosling

Stumbled across this 2000 Interview with Dennis Ritchie, Bjarne Stroustrup, James Gosling and found it interesting. They compare and talk about the state of C, C++ and Java at the time. I found the perspective of reading it 16 years in the future interesting.

Sunday, September 06, 2015

Fonts Using Ligatures for Code

Just heard about this and it seems kind of interesting. Most programming languages just use plain ascii characters, particularly for operators. As a result, sequences such as ->, =>, >=, /= are commonly used. If you want better typography, apparently some fonts now use ligatures to make them display better. The nice thing about using ligatures is that nothing changes but the display, the number of characters is the same (unlike if you used Unicode characters).

  • Hasklig extends the font Source Code Pro with such ligatures.
  • FiraCode extends the font Fira Mono

I haven't tried these yet, but apparently the emacs mac port I use now has a mode that supports them.

Wednesday, August 12, 2015

A Eulogy for Objective-C

A Eulogy for Objective-C

With the birth of Swift, we face the passing of Objective-C. To mark this historic moment, long-time Objective-C developer and trainer Aaron Hillegass delivers an impassioned eulogy for a language he knew well.

Deploying the standard tropes of the genre, we learn about the life of the deceased, we celebrate their finer qualities, and we reflect on how their influence continues to live on, in the minds and work of those who knew them. From Simula, Smalltalk, and Xerox PARC, to NeXTSTEP, OpenStep, and Objective-C 2.0, it’s a narrative rich in anecdotes and achievement. But as we ready our farewells, a twist. Could it be that the reports of a passing have been, perhaps, a little exaggerated?

There's a half hour video and a complete transcript. It's a nice history of the language.

Friday, June 12, 2015

What is Code?

The entire issue of Businessweek is one article Paul Ford: What is Code?. I haven't read it yet but saw the author and editor on Charlie Rose last night. Looks to be very interesting.

Software has been around since the 1940s. Which means that people have been faking their way through meetings about software, and the code that builds it, for generations. Now that software lives in our pockets, runs our cars and homes, and dominates our waking lives, ignorance is no longer acceptable. The world belongs to people who code. Those who don’t understand will be left behind.

This issue comprises a single story devoted to demystifying code and the culture of the people who make it. There’s some technical language along with a few pretty basic mathematical concepts. There are also lots of solid jokes and lasting insights. It may take a few hours to read, but that’s a small price to pay for adding decades to your career.

Thursday, December 04, 2014

Antha - A Programming Language for Biology

Welcome to Antha "Antha is a high-level language for biology, making it easy to rapidly compose reproducible work flows using individually testable and reusable Antha Elements."

Wednesday, September 17, 2014

New Programming Jargon

Jeff Atwood lists New Programming Jargon "I've collected the top 30 Stack Overflow New Programming Jargon entries below, as judged by the Stack Overflow community. Enjoy."

  • I like the term Yoda Conditions
  • Pokémon Exception Handling is a wonderful term for something not wonderful
  • Egyptian Brackets is a cute term for K&R style
  • Heisenbug I've heard of before (maybe even used)
  • Fear Driven Development is a great term for bad management
  • Ninja Comments might be my favorite
  • Rubber Ducking I've definitely done

Friday, August 22, 2014

Bret Victor, beast of burden

I've looked for this a couple of times and can't find it on my blog. I thought I posted about it before. Apparently a lot of Bret Victor's ideas inspired some things in the new Swift's Sandbox used for OS X development. I've only looked a few of the videos, but pick anything out of the Recent Output section and it's bound to be interesting.

Saturday, July 19, 2014

Creating Chord Intelligence

SuperMegaUltraGroovy is company that makes Capo software for Mac and iOS to help musicians learn new songs.

"We just shipped Capo touch and Capo 3.1 last week—on the same day!—and a large part of the time on this project was spent building Chord Intelligence. I feel that the name is fitting; Chord Intelligence is trained from a collection of music and applies its knowledge to what it hears in an audio recording. You read that correctly: Capo’s new chord detection engine is trained, and it does indeed learn."

Chord Intelligence is a fairly technical article describing the challenges of creating this software. Nice read.

Tuesday, June 24, 2014

Wolfram Programming Cloud Is Live!—Stephen Wolfram Blog

Yesterday Stephen Wolfram announced Wolfram Programming Cloud Is Live!. The post far too often explains how he's been "working toward this for nearly 30 years" but it looks really fascinating.

Here's the example code he shows:

    Classify["Language", "good afternoon"]["LargestCountry"]["Flag"]

That is a program that looks at the text "good afternoon" figures out that its language is English, finds the largest country where English is spoken and returns a picture of its flag. He writes a little more code to embed the two letter country on the image.

But then he goes on to show, "But OK, so we’ve got a function that does something. Now what can we do with it? Well, this is one of the big things about the Wolfram Programming Cloud: it lets us use the Wolfram Language to deploy the function to the cloud." It's one line to describe the parameters and get back a live URL that can be called from anywhere on the web. There's some licensing involved to do anything real, but this demos amazingly well. I suspect it will remain a niche because it basically requires developers to know Mathematica (or more properly Wolfram Language).

Friday, June 20, 2014

From Parallel to Concurrent

Here's an interesting Rob Pike talk, From Parallel to Concurrent "At Google I was involved in the design and implementation of two significant languages. The first, Sawzall, was extremely parallel. The second, Go, is fundamentally concurrent. I will explain the reasons for these two languages' creation and contrast their goals and implementations."

Saturday, May 17, 2014

Introducing the WebKit FTL JIT

For compiler geeks, Introducing the WebKit FTL JIT "This post describes a new advancement in JavaScript optimization: the WebKit project has unified its existing JavaScript compilation infrastructure with the state-of-the-art LLVM optimizer. This will allow JavaScript programs to leverage sophisticated optimizations that were previously only available to native applications written in languages like C++ or Objective-C."

Friday, December 06, 2013

SCOTUS To Rule On Patent Rights

Court to rule on patent rights "Renewing its recent fascination with the kinds of inventions that can be patented, the Supreme Court on Friday agreed to clarify when an analytical method implemented by a computer or by a link on the Internet is eligible for monopoly protection.  This was the only new case granted.  The Court will be reviewing a widely splintered decision by the U.S. Court of Appeals for the Federal Circuit, in the case of Alice Corporation Pty. Ltd. v. CLS Bank International (docket 13-298).  The en banc Federal Circuit found the method at issue ineligible for a patent, but a majority could not agree on a standard for making such decisions."