Yearly Archives: 2015

December 31st, 2015

In Technology

No Comments

RFC 128: We are contemplating allowing sender and receiver to specify different byte sizes

Wow. Can you imagine how that would have turned out? On the bright side, Unicode would not be necessary, since a company in China could specify a byte size large enough to represent any Chinese characters, and likewise for Iran, Korea, Hindi, etc. .

Source

December 31st, 2015

In Philosophy

No Comments

Fundamentalist upbring leads to viewing women as stereotypes

This is a story about a guy who is manipulative and gross. One theme in this story that the author did not follow up on, and I wish she had, was the theme of fundamentalism. The bad guy in this story is named Jared. He grew up in a Christian fundamentalist household, where sex was considered a great sin. Now he is in his 30s, and he is nominally secular, but he continues to see the world in black and ...

Read More Source

December 31st, 2015

In Technology

No Comments

NLP versus Conversational AI

Obviously, I have written a lot about this subject during the year. See my post “What happens when the Board Of Directors begins to panic“.

But this is getting big:

To date, commercial NLP research has been focused on understanding the many ways people say commands like, “Set my alarm for 7 am tomorrow” or “Find a good pizza place nearby.” To unlock the power of conversational computing, new technology is required that extracts semantics across multi-turn natural language ...

Read More Source

December 31st, 2015

In Business

No Comments

Minecraft is participatory but Call Of Duty is passive entertainment with occasional button-mashing

Interesting:

Let me use a computer game analogy to express two visions of the future Web.

The first vision is the Web as Minecraft—an open world with simple pieces that obey simple rules. The graphics are kind of clunky, but that’s not the point, and nobody cares.

In this vision, you are meant to be an active participant, you’re supposed to create stuff, and you’ll have the most fun when you collaborate with others.

The rules of the game are simple and don’t constrain ...

Read More Source

December 31st, 2015

In Business

No Comments

Failure is a de-stressing option

Read the previous blog post, which in some ways fits with the overall theme “radically new thinking from business leaders”.

I can ask the same question here that I asked in the last blog post: If some business leaders now feel this way, the question arises why some business leaders did not feel this way 100 years ago. What is changing about the kind of people who become business leaders?

I can imagine all sorts of things I would do ...

Read More Source

December 31st, 2015

In Business

No Comments

Why does Rand Fishkin think bureaucracy is bad?

If some business leaders now feel this way, the question arises why some business leaders did not feel this way 100 years ago. What is changing about the kind of people who become business leaders?

Interesting:

Having never worked anywhere else in my adult life (apart from a couple retail jobs in college), these new professional experiences have, I think, made me a better future CEO, and a better person all-around. It’s hard to have real empathy for something you ...

Read More Source

December 31st, 2015

In Philosophy

No Comments

Finding the one kanji that sums up the year

An interesting look into Japanese culture:

Likewise, in 2008, the Association chose 変 (hen), which literally translates as “change.” From the “Change We Can Believe In” promised on Barack Obama’s campaign posters to the global economic changes wrought by the Lehman Shock, 変 seemed to be in the air in 2008.

With so much meaning condensed in so little space, kanji have the power to express an entire year’s spirit in just one character.

With so many candidates, things are bound to get ...

Read More Source

December 31st, 2015

In Business

No Comments

Admitting failure in public

A customer is angry:

When I trust you with my money and my company’s data, I don’t want those precious assets to be with someone who’s been given permission to fail. I really do want it to be someone who tells the troops this: “Let’s double-down, work through the weekend, push through the issues, get ‘er done, rally!”

The issue to me is public declarations vs private thoughts.

There is absolutely nothing wrong with waking up covered in flop sweat, wondering if ...

Read More Source

December 31st, 2015

In Technology

No Comments

Allowing an object to exist in an invalid state is an Anti-Pattern

This post uses the language of Object Oriented Programming, but its point would also be true to all forms of programming. In Clojure, if you have HashMaps that you then convert to JSON and save to MongoDB, then why would you ever allow the HashMap to exist in an invalid state? Real immutability might imply that the HashMap is created with everything that it will eventually need. This is an interesting idea.

Why do we validate data? Typically, to make ...

Read More Source

December 31st, 2015

In Philosophy

No Comments

People who love spies do not love being spied upon

Interesting:

Ah, schadenfreude at work:

Pete Hoekstra: Obama Stopping Key Surveillance Programs Dec 11, 2015

Pete Hoekstra: New Spying Scandal Biggest of Obama’s Presidency 13 hours ago

Not that Hoekstra is going to change his tune on surveillance; he just believes in the national security state for thee, not me. I’ve always felt that one of the more corrupt aspects of the UK security state was the exemption granted to Parliament from the kinds of intrusions other citizens lack protections against; now I expect ...

Read More Source

December 31st, 2015

In Technology

No Comments

Websockets are an all or nothing proposition

Interesting:

I’m also a heavy websocket user, and agree with most points. I have previously used websockets on top of a traditional web app, and have been disappointed with the results.

My opinion now is that websockets are an all-or-nothing proposition. And I have gone all-in. My latest project has:

- websockets-only api (except a some image uploads and oauth/login)

- https-only

- single page app, central store with observable data, using a single connection servicing the whole application

- using SignalR (supports fallbacks for IE9 ...

Read More Source

December 31st, 2015

In Business

No Comments

Abuse of H-2 visas

Interesting:

“All you black American people, fuck you all…just go to the office and pick up your check,” the supervisor at Hamilton Growers told workers during a mass layoff in June 2009.

The following season, according to a lawsuit filed by the Equal Employment Opportunity Commission, about 80 workers, many of them black, were simply told: “All you Americans are fired.”

Year after year, Hamilton Growers, which has supplied squash, cucumbers, and other produce to Wal-Mart and the Green Giant brand, hired scores ...

Read More Source

December 31st, 2015

In Technology

No Comments

Any growing Rails app runs into the problem of fat models

This is a good comment:

A lot of things in Rails are are anti-patterns in large code bases, but pragmatic in small ones. ActiveRecord itself is a prime example: when you start an app, putting your business logic directly in ActiveRecord objects works pretty well in most cases, but later on as the models proliferate and grow, you realize that some of them contain business logic which is far too complex to warrant being conflated with persistence concerns. The result ...

Read More Source

December 30th, 2015

In Business

No Comments

The death of traditional blogging

Interesting:

The blogosphere lives. But Sullivan’s decision to hang up his keyboard is nevertheless a marker. Sullivan was the closest we had to someone trying to run a blog with real scale. He was trying to make his blog — and its sizable audience — into a business. But blogging, for better or worse, is proving resistant to scale. And I think there are two reasons why.

The first is that, at this moment in the media, scale means social traffic. ...

Read More Source

December 30th, 2015

In Philosophy

No Comments

The reaction in Poland

There is a right-wing reaction sweeping through Poland. The most worrisome aspect is the official support for xenophobia:

Polish police tell British Sikh man ‘what do you expect after Paris attacks’ after nightclub beating

Mr Sawhney claimed the bouncer along with his colleagues from the city’s Shakers nightclub had stopped him entering and then became aggressive and spat at him but despite him offering to shake the bouncer’s hand and walk away.

“The bouncers then surrounded me and one punched in the ...

Read More Source

December 30th, 2015

In Uncategorized

No Comments

Why did feminism finally get picked up by the women’s magazines?

When I was younger, my friends and I used to wonder why all of the women’s magazines were misogynist. The advice they gave was always anti-woman and pro-convention. This made no sense to us. It was as if the magazines were at war with their own customers. As near as I can tell, this misogyny was editorial policy for the entirety of the 20th Century.

Things have changed dramatically over the last 15 years, and especially the last 8 years. ...

Read More Source

December 30th, 2015

In Philosophy

No Comments

Why do women use Tinder?

A bit of a rant, but interesting:

More likely, these women are interested in hooking up (or at least open to some opportunities of it happening) but don’t want their friends and colleagues knowing this should someone come across their profile, so like the Playboy readers who buy the magazine for the articles, these women are on Tinder “just for the lulz.”

Which brings me to my second point: Despite their loud claims, women are not on Tinder to find their ...

Read More Source

December 30th, 2015

In Business

No Comments

Where are the female film critics?

This strikes me as part of the overall trend, with women in retreat from many crucial professions. Female participation in computer programming peaked in the 1980s, and female representation as nurses peaked 10 years ago. Apparently female film critics are also disappearing.

Film criticism wasn’t always such a boy’s club. In the 1920s and through World War II, women weren’t welcome covering hard-news topics like politics and international news, but they did find a rare place writing about the moving ...

Read More Source

December 29th, 2015

In Philosophy

No Comments

Groupies and artists

Interesting:

For me, the most interesting question that “Groupies” raises has less to do with cultural pathways and more to do with old-fashioned carnality and the places within us that it comes from. Perhaps it’s not so much that sex was the only option for these women, but that it was their preferred option. Fandom operates differently than a creative or critical impulse—and it wants for different things, too. People find all sorts of ways to manage the magnificent, sometimes ...

Read More Source

December 22nd, 2015

In Philosophy

No Comments

The Great Stagnation, as seen in movies

Interesting:

All that is meant by Decadence is ‘falling off.’ . . . . The forms of art as of life seem exhausted, the stages of development have been run through. Institutions function painfully. Repetition and frustration are the intolerable result.

That seems to be our lot today, I suggested, using the prism of the McFly family saga to illustrate the point. “We’re now as far from the Reagan 1980s as the teenage Marty was from his parents’ 1950s,” I wrote, “and ...

Read More Source

December 21st, 2015

In Business

No Comments

What does a weblog need in 2015?

This is interesting, and I want to go back and read it again soon:

On aggregation: Ezra Klein: How Vox Aggregates: “[When] I started… everything I wrote… in the hopes that someone else…

…would take it and try to use it… with a link back… a positive-sum endeavor…. [At the] Washington Post… I helped to create Know More… a big ‘Know More’ button that would lead people back to the original source to, well, learn more…. While aggregation has always been a ...

Read More Source

December 20th, 2015

In Philosophy

No Comments

In science the only confirmation that matters is whether you will proceed

Interesting:

Except sometimes it is. Rationalism guided Einstein toward his theory of relativity, which he believed in wholeheartedly on rational grounds before it was ever tested. “I hold it true that pure thought can grasp reality, as the ancients dreamed,” Einstein said in 1933, years after his theory had been confirmed by observations of starlight bending around the sun.

The question for the philosophers is: Without experiments, is there any way to distinguish between the non-empirical virtues of vortex theory and those ...

Read More Source

December 18th, 2015

In Philosophy

No Comments

The biggest bribery scam in India ever?

Interesting:

In 2013, the year the scam was first revealed, two million young people in Madhya Pradesh – a state the size of Poland, with a population greater than the UK – sat for 27 different examinations conducted by Vyapam. Many of these exams are intensely competitive. In 2013, the prestigious Pre-Medical Test (PMT), which determines admission to medical school, had 40,086 applicants competing for just 1,659 seats; the unfortunately named Drug Inspector Recruitment Test (DIRT), had 9,982 candidates striving for ...

Read More Source

December 18th, 2015

In Technology

No Comments

How to find a major security breach at Facebook

Facebook offers a bounty for bugs, but Facebook did not play fair on this one. Instead, Facebook immediately reached out to the hacker’s employer and accused the hacker of unethical behavior. The Facebook CSO later offered the cheap excuse that the hacker might have been working in an official capacity for the employer. The more likely story is that Facebook was embarrassed and wanted this story to be remain hidden. Interesting:

With the newly obtained AWS key, I browsed several ...

Read More Source

December 17th, 2015

In Technology

No Comments

How to test the Salesvoice skill for the Amazon Echo

1.) if you have access to a Salesforce account, use that. If there is an admin at your company who manages the Salesforce account, talk to them. Otherwise, you can sign up for a free 30 day trial on Salesforce. Be sure to go for the Enterprise Edition.

2.) You must enable the SalesVoice Connected App

3.) Relax IP restrictions, or whitelist the IP from which your Amazon Echo will be in use

4.) You will need to enter 4 pieces of ...

Read More Source

December 16th, 2015

In Business

No Comments

Silicon Valley is an increasingly rigged game

Interesting:

Assured promotion allows a coordinated launch

Careful followers of Product Hunt have caught on to the strategy of accessing this upper tier. Just consider the creators of Lrn, an app that teaches you the program in bite-sized chunks.

Lrn, while containing some new ideas, bears a striking resemblance to Swifty, a past product that had been previously featured on Product Hunt. Unlike Swifty, however, the Lrn team — having read Bram Kanstein’s post— found an advisor in advance with front page-promotion privileges and coordinated ...

Read More Source

December 16th, 2015

In Business

No Comments

Everyone’s been rejected for a job they should have gotten

This is great:

Source

December 16th, 2015

In Philosophy

No Comments

Melting glaciers slow the rotation of the Earth

Interesting:

At issue is a scientific quandary known as “Munk’s enigma,” which was introduced by famed oceanographer Walter Munk in a 2002 paper published in Proceedings of the National Academy of Sciences. The enigma refers to a key discrepancy between the amount of sea-level rise believed to have occurred during the 20th century and the effects it should have produced on the planet — specifically, on the Earth’s rotation.

The planetary effects of sea-level rise

That’s right — in addition to all the ...

Read More Source

December 15th, 2015

In Technology

No Comments

The importance of the Module class to NodeJs

Interesting:

The Module type found in module.js has two main roles inside of Node.js. First, it provides a foundation for all Node.js modules to build off of. Each file is given a new instance of this base module on load, which persists even after the file has run. This is why we are able attach properties to module.exports and return them later as needed.

The module’s second big job is to handle Node’s module loading mechanism. The stand-alone require function that we ...

Read More Source

December 15th, 2015

In Technology

No Comments

Require and Export in NodeJs

Interesting:

Finally, the last thing to consider is what happens when you directly export a function:

var powerLevel = function(level) { return level > 9000 ? “it’s over 9000!!!” : level; }; module.exports = powerLevel;

When you require the above file, the returned value is the actual function. This means that you can do:

require(‘./powerlevel’)(9050);

Which is really just a condensed version of:

var powerLevel = require(‘./powerlevel’) powerLevel(9050);

Source

December 14th, 2015

In Technology

No Comments

How to build conversations via the Amazon Echo

If you read my post about the startup I was this year, then you know the toughest challenge we faced was the building the finite state machine that could handle conversations. So I read this about the Amazon Echo with great interest:

My task would have ended here if creating an event would only require a date and time. But to be useful, I would like to include a duration, a topic, perhaps even a location. To be even more ...

Read More Source

December 13th, 2015

In Technology

No Comments

Using a glottal stop to force the Amazon Echo to correctly pronounce “tw”

This an impressive bit of phoneme hacking, by Joseph Jaquinta:

It’s also occasionally off on some words. A particular problem for me was Alexa’s inability to correctly pronounce “tweets”. It can say “tweet” just fine, but “tweets” comes out as “wheets”. Since one of upcoming skills, Tweet Poll, centers around producing election statistics based on tweets, it uses the word “tweets” a lot.

So I was pretty excited when I saw that the new update included features for giving more fine control ...

Read More Source

December 13th, 2015

In Business

No Comments

I believe in Enterprise software for the Amazon Echo

Over on the Amazon Developer forums, J Jaquinta challenges my idea of Enterprise software for the Amazon Echo.

I responded:

@jjaquinta, of course, you could be correct. It might be a mistake to try to do Enterprise software with the Echo. All I can say is, when we go into a big business and we do a demo, people seem excited. How much of that excitement is due to the novelty factor? I don’t know. It’s possible that executives get momentarily ...

Read More Source

December 13th, 2015

In Technology

No Comments

Dialogue designers replace graphic designers when creating voice interfaces

Over the last 30 years we’ve gotten used to the Graphical User Interfaces in software that appears on a computer screen. And most of us (who work in the tech industry) have had the experience of working with a person who, depending on their skills, will be given a title such as “graphic designer” or “user experience designer” or sometimes “product designer”.

Working with the Amazon Echo, myself and my partner have come to realize that we still need a ...

Read More Source

December 13th, 2015

In Philosophy

No Comments

The rise of Liberalism in Sweden

The sad fact is that Sweden, like all other Western nations, has been shifting to the right since the end of the 1970s.

Megafon does not start any fires. Why are journalists and politicians so interested in Megafon denouncing the rebellion? Young people are being demonised to prevent all of us from seeing the truth—because the truth will sting. The editorial pages and the police also demonise us in Megafon, saying that we are responsible for what is happening—because we ...

Read More Source

December 13th, 2015

In Technology

No Comments

How can I connect the Amazon Echo to wifi in an Enterprise with secure wifi?

I posted this question on the TalkEcho forum. Any suggestions are welcome.

One big problem we face (developing Enterprise apps for the Amazon Echo) is when we do a demo at a large company. Then we are typically facing the WPA2 Enterprise version of WiFi, which the Echo does not seem to support. When I look here:

https://www.amazon.com/gp/help/customer/display.html?nodeId=201549640

I see it says:

“Amazon Echo connects to dual-band Wi-Fi (2.4Ghz / 5Ghz) networks that use the 802.11 a/b/g/n standard. It does ...

Read More Source

December 13th, 2015

In Technology

No Comments

The old debates about Clojure

This was written in 2009 and I linked to it in 2011, and I just stumbled upon it again. It is interesting to remember the old fights about Clojure, the struggle for respectability that Clojure faced in those old days. For the most part, that particular fight is no longer facing Clojure.

Source

December 12th, 2015

In Technology

No Comments

The Amazon Echo Blogosphere

I will be updating this blog post as time goes by. I hope to build a complete catalog of blogs that are primarily focused on the Amazon Echo.

Here is what I found after 30 minutes of searching:

LoveMyEcho is one of the few blogs that seems devoted to the Amazon Echo

Joseph Jaquinta has a blog on LinkedIn devoted to the Amazon Echo

Engadget has a category for Amazon that sometimes covers the Echo

Gizmodo has a category specifically for the ...

Read More Source

December 12th, 2015

In Technology

No Comments

Custom commands for the Amazon Echo

Interesting:

Telling Amazon’s Alexa to play some music or add an item to your shopping list is pretty cool, but there comes a point where you start to feel the limits of the Echo’s pre-programmed voice commands. It doesn’t have to be that way anymore: Amazon and the automation wizards at IFTTT just announced a new feature that allows you to create custom voice phrases to make Alexa do whatever you want. Unfortunately, there’s a catch: every command has to ...

Read More Source

December 12th, 2015

In Technology

No Comments

Ellery Coffman demonstrates home automation via Alexa

Ellery Coffman gets Alexa to start a movie on the TV, then stop it, and then play an album on the record player, and then stop it. This is impressive in all ways, except I was surprised at how slow it was. I’ve got an Alexa app running on a Rackspace server, which pulls data from Salesforce, and the response is much faster, despite the fact that there are 2 API calls involved, and despite the fact that Salesforce ...

Read More Source

December 12th, 2015

In Business

No Comments

Startups accelerate your learning cycle

Dominik Symonowicz makes a good point:

I believe, if you have got a chance to work in a startup company after graduate from university, during sandwich/gap year or as long as you are 2x years old. You should always try it. If you are lucky enough ,it your learning curve will be very high but quite likely you will work very hard and possible reward can be shape your carrier in future. However ,it is extremely difficult to find a ...

Read More Source

December 11th, 2015

In Philosophy

No Comments

When can sex or violence be justified as a plot point in a story?

I agree with the “add to a larger conversation” line of thinking:

When I read your books, I was like, “Fuck YES”—you both actually created a conversation about assault and about rape culture, rather than just using rape as a plot point, something that will show us how evil a villain is or allow a man to play hero around. This is a rhetorical question, probably, but I am guessing you were both fed up with that type of plot device ...

Read More Source

December 7th, 2015

In Philosophy

No Comments

What parts of the movie Her will come true first?

What parts of the movie Her will come true first? Content Since I started on my new startup, everyone has been telling me to watch the movie Her. So last night I was at a friend’s house and she had a copy and so I watched it. I thought it was a great movie, though I have some criticism in terms of “How do we bring this to market?”

My thoughts right now are mostly focused on Amazon Echo, so I will offer ...

Read More Source

December 5th, 2015

In Business

No Comments

Hi, I’m an inexperienced, spineless CEO who can’t handle confrontation

My post What happens when the Board Of Directors begins to panic? sparked several good conversations:

Hacker News

Reddit

WTF Daily

The funniest comment I read was on WTF Daily; I literally laughed out loud when I read this:

Source

December 4th, 2015

In Technology

No Comments

The advantages of a Natural Language Processing interface

“admin” of Daily Hacker News is critical of my ideas regarding a Natural Language Processing interface for software. Some of their points conflate Natural Language Processing with the text version of Natural Language Processing, and right now I’m mostly working on Natural Language Processing via voice interfaces, so I’m going to reply with voice examples, so as to remind everyone that Natural Language Processing is a broad topic.

“admin” starts with this point:

Let’s go back to Lawrence’s example. Posit, ...

Read More Source

December 2nd, 2015

In Technology

No Comments

People want to be able to talk to their computer

When GUI interfaces were new in the 80s we were told they were better than command line interfaces because they offered “discoverability”. But it turned out they didn’t offer nearly enough discoverability, so in the 90s “Wizards” became big things, especially in the Microsoft world. A Wizard provided the context that a GUI by itself did not. A Wizard would tell a user “Do this, now do this, now do this, and then do this.” But Wizards were visually complex. ...

Read More Source

December 2nd, 2015

In Technology

No Comments

Clojure is easier than Scala

Interesting:

After about a week of experimentation, we hit a sticking point. While we had a large number of “normal” CRUD operations, all of our queries on behalf of the end user, were generated dynamically. Most of the Scala database ecosystem is geared towards extending Scala’s type system to include database query type checking. Overall, our enthusiasm for Scala didn’t survive the first attempt to port our query language system. Clojure for the win

It was at this juncture where we re-evaluated Clojure, ...

Read More Source

December 2nd, 2015

In Philosophy

No Comments

Uneasy is the head that wears the crown, even among baboons

Interesting:

After the matriarch died last year, a vicious battle erupted among the female baboons at the Toronto Zoo for her throne that endured for months, prompting a brief closure of the exhibit and providing a fascinating glimpse into the animals’ behaviour.

Medical records show numerous injuries among five of the six female olive baboons, from deep lacerations near their eyes to hair ripped out and tail injuries. At least two required surgeries to close deep gashes.

The exhibit was closed for several ...

Read More Source

December 2nd, 2015

In Philosophy

No Comments

Progress in math is needed for progress in science

Interesting:

The problem was that, in order to build a theory on this insight, Einstein needed to be able to create those descriptions in warped four-dimensional space-time. The Euclidean geometry used by Newton and everyone else was not up to this job; fundamentally different and much more challenging mathematics were required. Max Planck, the physicist who set off the revolution in quantum mechanics, thought this presented Einstein with an insurmountable problem. “I must advise you against it,” he wrote to ...

Read More Source

December 2nd, 2015

In Business

No Comments

Startups are embarrassing chaos

This reminds me of my life, many times over:

This was the first time we really learned about the thundering herd problem. The site went down 30 minutes before the broadcast was scheduled to start, as many fans had gone to the page in advance and started doing stuff on the site: signing up, logging in, favoriting the Jonas Brothers’ channel page. All these dynamic actions, plus the constant refreshing of the page to check if the stream was up ...

Read More Source

December 1st, 2015

In Philosophy

No Comments

The problem of locking intellectuals into universities

Some of this overlaps with what Ian Stewart has written about the profession of mathematicians. Ian Stewart has written a bunch awesome books about math, and he writes in a classic 20th Century style of science/math popularizer, believing that there is a “general” public out there that might find math interesting. More about him here:

https://en.wikipedia.org/wiki/Ian_Stewart_(mathematician)

From the essay itself, this part struck me:

“What I called the transitional generation, those born around 1920, entered the universities, often late in their careers and ...

Read More Source

November 30th, 2015

In Business

No Comments

Marvel Comics increasing maturity regarding adult themes

Marvel Comics declared bankruptcy many years ago, and I thought the company would disappear. It’s suffered an extreme case of the fate that many publishers of fiction-on-paper have suffered. Marvel’s comic business, as fiction-on-paper, is just a ghost of its former self. And yet, the company hangs on, and has become a major creative house for ideas that get turned into movies and shows.

When comics were aimed primarily at kids, they were censored to be sure they avoided mature ...

Read More Source

November 29th, 2015

In Business

No Comments

The Amazon Echo will primarily succeed in business settings, not in home settings

(Note: I thank Natalie Sidner for the editing she did on the rough draft of this post. If you need to hire a good editor, contact Natalie Sidner at “nataliesidner at gmail dot com”.)

The Amazon Echo is a device with brilliant potential, yet even Amazon itself seems to misunderstand the possibilities. Amazon has positioned the device as being primarily for consumers, but I see the greatest upside in business. The Amazon Echo is at its best when delivering information to ...

Read More Source

November 28th, 2015

In Technology

No Comments

Christine Dodrill on the Universal Design

She has her own terminology:

State – What is true now? What was true? What happened in the past? What is the persistent view of the world?

Events – What is being changed? How will it be routed?

Policy – Can a given event be promoted into a series of actions?

Actions – What is the outcome of the policy?

Mechanism – How should an event be taken in and an action put out?

Policy seems a bit confusing, but sometimes there is a reward if ...

Read More Source

November 28th, 2015

In Technology

No Comments

Separate AWS accounts for development, staging, and production

Interesting:

Instead of using regions or tags to separate different staging and prod instances, we switched over totally separate AWS accounts. We need to ensure that our provisioning scripts wouldn’t affect our currently running services, and using fresh accounts meant that we had a blank slate to start with.

The ops account serves as the jump point and centralized login. Everyone in the organization can have a IAM account for it.

The other environments have a set of IAM roles to switch ...

Read More Source

November 28th, 2015

In Philosophy

No Comments

Using Twitter for long-form stories

[[UPDATE]] So this was later confirmed as a mostly true story and now this is becoming a movie.

I think this story is about 3,000 words? It’s 155 Twitter posts. This is an interesting new way to try to offer fiction. I would be surprised if this caught on, but everything about Twitter has surprised me so far. It’s seems like an awkward way to read a story, but sometimes people eat more chocolate if they are offered tiny pieces ...

Read More Source

November 28th, 2015

In Technology

No Comments

I am one voice of many, who question Object Oriented Programming

I am just one of many voices questioning Object Oriented Programming and promoting the Functional paradigm as an alternative. I pleased to think my big essay, which surveyed quite a bit of what had been written before, is still able to occasionally encourage people to re-think their support for Object Oriented Programming. So I see Matt’s Code Cave write:

Why functional programming and why Clojure? I’ve been interested in the idea behind functional programming for a while now – being used ...

Read More Source

November 28th, 2015

In Business

No Comments

Can you survive in a glamour business without glamour?

The glamour of it all. This line really is the heart of it:

While in New York recently, Mr. Zimmer said, he had his driver pull over when he spotted a Men’s Wearhouse store. After he used a restroom, he poked his head into the tailor shop. “As soon as the tailor saw me he embraced me and started sobbing,” Mr. Zimmer said. “I have a bond with tailors. It’s not because I’m a tailor myself but because they know ...

Read More Source

November 28th, 2015

In Business

No Comments

Gawker’s problem with women

I don’t know what it’s like to be a woman working at a place where management is unfair to women, but I do know what its like to work at a place where management fails to live up to its own goals, so I find this interesting:

Gawker Media was founded on excitement and freedom, which is what drew so many people to become fans and writers there, including myself; but excitement and freedom can lead to dismissiveness and insensitivity, harm ...

Read More Source

November 23rd, 2015

In Philosophy

No Comments

Sometimes things go fast

I told a friend via email that this was one of those months when it seemed like a lot of exciting things were happening to me, unlike some previous months which had seemed uneventful. I like how she said this:

I am familiar with that phenomenon- swaths of arid, fallow months as far as the eyes can see in any direction, then, seemingly without any effort or origin possibility sprouts all about.

So well said!

Source

November 21st, 2015

In Technology

No Comments

The States and Fates of Javascript

Interesting resource regarding Javascript Promises:

States

Promises have three possible mutually exclusive states: fulfilled, rejected, and pending.

A promise is fulfilled if promise.then(f) will call f “as soon as possible.”

A promise is rejected if promise.then(undefined, r) will call r “as soon as possible.”

A promise is pending if it is neither fulfilled nor rejected.

We say that a promise is settled if it is not pending, i.e. if it is either fulfilled or rejected. Being settled is not a state, just a linguistic convenience.

Source

November 21st, 2015

In Technology

No Comments

Why modern Javascript development sucks

The package management tools are broken:

Source

November 21st, 2015

In Technology

No Comments

How do you get latitude with Javascript

Here is something I did not know about:

$cordovaGeolocation.getCurrentPosition always returning “Position retrieval timed out.” in ios

That’s an error, but it made me aware that you can try to get location via Javascript. I think that is amazing. Why even bother with a native app? And I say that as someone who just spent 6 months at a starup that was committed to doing a native app, in part for native features, including the ability to get latitude and longitude.

Source

November 20th, 2015

In Technology

No Comments

Trailblazer has good ideas hidden by Object Oriented Programming

Trailblazer for Ruby On Rails has some very good ideas in it though they are somewhat buried by the Object Oriented programming garbage:

To give an example of how operation works, let’s say you click on a delete button. What happens when you do that is you go to the control that knows a little bit of this action because it does authentication—if it’s valid it does one thing and if it’s not it does another thing. Instead of delegating ...

Read More Source

November 19th, 2015

In Technology

No Comments

Nested relations are the death of Object Oriented Programming

Last winter made fun of a Python team for wasting time trying to figure out how to handle deeply nested relations. They were slowly groping their way toward a graph database solution, which seems to be the route that most end up taking, given enough years and enough pain. This seems to be an area where Object Oriented Programming clearly fails.

And yet, many smart folk continue to try. Ruby’s Reform:

Syncing Back

After validation, you have two choices: either ...

Read More Source

November 19th, 2015

In Technology

No Comments

Rails derails

A super interesting debate about the move away from Rails.

We seem to be on the same side when it comes to quality metrics.

Source

November 9th, 2015

In Business

1 Comment

What happens when the Board Of Directors begins to panic?

(Note: I must offer a huge “Thank you” to Natalie Sidner for the tremendous editing she did on the rough draft of this post. To the extent that this article is readable, it is thanks to her. Any mistakes are entirely my fault. If you need to hire a good editor, contact Natalie Sidner at “nataliesidner at gmail dot com”.)

I have been working with startups for most of the last 15 years, and one common pattern that I’ve seen is ...

Read More Source

November 8th, 2015

In Business

No Comments

Where is the article?

I would like a friend of mine to read this article, but I’m not sure if she will be able to find it. I can send her the URL, but the top 10 centimeters on this page is full of visual debris. That websites have interfaces that are sui generis remains a problem. Finding content on a page remains a complicated task.

Source

October 25th, 2015

In Business

No Comments

Who still pays for music?

I really thought that by 2015 the paid-for music industry would be dead. I am surprised that it survives. I’m curious who keeps it alive.

Tove Lo and Taylor Swift teamed up to sing “Talking Body” (You’ve got a perfect one so put it on me):

http://www.eonline.com/news/709940/taylor-swift-busts-out-some-interesting-dance-moves-while-performing-talking-body-with-tove-lo

Who pays for music nowadays? I think it’s interesting, this is something that Taylor Swift’s fans have in common: they pay for music. And not just a particular song that they like, they buy entire ...

Read More Source

October 23rd, 2015

In Philosophy

No Comments

The glacial speed of reform in Morocco

Interesting:

Within the month, King Mohammed VI would unveil his constitutional reforms and call for a referendum. The proposal stipulated that a prime minister, chosen from the largest party in parliament, would take over as the head of the government, although the king would retain control of the judiciary, the military, and the Islamic faith in Morocco. There was even an article guaranteeing women civic and social equality with men. The February 20 movement argued that the process had been undemocratic ...

Read More Source

October 18th, 2015

In Business

No Comments

White people diversity

Interesting:

Corporations that practice Colorless Diversity do not see lack of racial diversity and representation as an important problem to be solved. To bring up racial diversity is to invite a discussion on model minorities (“Look, we have Asians!”) and have the subject be dismissed. The “women’s issue,” on the other hand, is urgent. As a result of familial bonds and their savior complex driven need to rescue the damsel in distress, the white-male employees of the white-male dominated industry have ...

Read More Source

October 14th, 2015

In Business

No Comments

Why are computer programmer competitive with each other?

There are many areas of life where competition is destructive and should be banned as much as possible. My favorite example is the amount of sleep that doctors in training get — even now, when roughly 50% of new doctors are female, the tradition persists that medical residency should be a macho hazing process where sleep deprivation is used to weed out the “weak”. And yet, nobody wants to be treated by a doctor who has been getting 3 hours ...

Read More Source

October 13th, 2015

In Philosophy

No Comments

The process of writing software will change the way you think

Angus Deaton just won the Nobel Prize for Economics. For awhile I’ve said that writing computer code changes the way one thinks. So this caught my eye:

It was during my time at Bristol that John Muellbauer and I worked together on our book. The computer facilities at Bristol were terrible — the computer was a mile away, on top of a hill, so that boxes of punched cards had to be lugged up and down. I was told to ...

Read More Source

October 11th, 2015

In Philosophy

No Comments

Kill your heroes

Interesting:

Hero worship

Another case where we see evidence of a fixed mindset is with hero worship. So Julie Pagano did a great talk at PyCon 2014 about impostor syndrome, and one of her suggestions for a way to combat impostor syndrome was “kill your heroes.” Don’t put other programmers on a pedestal, don’t say “that person is so different from me.” Fixed/growth mindset is a really useful framing for this too. If you have programming heroes, do you consider them to ...

Read More Source

October 11th, 2015

In Philosophy

No Comments

The protest at 200 meters at the 1968 Summer Olympics in Mexico City

All 3 men are wearing the circular badge for Human Rights, a movement among the athletes:

Norman was a white man from Australia, a country that had strict apartheid laws, almost as strict as South Africa. There was tension and protests in the streets of Australia following heavy restrictions on non-white immigration and discriminatory laws against aboriginal people, some of which consisted of forced adoptions of native children to white families.

The two Americans had asked Norman if he believed in ...

Read More Source

October 10th, 2015

In Technology

No Comments

A Java Hashmap is not a Clojure collection

I did not know this till just now. I have a co-worker who wrote a library in Java. From my Clojure code, I call this Java function:

public HashMap<String,HashMap<String,Integer>> init(String debrief,String companyName, ArrayList<String> contacts, ArrayList<String> accounts, ArrayList<String> requiredFields) { try { return transformer.transform(debrief, companyName, tecClassifier, rollioClassifier, caseClassifier, caselessClassifier, customClassifier, pipeline, parser, props, firstNames, lastNames, accounts, contacts, requiredFields); ...
Read More Source

October 10th, 2015

In Technology

No Comments

The TCP checksum is weak, and the Ethernet checksum will accept corrupt TCP that passed the TCP checksum

Interesting:

At Twitter, a team had a unusual failure where corrupt data ended up in memcache. The root cause appears to have been a switch that was corrupting packets. Most packets were being dropped and the throughput was much lower than normal, but some were still making it through. The hypothesis is that occasionally the corrupt packets had valid TCP and Ethernet checksums. One “lucky” packet stored corrupt data in memcache. Even after the switch was replaced, the errors continued until ...

Read More Source

October 10th, 2015

In Technology

No Comments

When is computer programming easy?

Interesting:

While it is often thought that “real” programmers like real programming environments (my husband, for instance, is perfectly happy in MF Assembler, which is pretty grim), most programmers seem to become pretty happy moving up to graphical user interfaces and visual environments where they choose from a list of “correct” choices. I don’t think it is only users that can be more productive when they are better supported.

I believe there is a direct relationship between the ease of use of ...

Read More Source

October 7th, 2015

In Business

No Comments

How central bankers propose marriage

Interesting:

Greenspan’s marriage proposal to Andrea Mitchell was riddled with his trademark ambiguity. Bernanke, in contrast, proposed after two months of courtship.

Source

October 6th, 2015

In Technology

No Comments

How easy is it to write immutable Javascript?

If you reinvent the language as a new language, then you can have immutable Javascript. On the frontend you have no choice, but on the backend? Why not use a language that offers what you need upfront, rather than forcing you to work for it? Interesting:

The main issue I’ve had using immutablejs with Redux is debugging. Whereas previously I could simply mouse-over a data structure when I hit a breakpoint (or crash), I now have to do a REPL ...

Read More Source

October 4th, 2015

In Technology

No Comments

Erlang – OTP – Cowboy are the cutting edge

At the current time, the only thing out there, in the tech industry, that might cause me to move a way from Clojure, is something build around the Erlang VM . In those situations where performance and massive concurrency are needed, something like Erlang/Cowboy or Elixir/Phoenix need to be looked at.

I load tested (using wrk) nginx serving a two line, static HTML file, against a basic Cowboy service that parsed parameters, did an ETS lookup, and rendered several hundred ...

Read More Source

October 4th, 2015

In Technology

No Comments

Clojurescript as the frontend to Erlang

Radically different, yet becoming more common:

We use vanilla SmartOS, so that there is no dependency on FiFo for your running VM’s. You could just switch FiFo off and all your VM’s would continue to just work. It also comes with a number of great advantages:

In our opinion, ZFS is simply the only file system that should ever be used – period.

Compression, ARC and ZIL work incredibly well, especially for DalmatinerDB which achieves amazing throughput partially thanks to being purpose ...

Read More Source

October 4th, 2015

In Business

No Comments

Based on this, I just enabled Ghostery on my machine

Interesting:

That’s why the implied-contract theory is invalid: people aren’t agreeing to write a blank check and give up reasonable expectations of privacy by clicking a link. They can’t even know what the cost of visiting a page will be until they’ve already visited it and paid the price.

And it’s all getting so much worse, so quickly.

I’ve never been tempted to run ad-blocking software before — I make most of my living from ads, as do many of my friends and ...

Read More Source

October 4th, 2015

In Technology

No Comments

Hacking environmental protection features

Interesting:

Well, it turns out that all this environmental friendliness is starting to trip over itself, because most devices now start up in standby mode. So you can’t just power them on to power them on, you have to power them on and hit a button on the remote. Some devices, by pure dumb luck I assume, will accept the switch already being pressed in when they start. If that’s the case, you can hack the behaviour you want if you ...

Read More Source

October 3rd, 2015

In Business

No Comments

Women in Japan now work more than women in the USA

An interesting graph:

To me, the interesting thing is that the trend is up in Japan, and down in the USA.

In the USA, the big surge for women was from 1935 to 1985, with a lull during the 1950s.

In Japan, it looks like a prolonged upward trend started around 2002. The trend is intensifying, which is interesting, but there is a better question we should ask: for most of the last 60 years, women in Japan have had ...

Read More Source

October 3rd, 2015

In Business

No Comments

Are we in a recession?

When I was young, one thing that surprised me was the debate that occurred around the possibility of a recession in the early 90s. For me, personally, the economy sucked, and I thought we were in a deep recession. Then I started seeing magazine articles wrestle with the question, could we be entering a recession? Years later, NBER declared the recession had started in July of 1990, so the whole time people were debating the possibility of a recession, we ...

Read More Source

September 28th, 2015

In Philosophy

No Comments

The Liar, The Bitch and the Wardrobe

(The 2nd of 20 reviews of romance novels. I’m reading romance novels so I can learn how to better write about romance in my own works of fiction. My first review was of Evening)

The Liar, The Bitch and the Wardrobe is by Allie Kingsley

This is a very light book. I might compare it to Augusten Burroughs book Sellevsion, which was a bit of light comedy.

Kingsley’s book might have been written as a Young Adult book. I don’t mean that as ...

Read More Source

September 26th, 2015

In Philosophy

No Comments

積ん読

Interesting:

There are some words out there that are brilliantly evocative and at the same time impossible to fully translate. Yiddish has the word shlimazl, which basically means a perpetually unlucky person. German has the word Backpfeifengesicht, which roughly means a face that is badly in need of a fist. And then there’s the Japanese word tsundoku, which perfectly describes the state of my apartment. It means buying books and letting them pile up unread.

The word dates back to the very ...

Read More Source

September 26th, 2015

In Technology

No Comments

The Recursive Function Pattern Matching Pattern

Sean Johnson has a great video up. Common in Erlang, useful in Clojure, 3 functions, one to start, one to do the work, one to end, all defined by arity, using Pattern Matching.

Also called the “Start, Work, End” pattern.

This is often done in Clojure with zipmap, but this does not make things as clear as the Erlang version:

This is much more clear:

Source

September 26th, 2015

In Technology

No Comments

Best practice pattern matching in Clojure

If your function starts with a conditional, replace that with pattern matching:

Source

September 16th, 2015

In Philosophy

No Comments

Never a victim or always a victim

I like this understanding of trauma:

Psychologist Mark Epstein argues that trauma’s root is less the fact that bad things happen and more the fact that we don’t know what to do with what’s bad. Trauma is rooted in lack of communication. Sharing our experiences with another person—facing the traumas we are made of, and the new ones that continually shape us, Epstein says, helps create a balanced mind that can hold the truth. Better this than just telling ourselves that ...

Read More Source

September 16th, 2015

In Philosophy

No Comments

Racist school administrators go after Islamic child for science project

14 year old boy arrested for bringing a science project to school.

A 14-year-old boy in Irving, Texas named Ahmed Mohamed was taken into police custody after he brought a homemade clock to school. The boy, who, according to a piece in the Dallas Morning News, “makes his own radios and repairs his own go-kart,” wanted to show his engineering teacher his handiwork.

School officials originally thought his clock was a bomb and now are simply calling it a “hoax bomb.” ...

Read More Source

September 16th, 2015

In Philosophy

No Comments

Ahmed Mohamed’s father has been an activist fighting for justice for muslims

The father of the 14 year old who was arrested for bring a science project to school. As is often a case, when a 14 year old shows courage in the face of injustice, they have a parent who has also been a crusader on political issues.

Mohamed also defended the Quran when pastor Terry Jones tried to burn it

In 2012, Florida pastor Terry Jones said he was putting the Quran on trial. Jones had threatened to burn the Quran ...

Read More Source

September 16th, 2015

In Philosophy

No Comments

School administrators committing crimes

In light of this weeks events, it is good to remember the time that school administrators used spyware on computers to spy on children even when the children were at home in their bedrooms.

The suit alleged that, in what was dubbed the “WebcamGate” scandal, the schools secretly spied on the students while they were in the privacy of their homes. School authorities surreptitiously and remotely activated webcams embedded in school-issued laptops the students were using at home. After the ...

Read More Source

September 16th, 2015

In Technology

No Comments

Clean up your act with lein-checkall

I am a bit late but I’ve only recently become consistent about using a linter to check my Clojure style. And I’ve only today discovered the Leiningen plugin lein-checkall, which combines lein check && lein kibit && lein eastwood && lein bikeshed.

Venanti has written about the importance of these:

Eastwood

Eastwood is a Clojure linter, invoked with lein eastwood. As a general request, please use a linter. Some of my favorite moments in the last year have come from people trying to ...

Read More Source

September 15th, 2015

In Philosophy

No Comments

Most cells in the body keep time

Very interesting:

Not that long ago, as Partch knew, it had become clear that nearly every cell in nearly every tissue in the body keeps time. Every 24 hours, responding to a biochemical bugle call, a handful of proteins assembles in the cell’s nucleus. When they bind to each other on the genome, they become a team of unrivaled impact: Under their influence, thousands of genes are transcribed into proteins. The gears of the cell jolt into motion, the tissue ...

Read More Source

September 13th, 2015

In Business

No Comments

Loyalty is the most desirable response, but also the hardest to quantify and design for

Interesting:

To remain healthy, a social product needs to establish loyalty, and to mitigate the natural responses to discontent with the state of things. The early adopters will be interested in voicing their opinion, but typically these discussions are only interesting to the early adopters. Giving them a single place to have meta-discussions keeps them happy, and prevents them from disrupting the experience of users who couldn’t care less.

Similarly, creating mechanisms that allow a user to exit without completely abandoning ...

Read More Source

September 13th, 2015

In Technology

No Comments

Calculating and Visualizing Voronoi Diagrams using the Quad-Edge Structure – Alan Shaw

Allan Shaw talks about a data structure called a “quad edge”. There were a lot of ideas here that were new to me. The data structure keeps rotation as one value, and the orientation of the edge as one value, but anything like coordinates are kept in a field called “data”. This separates the topology from the geometry. There is also a “next” function to find the next edge. This, apparently, gives great advantage when calculating a whole network of ...

Read More Source

September 12th, 2015

In Technology

No Comments

Microservies mean freedom of future action

Interesting:

In short, maximize future freedom of action. This heuristic also answers the when and why questions for microservices.

To prove it, let’s start with Sprott & Wilkes on SOA. Wait, Service Oriented Architecture? SOA is microservices loving parent. The philosophy trickles down:

When the service is abstracted from the implementation it is possible to consider various alternative options for delivery and collaboration models. […] It is entirely realistic to assume that certain services will be acquired from external sources because it ...

Read More Source

September 11th, 2015

In Technology

No Comments

Why are microservices happening now?

The term “microservices” only goes back to 2013. I would have trouble saying why I love the style so much, except that I hated dealing with Ruby On Rails and the PHP framework known as Symfony. I was willing to deal with a lot to get away from the pain of those systems. The growth of great package managers also seemed to weaken the need for monoliths.

But Martin Fowler says the most important change was the move to Continuous ...

Read More Source

September 11th, 2015

In Technology

No Comments

The difference between Clojure and Common Lisp

Fascinating bit by Giles Bowkett. This uses recursion and is how you would do it in Common Lisp:

(defn build [list-1 list-2] (if (nil? list-1) () (concat (map (fn [bubble] (list (first list-1) bubble)) list-2) ...
Read More Source

September 11th, 2015

In Technology

No Comments

Microservices are different

It does feel like the world is moving closer to distributed IPC. We are not there, but the push toward microservices seems a step in that direction. The warnings of the past feel less relevant now.

When I wrote Patterns of Enterprise Application Architecture, I coined what I called the First Law of Distributed Object Design: “don’t distribute your objects”. In recent months there’s been a lot of interest in microservices, which has led a few people to ask whether microservices ...

Read More Source

September 11th, 2015

In Philosophy

No Comments

The problem with Meetups

This is good:

Consider the meetup speaker. She’s had a topic in mind for while, and so when the request went out for speakers, she volunteered. But that was three months ago, and now the meetup’s only a few weeks away, and she hasn’t even begun. She starts to outline the talk, but can’t quite figure out where to start. She can explain all the details easily, but the order in which they should be introduced, the organizing structure of ...

Read More Source

September 11th, 2015

In Technology

No Comments

Zach Tellman — the need for backpressure in queues, and the limits

This is very good. A lot of this interesting, but perhaps the biggest surprise is when he adds 16 consumers of tasks, but also 16 producers of tasks, the crisis point comes suddenly, compared to when there was only 1 consumer and 1 producer. With multiple consumers the consumption is averaged out, so each machine works fine right up to the moment of crisis.

His main theme is “Unbounded queues are fundamentally broken because it puts the stability of our ...

Read More Source

September 11th, 2015

In Technology

No Comments

Dynamic scope in Clojure

The interesting thing here is that the dynamic vars are wrapped in functions, which makes them a bit safer than dynamic scope would imply.

Each of these sub-clauses is very similar to the parent structures, and can be arbitrarily nested. As such, it is most easily constructed with a recursive function. However, Clojure’s let bindings are lexical, and don’t extend into recursive calls. We could make the memoized gensym call a parameter, but since we also need a separate generator ...

Read More Source

September 11th, 2015

In Technology

No Comments

This instance doesn’t do much, but it does have a nice property: it’s only equal to itself

This is a very clever hack:

Graphviz assumes explicit identities for nodes, so what about when we want to represent a tree? We can’t simply use the identity of the node, because the same value at different positions within the tree must be treated as separate nodes. One possibility is to represent each node as a tuple of its value and its position in the tree, but this forces us to consider how to represent positions, which is neither obvious nor ...

Read More Source

September 11th, 2015

In Technology

No Comments

The 8 fallacies of distributed computing

This is great:

The IT group usually has different administrators, assigned according to expertise–databases, web servers, networks, Linux, Windows, Main Frame and the like. This is the easy situation. The problem is occurs when your company collaborates with external entities (for example, connecting with a business partner), or if your application is deployed for Internet consumption and hosted by some hosting service and the application consumes external services (think Mashups). In these situations, the other administrators are not even under ...

Read More Source

September 11th, 2015

In Philosophy

No Comments

Stanislaw Lem’s dystopia

Stanislaw Lem’s vision of the future deserves more attention. I like this writer. I read Memoirs Found in a Bathtub which I thought was awesome.

I attended two more Singularity Summits, in 2008 and 2009, and during that three-year period, all the much-vaunted performance gains in various technologies seemed paltry against a more obvious yet less-discussed pattern of accelerating change: the rapid, incessant growth in global ecological degradation, economic inequality, and societal instability. Here, forecasts tend to be far ...

Read More Source

September 10th, 2015

In Philosophy

No Comments

Free, white, and 21

Interesting:

And so, “free, white, and 21” was as much about power denied as asserted. Women used it more often precisely because their freedom was restricted. Men would use it too, whenever challenged. In That Certain Woman (1937), Henry Fonda tells of his desire to work up the courage to use the phrase against his domineering father. In real life, Henry Ford used it in 1919 to justify defying his stockholders. The saying was an assertion of will, of the rights ...

Read More Source

September 10th, 2015

In Technology

No Comments

Is Gradle the best build tool for the JVM?

Gradle continues to innovate with new features.

Is Buildr dead? Buildr is now part of Apache and yet its last update was over a year ago. I tried to use Buildr this year but I ran into errors and when I searched on Google I found all of the advice was many years old. No one responded to my question on StackOverflow. I’m left thinking that Buildr is dying.

Gradle has an awesome bunch of plugins and the eco-system is growing. ...

Read More Source

September 10th, 2015

In Technology

No Comments

No locks for performance under load with concurrency

Interesting:

It’s quite clear that the lock-free approach scales a lot better under contention. This follows our intuition because lock-freedom allows system-wide progress even when a thread is blocked. If one goroutine is blocked on an insert or lookup operation, other operations may proceed. With a mutex, this isn’t possible.

Matchbox performs well, particularly in multithreaded environments, but there are still more optimizations to be made. This includes improvements both in memory consumption and runtime performance. Applying the Ctrie techniques to ...

Read More Source

September 10th, 2015

In Technology

No Comments

Use Specter to transform Clojure’s lists

Interesting:

To change the name of all the stations named “Barista” to “Coffee Master”, I can use a for comprehension:

(for [site sites station (:stations site)] (if (= (:name station) "Barista") (assoc station :name "Coffee Master") station))

But using Specter:

(->> sites (transform [ALL :stations ALL #(= (:name %) "Barista")] #(assoc % :name "Coffee Master")))

Now, this example is not actually doing justice to Specter. But in a previous (superseded) versions of the ...

Read More Source

September 10th, 2015

In Technology

No Comments

Matthew Phillips makes the case of Clojure’s “for” comprehensions

I am lazy so I would probably handle this with “reduce” as I then have a free-form function in which I can do whatever I want. And yet, list comprehensions are more idiomatic. Their limits make it more obvious what the structure of data should be. And for deeply nested items, they can handle everything at once, rather than needing to do nested calls to “reduce”.

But you can also do it this way, using a list-comprehension in Clojure’s for ...

Read More Source

September 10th, 2015

In Technology

No Comments

Prismatic’s Schema is better than Typed Clojure because it has coercions

Interesting:

One very useful feature of Prismatic/schema which core.typed does not have is called coercions. With this feature you can both validate your data structure and transform it to the desired state. This is particularly useful when validating input data from a database or ring request and doing all the string->int, kebab-casing etc in one step. The net effect being much less defensive code ‘on the other side’ of the coercer since you can rely on the exact shape of the ...

Read More Source

September 10th, 2015

In Technology

No Comments

Why is microservices popular now?

This is a word that came out of nowhere and took over the industry.

I wrote a good essay about microservices a few months before the word was invented.

Martin Fowler came up with the word microservices a few months later. He said:

Microservice practitioners, usually have come from an evolutionary design background and see service decomposition as a further tool to enable application developers to control changes in their application without slowing down change. Change control doesn’t necessarily ...

Read More Source

September 10th, 2015

In Technology

No Comments

Fortran still survives

Interesting:

When you actually take a look at the bulk of FORTRAN, it looks suspiciously like C — and it has C linkage. So, to me personally, I lump FORTRAN and C together in my head and then the question becomes “What real advantage does the switch to C++ from C have for you?”. You can find vast amounts of information on the web to answer that question :)

I have not known a single person in over a decade to ...

Read More Source

September 10th, 2015

In Philosophy

No Comments

Ritual burial 3 million years ago?

Interesting:

The researchers who made the find have not been able to find out how long ago these creatures lived – but the scientist who led the team, Prof Lee Berger, told BBC News that he believed they could be among the first of our kind (genus Homo) and could have lived in Africa up to three million years ago.

Like all those working in the field, he is at pains to avoid the term “missing link”. Prof Berger says naledi could ...

Read More Source

September 10th, 2015

In Technology

No Comments

Checkpoint and Restore In User Space (CRIU)

Interesting:

Luckily for us as we were investigating this possibility we ran into an incredibly ambitious open source project called Checkpoint and Restore in User Space (or CRIU for short). The name says it all. CRIU aims to give you the same checkpointing capability for a process tree that virtual machines give you for an entire computer. This is no small task and actually required changes to the mainline Linux kernel to pull off. The original goal of this project ...

Read More Source

September 10th, 2015

In Technology

No Comments

Mutable versus Immutable history

What really happened? What is the state of your system?

Explaining the ideal behavior of our notebooks is relatively simple: regardless of how you enter or edit cells, it should show the results of executing the file from top to bottom: the same way node does. The easiest way to accomplish this of course is to just re-run the entire document from the start after every change. This is in fact how the “rewind” feature in works in bpython. Of ...

Read More Source

September 9th, 2015

In Technology

No Comments

The conceptual clarity of CQRS

Interesting:

I found the cognitive load to be less than with other service based architectures I have worked on. I could jump into any area of the code base and because of the naming conventions for commands and events I could see what was going on – this has never been my experience with a service oriented architecture.

The main change in developer thinking that is necessary is that you don’t record state you record state transitions. Once that is internalised ...

Read More Source

September 9th, 2015

In Philosophy

No Comments

Sad love story

Relationships are difficult:

When I told this story to the man I love, I felt shame flooding me at the point when I’d said too much to stop yet hadn’t gotten to the worst part. I realized I made a mistake; I didn’t want him to hear about this. I started sharing because I was trying to explain what it feels like to pitch and write while I know this is what editors really want to run, what readers want ...

Read More Source

September 8th, 2015

In Philosophy

No Comments

How to play cricket

Interesting:

You have two sides, one out in the field and one in. Each man that’s in the side that’s in goes out, and when he’s out he comes in and the next man goes in until he’s out. When they are all out, the side that’s out comes in and the side thats been in goes out and tries to get those coming in, out. Sometimes you get men still in and not out.

When a man goes out to go ...

Read More Source

September 7th, 2015

In Technology

No Comments

Things that make Clojure beautiful: namespace declarations

In Python, and Java, the import statements at the top of the file are big jumble of disorganized statements. In Clojure the namespace declaration is a data structure that can be cleaned up using all the tools Clojure has for working on a data structure. Apparently that is the idea behind Slamhound, which detects when imports are not being used. That is clever. I did not know about Slamhound. I will have to check that out.

Also this:

which was ...

Read More Source

September 7th, 2015

In Business

No Comments

The sad story of Twitter

I hardly know what to say. It’s like a lottery winner who later goes bankrupt. Twitter had such a fantastic opportunity. I recall, 5 years ago, when TechCrunch faced criticism for running so many stories about Twitter, but Michael Arrington defended the stories by saying that Twitter was important. And it could have been important. But now it is just fading away, thanks to mismanagement. They never should have gone after ad money. They should have built an eco-system around ...

Read More Source

September 7th, 2015

In Philosophy

No Comments

Suicide on campus

Interesting:

Ms. Holleran was the third of six Penn students to commit suicide in a 13-month stretch, and the school is far from the only one to experience a so-called suicide cluster. This school year, Tulane lost four students and Appalachian State at least three — the disappearance in September of a freshman, Anna M. Smith, led to an 11-day search before she was found in the North Carolina woods, hanging from a tree. Cornell faced six suicides in the ...

Read More Source

September 6th, 2015

In Business

No Comments

The end of science

Awful:

Throughout the years, I have been discovering more and more of the inner workings of academia and how modern scientific research is done and I have acquired a certain degree of discouragement in face of what appears to be an abandonment by my research community of the search for knowledge. I found scientists to be more preoccupied by their own survival in a very competitive research environment than by the development of a true understanding of the world.

By creating ...

Read More Source

September 6th, 2015

In Business

No Comments

Video game as format for serious essay

Interesting:

For the uninitiated, That Dragon, Cancer (which has yet to see a retail release) is a narrative-driven game, meaning players walk slowly and click on elements in the game world to activate spoken passages of text and interactions with other characters. It stars the creator, Ryan Green, and members of his family, as they bounce between hospital rooms, days at the park, and weirder, out-of-body experiences. The film’s opening sequence appears to be taken from the game itself, putting ...

Read More Source

September 5th, 2015

In Technology

No Comments

Is frontend Clojure development the best frontend development eco-system

I have not done much frontend work these last 3 years, so I am out of touch, but wow, there is a lot going on:

The first step is to define the routes we want. One of the designing features of bidi is that routes are data structures, not function/macro calls:

(def routes ["/" {"" :home "about" :about}])

The app-routes ...

Read More Source

September 5th, 2015

In Technology

No Comments

Limit the number of threads in Jetty

I do something similar, but I like the use of env, which I do not do:

(defn -main [& args] (let [config {:port (Integer/parseInt (or (env :port) "3000")) :join? false :min-threads (when (env :min-threads) (Integer/parseInt (env ...
Read More Source

September 5th, 2015

In Philosophy

No Comments

A website with teacher reviews got a student suspended from school, in 1994

How can schools teach young citizens that they have the right of free speech, and yet then impose harsh punishments for free speech?

Fortunately, both my parents and everyone I talked to during my suspension (the length of which the school refused to define, but ended up being five days) were largely supportive of my cause. They argued (and I agreed) that what I had done was careless, and I could have avoided the whole mess in the first place by ...

Read More Source

September 5th, 2015

In Technology

No Comments

Use ZeroMQ instead of Kafka

Considering how radically different these are, this is a funny comparison:

Stability was the key aspect of Kafka we were unhappy with after a yearlong journey with it.

An HA deployment of Kafka requires an HA deployment of zookeeper, which Kafka uses to coordinate distributed state and configuration. As I explained before, we’ve experienced a number of stability issues with this stateful cluster maintaining consistency through outages such as VM recycle. Some serious engineering time was going into reacting to issues, ...

Read More Source

August 31st, 2015

In Business

No Comments

It is very difficult to understand software based only on the database

And it is impossible to understand software if all you have is part of the database. I’ve had to struggle with this issue many times, at various companies. Apparently Annalee Newitz was bit by this as well.

The first thing I learned when I looked at the code was that the database Impact Team released on August 18, and on which I based my reporting about the number of active female users, was just a tiny portion of the ...

Read More Source

August 30th, 2015

In Business

No Comments

Racism is okay if the market approves? WTF?

Sickening:

Source

August 30th, 2015

In Business

No Comments

The financial bubbles of 2,000 BC

Another example of how science tends is biased toward excluding the possibilities of those things that would best explain our current situation, if we didn’t have the evidence, no one would be allowed to speculate such a situation:

The details of daily life are amazing, but another scholar, Gojko Barjamovic, of Harvard, realized that the archive also offered insight into something potentially more compelling. Many of the texts enumerate specific business details: the price of goods purchased and sold, the ...

Read More Source

August 30th, 2015

In Technology

No Comments

Matrices are representations of linear transformations

A good intro to an amazing topic:

Source

August 30th, 2015

In Business

No Comments

Google won’t hire Max Howell even though Google depends on Max Howell

Interesting:

Source

August 29th, 2015

In Technology

No Comments

Rich Hickey: Would you want to be on a team that only did what was easy?

A dangerous attitude: “I like this because its easy for me right now.” Rich Hickey talking at the Rails conference. In the obvious case, this is a wonderful criticism of Rails.

He asks if anyone would want to join the Foo Fighters if they were the Kazoo Fighters. What if they felt guitars and drums were hard, so they only played kazoos, because kazoos are easy?

We should make decisions based on the work we need to do, not because ...

Read More Source

August 29th, 2015

In Technology

No Comments

Hashmaps are not simple

Interesting:

I was at this talk and I disagree with his fundamental statement that simple + simple = simple. I program in Ruby one of the biggest problems beginners make is not creating complex data structures where they are needed. Instead they pass around hashes of hashes of hashes. Why? Hashes are simple, they’re easy to understand and work with. Unfortunately this initial simplicity introduces unexpected complexity, things like deep dup and deep merge are now needed. Every part of ...

Read More Source

August 28th, 2015

In Philosophy

No Comments

Police caught on tape talking about a woman

I agree with this:

Olivarius-McAllister didn’t, at first, hear the latter portion of the message, figuring it was just dead air. She forwarded it to her city editor, though, who did listen to the whole thing.

“He turned around the office and said, ‘These people are very opinionated about your body,’” Olivarius-McAllister said in an interview. “I thought he was joking. I listened to it and felt just utterly appalled.”

The Durango Herald was instrumental in helping current La Plata Sheriff Sean ...

Read More Source

August 27th, 2015

In Philosophy

No Comments

The personal responsibility to build a durable ego

Interesting:

I do not suggest, of course, that all men lack these skills, but I am suggesting that many do, and that it manifests itself in various, troublesome ways. It seems to me that we must do a better job of teaching our children, especially our sons, that your ego does not own you and the world does not owe you. That a woman has the right to not be interested. That you might get fired. That your ex-wife might ...

Read More Source

August 27th, 2015

In Business

No Comments

Over budget and late: the BBC epic software fail

Sad that this goes on, and top management never seems to learn:

“Agile development was agreed upfront, not developing the whole system end-to-end from day one,” Linwood told MPs.

“Several months later [the business] decided it didn’t want to do that, but would wait for the full functionality; it didn’t want to continue down that path,” he said.

“The business objected to the [agile] approach. Small incremental releases would allow the business to get hands-on with the technology so it would not ...

Read More Source

August 27th, 2015

In Philosophy

No Comments

Good writing is difficult

I don’t understand this. Sit at one’s typewriter, no matter the result, because writers are the same on all days? That is not even coherent. If the results vary day by day, then clearly the writer has different ability to deliver on different days.

“All writers know that on some golden mornings they are touched by the wand — are on intimate terms with poetry and cosmic truth. I have experienced those moments myself. Their lesson is simple: It’s a ...

Read More Source

August 26th, 2015

In Philosophy

No Comments

Zach Tellman: the heuristics of the government fail and the heuristics of software fail

Zach Tellman gives a speech that almost compares urban planning to writing software. He never exactly states his idea, but he is often on the brink. He compares the state and the nomad and suggests that the state is attempting to force reality to conform to a simplified version of itself, so as to make it tractable. He never exactly says “All of your attempts to write software are doomed” but that is implied by his implied criticism of the ...

Read More Source

August 26th, 2015

In Technology

No Comments

Garajeando takes on the Gilded Rose Kata in Clojure

I dislike this line:

not-conjured-item-name (clojure.string/replace name #”Conjured ” “”)

Seems like calling “update” twice could be done with the opposite of this test:

(if (.contains name “Conjured”)

How to find the name of the unconjured item? I agree that is a tough issue.

For something this short, perhaps it doesn’t matter, but if this was non-trivial software, I would store a “:conjured” key in “items” and match against that. Seems less fragile than matching against a string. ...

Read More Source

August 26th, 2015

In Technology

No Comments

Stuart Sierra’s anti-patterns for Clojure

This is a subtle difference:

Be explicit about your types even when they’re dynamic.

If the operation requires a collection, then pass it a collection every time.

A “helper” like wrap-coll saves you a whopping two characters over just wrapping the argument in a literal vector, at the cost of lost clarity and specificity.

If you often forget to wrap the argument correctly, consider adding a type check:

(defn process-batch [items] {:pre [(coll? items)]} ;; ... )

If there actually are two distinct ...

Read More Source

August 26th, 2015

In Technology

No Comments

Hauptsatz is the central result establishing the significance of the sequent calculus

An interesting preliminary for sequent theory. I’m interested because of my interest in Shen.

The cut-elimination theorem (or Gentzen’s Hauptsatz) is the central result establishing the significance of the sequent calculus. It was originally proved by Gerhard Gentzen 1934 in his landmark paper “Investigations in Logical Deduction” for the systems LJ and LK formalising intuitionistic and classical logic respectively. The cut-elimination theorem states that any judgement that possesses a proof in the sequent calculus that makes use of the cut ...

Read More Source

August 26th, 2015

In Business

No Comments

Less than 1% of female accounts on Ashley Madison showed any activity

Interesting:

Those millions of Ashley Madison men were paying to hook up with women who appeared to have created profiles and then simply disappeared. Were they cobbled together by bots and bored admins, or just user debris? Whatever the answer, the more I examined those 5.5 million female profiles, the more obvious it became that none of them had ever talked to men on the site, or even used the site at all after creating a profile. Actually, scratch that. As ...

Read More Source

August 26th, 2015

In Technology

No Comments

Natural language processing (NLP) is a messy and difficult affair

Interesting:

Similar words are nearby vectors in a vector space. This is a powerful convention since it lets us wipe away a lot of the noise and nuance in vocabulary. For example, let’s use gensim to find a list of words similar to vacation using the freebase skipgram data6:

from gensim.models import Word2Vec fn = “freebase-vectors-skipgram1000-en.bin.gz” model = Word2Vec.load_word2vec_format(fn) model.most_similar(‘vacation’)

# [('trip', 0.7234684228897095), # ('honeymoon', 0.6447688341140747), # ('beach', 0.6249285936355591), # ('vacations', 0.5868890285491943), # ('wedding', 0.5541957020759583), # ('resort', 0.5231006145477295), # ('traveling', 0.5194448232650757), # ('vacation.', 0.5068142414093018), # ('vacationing', ...

Read More Source

August 26th, 2015

In Philosophy

No Comments

Men cite their own work more than women cite their own work

Interesting:

But the new study (while confirming the 2013 work) is much larger and crosses many disciplines. This one is based on an analysis of 1.6 million papers written from 1950 to the present in the scholarly database JSTOR. While some first names are not gender exclusive, the study looked at first names that correspond with either men or women, but not both, at least 95 percent of the time, according to various public records. Papers written by people with names ...

Read More Source

August 24th, 2015

In Business

No Comments

She never did anything useful, she just raised her children

Ouch! That is some harsh misogynist burn from Jay Yarow:

Maria Wood was a book keeper for Microsoft, and married to another one of the early Microsofties in the picture. She left the company just two years later, suing it for sexual discrimination. Microsoft settled the case. After that, it doesn’t look like she did much else. She raised her children and became a volunteer.

Clearly she was a worthless nobody who never did anything useful because she raised kids and ...

Read More Source

August 23rd, 2015

In Technology

No Comments

Why use Clojure at your startup

I guess these are becoming the standard set of answers?

The specific design decisions and abstractions in clojure which I expect to minimize costs are the following:

Immutability. Engineering is a super giant rubics cube. To solve it, you need to know each moving part. When you get all the moving parts to finally be in the correct locations and move together, that’s when you’ve solved it. Immutable data structures don’t move. The less moving parts you have, the more brainpower ...

Read More Source

August 23rd, 2015

In Technology

No Comments

E.W.Dijkstra on multi process systems

There was some moment, in the late 1960s and early 1970s, when the field of computer science hit a happy fluid moment. By that point, a large number of people had been working with computers for 20 years, so they knew what worked and what did not work, and yet nothing had been settled yet, no architectures dominated. And then, suddenly, computers became a monoculture with standard parts:

1.) a CPU

2.) random access memory

3.) a storage device such as a ...

Read More Source

August 23rd, 2015

In Business

No Comments

Can the economics profession ever be made whole?

Paul Romer is doing heroic work trying to understand what happened to the economics profession:

I had a twitter exchange with Luis Garicano that was prompted by that post. It illustrates what my private conversations have been like.

To make this exchange more readable, I have tried to order it in threads, with each response indented just below the tweet that seems to have prompted it. As a result, the order of the tweets is slightly different from the actual chronological order. ...

Read More Source

August 23rd, 2015

In Business

No Comments

What politicians deserve respect?

The USA has been in debt since 1835. Rand Paul can ask for a world in which governments run debts, but isn’t that a bit of fantasy? If your hopes for the world run so far from what is real, at what point should the public treat you as a novelist? Much of what Stephen King writes is close to reality than what Rand Paul talks about, so should we think of Stephen King as qualified to prescribe economic ...

Read More Source

August 23rd, 2015

In Technology

No Comments

C. A. R. Hoare in 1973

I am surprised at how little has changed since 1973:

I would like in this paper to present a philosophy of the design and evaluation of programming languages which I have adopted and developed over a number of years, namely that the primary purpose of a programming language is to help the programmer in the practice of his art. I do not wish to deny that there are many other desirable properties of a programming language, — for example, machine independence, ...

Read More Source

August 23rd, 2015

In Business

No Comments

The Starbucks scam

This would work on the YC application where they ask “Tell us something other than computers that you have hacked”.

There is a man who comes to my Starbucks every single day and orders the most horrible drink in an infuriating way. He purchased 365 Starbucks cards and registered every one of them online with a different birthday so that he gets a “free birthday drink” EVERY DAY OF THE YEAR. Even though I know exactly how he “beat the ...

Read More Source

August 23rd, 2015

In Philosophy

No Comments

Pretty in kindergarten

Life is complicated:

And yet, here we are in the actual world as it is, are we not? Just this morning I was getting my five-year-old daughter dressed for kindergarten. She wanted to wear a new dress we hadn’t really tried on at the store; I’d just held up to her quickly to size it up and move along. Putting it on, I realized it was kind of big. It looked nothing like the cute little Jackie-O style number I’d ...

Read More Source

August 22nd, 2015

In Technology

No Comments

Paul deGrandis in 2012, the emergence of Clojure success stories

I like this talk by Paul deGrandis because he says he is not an Enterprise guy, he is a startup guy, and he says Clojure is more a startup technology than an Enterprise technology. I like that because I work with startups. Some people say that Clojure is best as Clojure In The Large, but I don’t work in the large. He says Enterprise CTO’s are driven mostly be fear.

Clojure is great for building a prototype that can become ...

Read More Source

August 22nd, 2015

In Philosophy

No Comments

Influences in 進撃の巨人 (Attack On Titan)

I watched the first 5 episodes of 進撃の巨人. I thought I could pick out a few dozen influences that get recycled in this animae. Some are old Japanese obsessions, such as invasion by powerful outsiders. Some seemed more international.

It starts with humans living behind walls. They live in a village that is of Franco-Germanic design, and the people dress in a similar fashion. The people and the village are straight out of Bruegal painting.

The people are cut off ...

Read More Source

August 22nd, 2015

In Technology

No Comments

Camille Fournier (Rent the Runway) – Consensus Systems for the Skeptical Architect

ZooKeeper owns your availability. Worth watching. I thought it was amazing when she said that even 5 years ago, even at Google, most programmers were not thinking in terms of distributed computing. Instead, its been the boom in microservices that has driven the adoption of distributed computing. I wonder why microservices wasn’t more popular 10 years ago? Everything in software started off monolithic and has gotten smaller. I suppose that is because of the increasing ease of composition?

Source

August 22nd, 2015

In Philosophy

No Comments

A good society is safe for children

I think this image is meant sarcastically, but I find that I 100% support all of the slogans:

Traffic safety is an important issue. In the USA, most homes open directly onto a street, or they have a yard, which touches upon a street. This is insane. There should be 100 meters between any house and any car. We should not be telling children “Don’t play in traffic”, we should, instead, redirect traffic so it never comes close to any ...

Read More Source

August 20th, 2015

In Technology

No Comments

Concurrency is easier with Clojure

I’m helping a co-worker write concurrent code in Java. I’m reminded, once again, that Clojure is easier. In Java, we must wrestle with the issue of synchronized blocks. We have an operation that reads a value from a hashmap and then deletes the key from the hashmap. We are using the hashmap almost like a queue: many threads might read from this hashmap, and yet we only want one thread to read from this hashmap. Therefore, both the read and ...

Read More Source

August 20th, 2015

In Technology

No Comments

SSL for Jetty via Apache reverse proxy

I found this to be useful

<VirtualHost *:443> SSLEngine on (...) ProxyRequests Off ProxyVia Off ProxyPreserveHost On AllowEncodedSlashes NoDecode RequestHeader set X-Forwarded-Proto https RequestHeader set X-Forwarded-Port 443 <Proxy *> Order deny,allow Allow from all </Proxy> <Location /test> ProxyPass http://localhost:8666/test nocanon </Location> (...) </VirtualHost> Source

August 20th, 2015

In Technology

No Comments

How to create a POJO in Clojure

The premise sounds interesting:

Those times you need to have Java APIs.. Some of these APIs need to return data. In Clojure it is usually a map:

{:q “What is..?” :a 42}

In Java it is not that simple for several reasons.. Java maps are mutable, there are no idiomatic tools to inspect, destructure them, Java (programmers) like different types for different POJOs, etc..

I would have appreciated an actual example. The great thing about Clojure is how it makes data access easy. ...

Read More Source

August 20th, 2015

In Technology

No Comments

SalesForce is confusing

Reading through SalesForce documentation I constantly come upon 404 errors:

They don’t keep the documentation up to date.

SalesForce has so many products that it is difficult to figure out which bit of documentation applies to whatever it is that you are trying to do.

Consider the question, “When does it make sense to add a Connected App to a Managed Package?” This is something I’ve wondered. And no one can give me a reliable answer.

One answer makes it ...

Read More Source

August 20th, 2015

In Technology

No Comments

Zookeeper Owns Your Availability

Interesting:

In Camille Fournier’s excellent talk on consensus systems, she advises that “Zookeeper Owns Your Availability.” Consensus systems are a necessary and powerful tool, but they add complexity and new failure modes. Specifically, if the consensus system goes down, you can’t do work any more. In Chronos’s case, you’re not just running one consensus system, but three. If any one of them fails, you’re in for a bad time. An acquaintance notes that at their large production service, their DB ...

Read More Source

August 20th, 2015

In Technology

No Comments

Bad habits: someone reports a bug so you insult them

This is a good example of how to do things wrong. Kyle Kingsbury did another one of his epic posts on Jespen. Every one of his posts so far has been a masterpiece of technical investigation. In the latest article he found a bug in Chronos, and he created an “issue” on Github. One of the programmers of Chronos then insulted him.

Kyle Kingsbury says:

I’m still not clear how exiting preserves correctness and prevents “split brain behavior”, but I’ve ...

Read More Source

August 11th, 2015

In Philosophy

No Comments

Alexis Neiers: I wasn’t wearing Louboutins

I had totally forgotten about this. Truly one of those moments that captures the zeitgeist.

Alexis Neiers Phone Call (Full Scene) by tbhuratchet

Source

August 11th, 2015

In Business

No Comments

Insider trading is the best way to steal

Interesting:

Today’s big hacker insider trading charges are utterly amazing. Here are the news release and criminal complaint from New Jersey federal prosecutors, the Brooklyn federal criminal complaint, and the SEC news release and civil complaint. The gist is that some guys in Ukraine allegedly hacked into the servers of the big newswire companies (Marketwired, PR Newswire and Business Wire) and stole press releases, and then gave them to some other people to trade on. That right there: That is the ...

Read More Source

August 11th, 2015

In Philosophy

No Comments

What poor and uneducated brilliance looks like

There must be a lot of this now, and it must have been much worse in the past, people of intelligence who lived without education, and died in poverty:

Unlike all of Havard’s other correspondents Virginie wrote almost entirely in the local langue d’oïl dialect, Gallo. This may have been a daily language of communication in the region but there was almost nothing in print available at the time. In effect Virginie had to invent her own orthography and ...

Read More Source

August 11th, 2015

In Technology

No Comments

Redis Out Of Memory error

Interesting:

I’m getting “OOM command not allowed” when trying to set a key, maxmemory is set to 500M with maxmemory-policy “volatile-lru”, I’m setting TTL for each key sent to redis.

info command returns : used_memory_human:809.22M

If maxmemory is set to 500M, how did I reached 809M ? Info command does not show any Keyspaces , how is it possible ? keys * returns “(empty list or set)” ,I’ve tried to change db number , still no keys found. Here is info command output:

redis-cli -p 6380 ...

Read More Source

August 11th, 2015

In Technology

No Comments

The wrk command replaces Apache Bench

Apache has long had a strange gap in its testing tools. There was “bench” and there was “flood”. bench is easy but only handles HEAD requests. flood can do everything but requires a complicated XML config.

Now the team at Netty have spun off the wrk command, which looks very useful:

wrk - a HTTP benchmarking tool wrk is a modern HTTP benchmarking tool capable of generating significant load when run on a single multi-core CPU. It combines ...
Read More Source

August 10th, 2015

In Business

No Comments

The assumption you are smarter than everyone else

Interesting:

I’ve noticed a common bias that shows up in some founders: they believe that their competitors are stupid or uncreative. They’ll look at other businesses and identify inefficiencies or bad systems, and decide that those conditions exist because of dumb decisions on the part of founders or employees.

This is a bad belief to hold. In truth, competitors in the market are usually founded and run by intelligent people making smart and logical decisions. That doesn’t mean that all the ...

Read More Source

August 9th, 2015

In Business

No Comments

When the FDA gets it right

Frances Kelsey, a Hero During the Thalidomide Scourge, Dies at 101

I suppose we could find it worrisome that when a bureaucrat gets it right, people are so astonished that they award a medal to the bureaucrat. But I admire courage, and I realize it takes courage to stand up to a product when both government and business are for it, and for that reason, I believe she deserves to be remembered as a hero.

Source

August 8th, 2015

In Philosophy

No Comments

Dogmatism Skepticism Eclecticism

Interesting:

In a paper delivered to the Aristotelian Society on 12 March 1956,[1] Walter Bryce Gallie (1912–1998) introduced the term essentially contested concept to facilitate an understanding of the different applications or interpretations of the sorts of abstract, qualitative, and evaluative notions[2]—such as “art” and “social justice”—used in the domains of aesthetics, political philosophy, philosophy of history, and philosophy of religion. Garver (1978) describes their use as follows:

The term essentially contested concepts gives a name to a problematic situation that many people ...

Read More Source

August 7th, 2015

In Business

No Comments

A package gets sent over the ocean 7 times by FedEx

Interesting:

Source

August 6th, 2015

In Business

No Comments

Why Google failed

Interesting:

Google Plus was done differently to other innovations in Google. It was set up as an autonomous unit in a separate building with thousands of engineers moved to it. The CEO, Larry Page, moved his office into that new building to signal its importance and to ensure that it could operate without constraint. And that is precisely what it did. It innovated quickly and, in the process, had the rest of the organization perplexed, concerned and wondering what it ...

Read More Source

August 6th, 2015

In Business

No Comments

Risk aversion is destroying modern movie making in the USA

Interesting:

This byzantine plot sprawl has been in full effect this year. Avengers: Age of Ultron lost many round about the point the villain heads off to a South African shipyard in search of something called Wakandan vibranium. Promoting the film, writer-director Joss Whedon acknowledged that keeping all the narrative plates spinning for his six-man superhero team, plus all the side players, had left him “a little bit broken”. Terminator Genisys director Alan Taylor, faced with the collective “eh?” over his ...

Read More Source

August 5th, 2015

In Technology

No Comments

The basics of working with Supervisord

I’ve come up with a system whereby:

1.) Jenkins pulls our code from the master branch on Github

2.) I wrote a build script that I store in /usr/local/bin

3.) Jenkins calls the build script as one of its build steps

4.) I wrote a script that finds the PIDS of existing instances of the app, and kills them:

#! /bin/sh ps aux | grep SSAM | awk '{print $2}' | xargs kill

5.) Jenkin calls the kill script as its last build step

6.) ...

Read More Source

August 5th, 2015

In Business

No Comments

Opfer müssen gebracht werden

Interesting:

Lilienthal was a German mining engineer who, starting with only a pair of birdlike wings, designed and flew a series of gliders—eighteen in all—and made more than two thousand flights in them to become the first true aviator. He held on to a connecting bar with his legs dangling free so they could be used in running or jumping and also in the air for balance. He took off by jumping from a building or escarpment or running down a ...

Read More Source

August 4th, 2015

In Technology

No Comments

Supervisord is Python

A reminder to myself, liking Supervisord entails liking Python idioms:

A [program:x] section actually represents a “homogeneous process group” to supervisor (as of 3.0). The members of the group are defined by the combination of the numprocs and process_name parameters in the configuration. By default, if numprocs and process_name are left unchanged from their defaults, the group represented by [program:x] will be named x and will have a single process named x in it. This provides a modicum of backwards compatibility ...

Read More Source

August 2nd, 2015

In Philosophy

No Comments

Ultra-Orthodox Jewish man recently released from prison kills at Gay Pride in Israel

I suppose hate never goes away, it just finds different subjects to focus on, during different eras.

Sixteen-year-old Shira Banki died on Sunday, a spokeswoman for the Hadassah Medical Center said. Her organs will be donated.

Six people were wounded Thursday by Yishai Schlissel, an ultra-Orthodox Jewish man recently released from prison. Haaretz reports that Schlissel had been serving a 10-year sentence after comitting a similar attack at the 2005 pride parade, when he stabbed three people.

Source

August 1st, 2015

In Technology

No Comments

The humility of the Clojure community

Very true:

I was bragging to Alan about a Drake release, which I was calling 0.2.0. Alan rolled his eyes. He was like, “Considering the conventions put forth by Semantic Versioning, and considering that Drake has been in production at this company as well as other companies for years now, why not call it version 1 already?” I pushed back a bit, by surveying two existing open source Clojure projects I know of:

Aleph, Zach Tellman’s notorious asynchronous library for ...

Read More Source

July 31st, 2015

In Philosophy

No Comments

Fatherhood circa 2015

Regarding Millenial Men Aren’t the Dads They Thought They’d Be.

Short-term waves ride on top of long-term waves, but if we want an accurate picture of reality, we need to simultaneously remember the short-term and long-term waves. The trough of one wave can mitigate the peak of another wave, should their frequency be off in such a way that they interfere with each other. Likewise, with social trends. Any article about what men think about marriage and fatherhood should be juxtaposed ...

Read More Source

July 31st, 2015

In Technology

No Comments

But you can customize the code?

Mike Knepper says Ruby gems are dangerous, but I am ambivalent:

The real problem with Devise commandeering all these components is that it makes the system extremely rigid. If the business logic changes (and yes, it will change) in a way that affects user sign-in or account creation, the developer is limited to modifying the app within the constraints of Devise. The developers behind Devise may not have anticipated a situation quite like yours, so getting Devise to work with the ...

Read More Source

July 31st, 2015

In Technology

No Comments

Refactor async work in Ruby

Kevin Buchanan makes an interesting point:

But, that’s starting to seem like a lot of behavior, and maybe that behavior is crucial enough to our application that we want to have more control over it, or want one place to go to change how we retry asynchronous tasks in our application. If we consider this retry, backoff, failure logic a key feature of our app, we probably don’t want to be coupled to using Sidekiq for this. What if tomorrow ...

Read More Source

July 30th, 2015

In Technology

No Comments

Innovation has slowed since the 1970s

Interesting:

“Real rocket science” took place almost 50 years ago, with the Apollo moon landing. The Apollo missions set the speed record for humans at roughly 40,000 km/hour. But after that, the rocket science advances started to slow down. From 1685 on, the number of scientific papers published doubled every fifteen years—he likened it to Moore’s Law—but that leveled off in the 1970s.

Who was doing this rocket science, he asked; who was programming these rockets and spacecraft to land on the ...

Read More Source

July 29th, 2015

In Technology

No Comments

Could I ever explain monads to someone else?

I would like to get to the point where I feel comfortable explaining monads to others:

In functional programming, a monad is a structure that represents computations defined as sequences of steps: a type with a monad structure defines what it means to chain operations, or nest functions of that type together. This allows the programmer to build pipelines that process data in steps, in which each action is decorated with additional processing rules provided by the monad.[1] As such, ...

Read More Source

July 28th, 2015

In Technology

No Comments

When to use repeating tasks inside of an app?

I would guess the best thing about cronj is its focus on thread management. And yet, I am in favor of very small apps, which may only have a single task that repeats. But this raises problems for the JVM. If I bundle all tasks into a single JVM process, then the highly optimized JVM engine can take full advantage of the careful thread management of cronj. If I have separate apps, then they compete for resources (though the newest ...

Read More Source

July 28th, 2015

In Technology

No Comments

Why Docker failed

Interesting:

Building container images for large applications is still a challenge. If we are to rely on container images for testing, CI, and emergency deploys, we need to have an image ready in less than a minute. Dockerfiles make this almost impossible for large applications. While easy to use, they sit at an abstraction layer too high to enable complex use-cases:

Out-of-band caching for particularly heavy-weight and application-specific dependencies

Accessing secrets at build time without committing them to the image

Full control over ...

Read More Source

July 28th, 2015

In Technology

No Comments

Trying to convince devs of the merits of Clojure

Interesting:

Leon Grapenthin:

I have tried various different approaches from convincing of Clojure advantages in the Java devs concrete domain, showing off incredibly awesome toy projects, larger projects, not tryng to sell, trying to sell, sending ClojureTV videos and what not approach you can think of. I have not managed to introduce one Java dev to Clojure in a way that he picked it up and had no interest before. I have spent many hours thinking about how I could ...

Read More Source

July 28th, 2015

In Technology

No Comments

The limits of RESTful interfaces

Interesting:

The chart leaves most of the rows blank for the year 1995, but of course, all of the necessary technologies existed in 1995, and in 1989. The focus of the article is on HTTP, but the article might be stronger if it confronted why HTTP was successful, when it lacked important abilities such as Authentication. There were other technologies that offered Business Logic and Logging and Realtime, back in 1989, so why weren’t they more successful?

It’s also curious ...

Read More Source

July 28th, 2015

In Technology

No Comments

Mutable arrays in Clojure

Chris Zheng has done some impressive work with mutable arrays:

Predicates as Datastructure I’m quite proud of the expressiveness of the ova syntax. We can see below the number of possible ways that we can select elements out of the array. Here is just a sample of what can be done using the select function.

(def ov (ova [{:val 1} {:val 2} {:val 3} {:val 4} {:val 5} {:val 6} ...
Read More Source

July 27th, 2015

In Technology

No Comments

When should Clojure imitate Object Oriented Programming?

Chris Zheng writes:

Servers that are running on a particular port can be tracked and stopped. I have to say, this was the feature that I wanted the most, which motivated the framework’s design. The annoying thing about development in emacs is that I have to be careful of not losing the reference to the server. Since there was no way of stopping it unless the repl is restarted. I wanted to implement a registery for references to running servers ...

Read More Source

July 26th, 2015

In Technology

No Comments

The maybe monad represents computations whose result is maybe a valid value, but maybe nil

Here is a sentence I have read a dozen times without understanding it:

The maybe monad represents computations whose result is maybe a valid value, but maybe nil.

This seems like a good way to think about the Any type, when dealing with things such as Typed Clojure.

Source

July 26th, 2015

In Technology

No Comments

The sins of Adam Bard

This last year I find that everything Adam Bard writes is worth reading. I have not been checking his blog very often but I should. I just saw this post from a year ago, which is really fantastic:

Any time you put a let in a let or an if in an if, that’s a strong code smell. It means you’re still writing code in a way that requires you to short-circuit your functions with returns.

There is a fascinating debate ...

Read More Source

July 25th, 2015

In Technology

No Comments

Scheduling libraries in Clojure

Chris Zheng has some interesting arguments for his particular take on these issues:

There are now many more scheduling libraries in the clojure world:

at-at chime clj-cronlike cron4j monotony quartzite schejulure

With so many options, and so many different ways to define task schedules, why choose cronj? I have listed a number of design decisions that make it beneficial. However, for those that are impatient, cut to the chase, by skipping to the simulations section.

…In reviewing other scheduling libraries, it was found that fully-featured thread management capabilities were ...

Read More Source

July 25th, 2015

In Technology

No Comments

Will I regret Functional programming?

I’ve spent the last year writing negative things about Object Oriented Programming, and I’ve been among the many people arguing that Functional Programming is the future. And I’ve talked about the political forces that drove the adoption of Object Oriented Programming. But that does raise the issue, what political forces are driving the adoption of Functional Programming? One possible answer is “None” and that would explain why Functional Programming remains a small niche compared to Object Oriented Programming. Another is ...

Read More Source

July 24th, 2015

In Technology

No Comments

Why Python 3.x went off course

A fascinating post from 2005, which is when Python began to veer off course. Python 2x had some beautiful features that could have been further developed, but instead, with 3.0, Python went down the classic Object Oriented road. In this post, Guido van van Rossum explicitly rejects much of the Functional paradigm that Python had picked up from Lisp.

So now reduce(). This is actually the one I’ve always hated most, because, apart from a few examples involving + or *, ...

Read More Source

July 24th, 2015

In Technology

No Comments

They cost of using Hystrix

Ouch!

We cannot use Clojure’s concurrency primitives (futures/promises/agents).

That is fascinating to think that at some point Clojure’s concurrency primitives are not enough, and so we need to give up on them and move to a Java library. I am aware that Netflix is dealing with unusual scale, but what is the point of Clojure if it doesn’t automate exactly these issues?

The comments are interesting:

Marc: When using Aleph, the choice for lamina would seem a sure thing. What made you turn ...

Read More Source

July 24th, 2015

In Technology

No Comments

The simplest step toward circuit breakers in Clojure

I think I missed the importance of this the first time I read it:

Consider you have this line within a service response:

{:body @(future (client/get “http://soundcloud.com/blah/wah”)) :status 200}

Now http://soundcloud.com/blah/wah goes down and those client requests start getting blocked on the request. In Clojure all future calls acquire a thread from the same thread pool. In our example the service is blocked up, is pilling new requests onto the blocked pool and we are in trouble.

My first solution to this problem ...

Read More Source

July 24th, 2015

In Technology

No Comments

Chris Zheng is consolidating his libraries into Hara

I have some questions for Chris Zheng. I admire Ribol very much, though I was not aware of some of the other repos. I am curious why you are moving forward with an integration of these libraries? The Clojure community has so far avoided frameworks and even large libraries have met with rejection. What do you hope to gain by consolidating these projects?

The projects:

iroh has been moved to hara.reflect

ova has been moved to hara.concurrent.ova

cronj has been superceded by ...

Read More Source

July 24th, 2015

In Philosophy

No Comments

Advice columns still survive in newspapers

I am surprised that advice columns are still surviving in newspapers. Of course, I’m also surprised that newspapers still exist. Carolyn Hax offers relationship advice at the Washington Post:

You probably don’t want to hear it, and I certainly don’t like saying it to someone who is engaged, but you don’t sound terribly well suited to each other. All relationships involve some accommodation, but not so much that you feel like you have to draw and hold awkward lines just because ...

Read More Source

July 24th, 2015

In Technology

No Comments

Property based testing in the Functional Paradigm

Interesting:

Which brings me to another killer feature of many functional languages: property-based testing (PBT). While PBT is by no means an exclusive domain of functional languages, it does have deep roots in Haskell in the form of QuickCheck. What sets PBT apart from its traditional unit and integration brethren is its emphasis on defining a set of properties that describe a function and ability to generate a lot of random test cases to attempt to falsify these specifications. This ...

Read More Source

July 24th, 2015

In Technology

No Comments

Functional programming is not the same as static typing

I like this article, but it does confuse Functional Programming with static data types. Consider this example of evil Ruby code:

Take for instance the following Ruby code that uses Virtus.

class Events < Array def Source

July 24th, 2015

In Technology

No Comments

Dealing with mutation is hard

Obviously, I agree with this:

Dealing with mutation is hard. When I constantly grappled with these issues early on in my career, I thought I had serious issues. Perhaps I wasn’t cut out to be a developer. Maybe I should seriously consider a different career. It didn’t help that other developers breezed through similar assignments as if mutation and them were one (don’t get any ideas). But then I started reading about functional programming and how everyone was endlessly whining about ...

Read More Source

July 24th, 2015

In Business

No Comments

Women still get fired for being pregnant

I find it sad that in the year 2015, women still get fired for being pregnant:

Juarez’s complaint also claimed that the company has a “glass ceiling” that keeps women from getting promoted. Just 10 of the 98 stores in the San Diego area where she worked had female managers. And at trial, a former district manager testified that a vice president reprimanded him for having so many women in management positions, telling him, “What are we running here, a boutique? ...

Read More Source

July 23rd, 2015

In Business

No Comments

Robyn Exton keeps moving forward

I’ve been surprised that so many dating sites were started by men, and so few by women, so this is an interesting story:

Her, the queer dating app for women, has today announced that it will be available nationwide.

Her is a dating app that puts a strong focus on content, specifically curated for and dedicated to queer women, whether they’re bi-curious or as gay as a rainbow.

Her was previously available in seven cities across the country, only activating those ...

Read More Source

July 21st, 2015

In Business

No Comments

Hollywood sexism

Interesting:

The actress told Radio Times:

“I think it’s still completely shit actually. I don’t think there’s any appreciable improvement and I think that for women, the question of how they are supposed to look is worse than it was even when I was young. So, no, I am not impressed at all.”

Thompson was much more optimistic about the movie business way back when, she says:

“When I was younger, I really did think we were on our way to a better world ...

Read More Source

July 21st, 2015

In Philosophy

No Comments

Men who lose at video games are the most likely to harass women

Interesting:

That should sound a whole lot like a lot of other, frequently sexist online spaces: Think Twitter. Or Reddit. Or 4chan.

In each of these environments, Kasumovic suggests, a recent influx of female participants has disrupted a pre-existing social hierarchy. That’s okay for the guys at the top — but for the guys at the bottom, who stand to lose more status, that’s very threatening. (It’s also in keeping with the evolutionary framework on anti-lady hostility, which suggests sexism is ...

Read More Source

July 21st, 2015

In Business

No Comments

The rebirth of urbanism

Interesting:

Multi-unit buildings are making a comeback. Construction is now at the best level in 30 years. It’ll be curious how far this trend goes.

And this about the death of the office park:

The American ghost town has assumed different forms: the abandoned gold-rush towns out West, the silent Floridian subdivisions of underwater McMansions. Now, we have fiefdoms of mid-Atlantic office space, on streets named Research Boulevard and Professional Drive, thinning out in the sprawl. They are hobbled by changing work ...

Read More Source

July 19th, 2015

In Philosophy

No Comments

When is it ethical to out someone?

Interesting:

Everyone’s feeling very proud of themselves today for being grossed out by a Gawker post containing the text and email exchanges between a male escort and a well-connected, married executive who was trying to procure said escort’s services. The issue at hand, according to everyone who’s outraged, is that this is the outing of a gay man who would otherwise have been living a closeted life with his wife and three kids, harming no one. Because he is not ...

Read More Source

July 16th, 2015

In Technology

No Comments

The worsening web

The comments here are great:

Let’s dive deeper into the CNN article. Among the 200+ HTTP requests the page makes are calls to 25 different domains.

Yes you read that correctly. TWENTY…FIVE. Among them are a few that are clearly ad related (ex. ad.doubleclick.net, pixel.moatads.com), a few that serve some analytics function, and many whose names are intentionally obfuscated to confuse us.

Jeff Edsell:

The part of web cruft I hate most:

“Why does our page load so slow? Should you compress the images ...

Read More Source

July 16th, 2015

In Technology

No Comments

Greg Hendershott looks at Racket Macros

I wanted to ask Greg Hendershott for permission to copy his code in Clojure, but I could not find an email address for him. My own email is lawrence@krubner.com. I love this epilogue from Greg Hendershott:

"Before I had studied Chan (Zen) for thirty years, I saw mountains as mountains, and rivers as rivers. When I arrived at a more intimate knowledge, I came to the point where I saw that mountains are not mountains, and rivers are not rivers. But ...
Read More Source

July 15th, 2015

In Technology

No Comments

Vim has a function with 400 lines of code

When I worked at Category4, they had a homegrown HTML library. The method that generated HTML tables was over 1,100 lines of code (not a typo). So I’ve seen some fairly large functions. Dealing with them is why I now prefer 5 line functions written in a clean language like Clojure.

This is interesting:

This function is over 400 lines and contains over 40 #ifdefs. Its job? To wait for keyboard input. Several factors caused this code to be so ...

Read More Source

July 15th, 2015

In Philosophy

No Comments

Sydney Leroux’s fake eyelashes

Interesting:

Everywhere I go, people are talking trash about Sydney Leroux’s fake eyelashes. To be fair, I’ve been in Canada, where she’s particularly reviled. I get it, she turned her back on you, Canada. You’re hurt. But through the pain, I beg you, do not bring her eyelashes into this. Because let’s be real: those eyelashes are amazing.

Female soccer players have long balanced their athleticism and femininity. And at least in the United States, they’ve long balanced it the same way, ...

Read More Source

July 15th, 2015

In Business

No Comments

Debt relief and devaluation as wild-eyed radical ideas?

I notice this too. Ideas that were once the bedrock upon which Conservatives organized their economic thinking are now regarded as left wing:

I continue to be amazed by how many people regard debt relief and devaluation as wild-eyed radical ideas; of course, it matters most that so many influential people in Europe share this ignorance. Anyway, for the record (and for my own future reference) I thought it would be helpful to post what Milton Friedman and Irving Fisher ...

Read More Source

July 15th, 2015

In Technology

No Comments

What does the word “Cancel” mean?

Some of the worst User Interface Design I’ve seen in awhile. The Amtrak website uses “Cancel” as the text on the button that cancels your reservation. Almost everywhere in the world, if you see a button that says “Cancel,” it means you do not want to do something. But Amtrak uses it here, so if you do want to cancel your reservation, you have to hit the Cancel button.

Source

July 2nd, 2015

In Philosophy

No Comments

Ronda Rousey Fights Like An A Very Unusual Human

Interesting:

The story below was written before Saturday night’s fight in Rio de Janeiro, in which Ronda Rousey knocked out Bethe Correia in 34 seconds. That means Rousey is 12-0, and 6-0 in the Ultimate Fighting Championship (UFC), the biggest promotion company. Rousey has now won nine of her fights by armbar submission and three fights by KO/TKO, and remains the best pound-for-pound female MMA fighter in the world.

——–

Ronda Rousey is the rare athlete who dominates her sport while transcending ...

Read More Source

June 23rd, 2015

In Business

No Comments

David Tuite offers bad interview advice

David Tuite writes:

Expressing confusion in an interview doesn’t make you appear dumb. In reality it’s quite the opposite.

This is terrible advice. The advice is common, but it is wrong. Multiple studies show that your questions can have a subconscious effect on the person interviewing you. Even if they say “Please feel free to ask questions” if you phrase the question the wrong way, or ask a question outside the bounds of what they were expecting, it becomes a ...

Read More Source

June 21st, 2015

In Business

No Comments

CRM for startups

SalesForce and SAP rule the world when it comes to enterprise CRM. Both are abominations. Bridget of TheyCay.com recently told me about 2 that are aimed at startups. I know nothing about these, so I’m just posting links for now, I hope to come back and investigate these more later.

Pipedrive:

Streak:

Source

June 21st, 2015

In Technology

No Comments

Image recognition: we can not get there from here with what we’ve got

Interesting:

Leopards (or jaguars) are complex 3-dimensional shapes with quite a lot of degrees of freedom (considering all the body parts that can move independently). These shapes can produce a lot of different 2d contours projected on the camera sensor: sometimes you can see a distinct silhouette featuring a face and full set of paws, and sometimes it’s just a back and a curled tail. Such complex objects can be handled by a CNN very efficiently by using a simple rule: ...

Read More Source

June 21st, 2015

In Technology

No Comments

Where does image recognition fail?

Photo shows image recognition has a long way to go.

Source

June 20th, 2015

In Business

No Comments

Sex, Google, and how sex writers adapt

I hope Violet Blue writes more about this:

I had to sideline valuable freelance gigs to get this move done, and it had to be done ASAP, because Google’s algo changes were (are) really hurting me.

In the bad old days of print publishing, there was a lot of evil censorship, but at least it was easy to spot. There are, after all, all the famous cases against various novels: Allen Ginsburg’s “Howl”, novels like “Naked Lunch”, etc.

Nowadays the forces ...

Read More Source

June 20th, 2015

In Technology

No Comments

How NodeJs fails to deal with backpressure

Interesting:

The Node concurrency model is kind of like a credit card for computing work. Credit cards free you from the hassle and risks of carrying cash, and they are completely great in almost every way, unless you spend more than you make. It’s hard to even know you have spent more than you make until the next bill comes. Similarly, node lets you do more work, and it’ll call you back when it’s done, whenever that is. You might not ...

Read More Source

June 19th, 2015

In Technology

No Comments

Git history should show you reality, not a cleaned up version of reality

Well said:

The obsession of git users with rewriting history has always puzzled me. I like that the feature exists, because it is very occasionally useful, but it’s one of those things you should almost never use.

The whole point of history is to have a record of what happened. If you’re going around and changing it, then you no longer have a record of what happened, but a record of what you kind of wish had actually happened.

How are you ...

Read More Source

June 15th, 2015

In Technology

No Comments

The New Netflix

Netflix upgrades its website.

I have my doubts about the heavy use of Javascript that’s become normal over the last 5 years.

I got my current MacBook Pro in 2011 and for awhile it seemed like a fast computer. Nowadays, however, if I launch Chrome, and I have 6 or 7 pages open, the computer is under stress. If I open the terminal and run “top” I see that the load varies between 1 and 3. It never goes below ...

Read More Source

June 10th, 2015

In Business

No Comments

Krugman’s 10 years on the recession

Krugman’s first essay about the end of the housing bubble came out just about 10 years ago.

Nobody would pay San Diego prices without believing that prices will continue to rise. Rents rose much more slowly than prices: the Bureau of Labor Statistics index of “owners’ equivalent rent” rose only 27 percent from late 1999 to late 2004. Business Week reports that by 2004 the cost of renting a house in San Diego was only 40 percent of the cost ...

Read More Source

June 10th, 2015

In Technology

No Comments

The new RESTful style

Apparently this style is now popular with some developers:

Source

June 9th, 2015

In Technology

No Comments

Strange problems with Rackspace cloud machine

What to make of this?

root@cloud-server-01:~# emacs The program ‘emacs’ can be found in the following packages: * emacs24 * emacs24-nox * e3 * emacs24-lucid * jove Try: apt-get install root@cloud-server-01:~# apt-get install emacs24 Reading package lists… Done Building dependency tree Reading state information… Done emacs24 is already the newest version. emacs24 set to manually installed. 0 upgraded, 0 newly installed, 0 to remove and 21 not upgraded. 134 not fully installed or removed. After this operation, 0 B of additional disk space will be used. Do you want to continue? [Y/n] ...

Read More Source

June 9th, 2015

In Technology

No Comments

Avoid RejectedExecutionException in lein :(

I am curious what Dave Ray wrote here in his Seesaw repo.

(defn -main [& args] (when-not (first args) (println "Usage: gaidica ") (System/exit 1)) (reset! api-key (first args)) (invoke-later (-> (make-frame) add-behaviors show!)) ; Avoid RejectedExecutionException in lein :( @(promise))

Does anyone know what this about? What causes RejectedExecutionException in lein?

Source

June 2nd, 2015

In Technology

No Comments

When to use Patch

Interesting:

When should we use the PATCH HTTP method?

The HTTP methods PATCH can be used to update partial resources. For instance, when you only need to update one field of the resource, PUTting a complete resource representation might be cumbersome and utilizes more bandwidth

Also, the PUT method is idempotent. PUTting the same data multiple times to the same resource, should not result in different resources, while POSTing to the same resource can result in the creation of multiple resources.

See also RFC 5789 ...

Read More Source

June 2nd, 2015

In Technology

No Comments

Working with monoids

Interesting:

Simply put, Monoids describe types containing a binary function and an identity value.

When applied to the identity value and a random value x, said function leaves its argument x untouched, returning it as a result. This short description should be enough to get the conversation started.

Here’s how Haskell defines a Monoid:

class Monoid m where mempty :: m mappend :: m -> m -> m mconcat :: [m] -> m ...

Read More Source

June 2nd, 2015

In Technology

No Comments

A pipeline of agents creates a fully asynchronous programming model

I recall reading this code in 2010 or 2011, when I was first learning Clojure, and at the time there was a great deal about it that I did not understand, so I missed the point:

(def logger (agent (list))) (defn log [msg] (send logger #(cons %2 %1) msg)) (defn create-relay [n] (letfn [(next-agent [previous _] (agent previous))] (reduce next-agent nil (range 0 n)))) (defn relay [relay msg] (letfn [(relay-msg [next-actor hop msg] ...
Read More Source

June 1st, 2015

In Technology

No Comments

Using reducers on the bytes in a memory mapped file

This could be a powerful technique, especially when speed and parallelization are important:

First, we’ll have a couple of parameters: the character set for the input and a hint for the size of chunk to break the file into. (def ^:dynamic *charset* (Charset/forName "UTF-8")) (def ^:dynamic *chunk-size* (* 10 1024 1024)) With those, we’ll break the file into chunks by skipping through it and reading ahead until we get to the end of a line. Later, when we actually read the file, this ...
Read More Source

June 1st, 2015

In Technology

No Comments

Higher order functions in Clojure support chaining

Interesting:

One easy-to-miss strength of this approach is that it supports chaining. In a few places in our application, we wanted to send a computation to an agent and observe the state of the computation (e.g. to show and hide a spinner). We didn’t want to have to wire observation hooks or callbacks directly into the process, so we created a contextual function (defn with-process-callbacks [fire fun & args]). with-process-callbacks returns a function which calls fun with args, but calls fire ...

Read More Source

June 1st, 2015

In Technology

No Comments

Stuart Sierra says avoid Dynamic Scope

Dynamic scope will ruin your life. In a different presentation he says that dynamic scope is okay so long as the var is really private, and marked as private.

The problem with this pattern, especially in libraries, is the constraints it imposes on any code that wants to use the library. The with-resource macro severely constrains what you can do in the body:

You can’t dispatch to another thread. Say goodbye to Agents, Futures, thread pools, non-blocking I/O, or any other ...

Read More Source

June 1st, 2015

In Technology

No Comments

Mark Seemann feels that mutating state is intuitive

This is a case of someone trying to be open-minded, but still being biased because of their years spent getting comfortable with a very particular form of programming that allows a very particular form of mutable state:

In FP they’ve come up with this clever concept of monads to ‘work around’ the problem of mutating state. Yes, monads are very clever, but if they feel foreign in OOD it’s because they’re not required. Mutation is an inherent part of the ...

Read More Source

May 28th, 2015

In Technology

No Comments

Simple Design

Interesting:

Yagni is a way to refer to the XP practice of Simple Design (from the first edition of The White Book, the second edition refers to the related notion of “incremental design”). [1] Like many elements of XP, it’s a sharp contrast to elements of the widely held principles of software engineering in the late 90s. At that time there was a big push for careful up-front planning of software development.

Let’s imagine I’m working with a startup in Minas ...

Read More Source

May 28th, 2015

In Business

No Comments

Women in tech in India

My mom took several computer programming classes in the 1970s. Women earning advanced degrees in computer science peaked in the 1980s. Women focusing on tech, at the undergraduate level, also peaked in the 1980s. At the time, being a computer programmer meant getting a comfortable job at IBM or AT&T or General Motors — some big company that would offer a big salary and decent perks for a relaxed 40 hour work week. There was no brogrammer culture, no insane ...

Read More Source

May 28th, 2015

In Philosophy

No Comments

Natasha Vargas-Cooper and Kelly Faircloth on romance novels

Natasha Vargas-Cooper and Kelly Faircloth are talking about the use of the word “alpha” as it relates to men and as the concept is used in romance novels. :

I here quote some of Faircloth’s remarks, but the whole thing is interesting.

KF: So, alphadom in romance is, in my opinion, often fundamentally about taking care of the heroine and nurturing her. It’s about all that confidence and capability being focused on the heroine and working on her behalf. Now, it ...

Read More Source

May 27th, 2015

In Philosophy

No Comments

Niki Tisza writes about burnout

Interesting:

I read a lot and I found lots of interesting articles. Reading more and more it became clear to me I was experiencing a job burnout. I got nearly all the symptoms, even I wasn’t even 30 at that time. These were my warning signs:

Fatigue Frustration or decreased level of patience Stress Lack of motivation Feeling of being overwhelmed, trapped, helplessness Losing sleep Getting sick from all the sudden Going to your previously beloved workplace because you have to, not because you want to After spending a ...

Read More Source

May 26th, 2015

In Technology

No Comments

Why Appsflyer gave up on Python and switched to Clojure

Interesting:

At AppsFlyer we actually started our code base in Python. Two years later this wasn’t enough to handle the growing number of users and requests. We started to encounter issues like one of the critical Python processes taking too long to digest the incoming messages, caused mainly by string manipulations and Python’s own memory management system. Even partitioning the messages amongst several processes and servers could not overcome this. This eventually killed the process and caused data loss – ...

Read More Source

May 26th, 2015

In Philosophy

No Comments

We get trapped by our virtues more than our vices

I like this:

Qualities That Keep You in a Sick System

Loyalty Patience A strong work ethic Optimism Self-sacrifice A need to be useful to others Forgiveness Farsightedness Trust Hope

You don’t need to lose these qualities to get out. But if you’re stuck and trying to figure out what’s keeping you in, remember that people rarely get stuck because of their vices. They’re usually caught by their virtues.

Source

May 24th, 2015

In Philosophy

No Comments

The effect of blind auditions on orchestras

Interesting:

But there are many different moments when I look back and think, gosh, how could I have been so optimistic? For example, Cecilia Rouse and I decided that we would study the effect of orchestras switching to blind auditions. [In a 2000 paper in the American Economic Review, Goldin and Rouse found that the practice of having musicians audition behind a screen significantly increased the proportion of women in symphony orchestras.] Many orchestras did not know they had records on ...

Read More Source

May 24th, 2015

In Business

No Comments

Forces that drive women’s labor force participation rates

Interesting:

Goldin: The quiet revolution is a change in how young women perceive the courses their lives are going to take. One of the places we see this is the National Longitudinal Survey, which began in 1968 with women who were between 14 and 24 years old. One of the questions the survey asked was, “What do you think you’re going be doing when you’re 35 years old?” In 1968, young women essentially answered this question as if they were ...

Read More Source

May 23rd, 2015

In Business

No Comments

Sick systems

Interesting:

Things will be better when… I get a new job. I’m mean to you now because I’m so stressed, but I’m sure that will go away when I’m not working at this awful place.

The production schedule is crazy because the client is nuts. We just need to get through this cycle, then we’ll have a new client, and they’ll be much better.

She has a bad temper because she just started with a new therapist. She’ll be better when she settles ...

Read More Source

May 23rd, 2015

In Technology

No Comments

Concurrency in Ruby

Celluloid is interesting:

Celluloid provides a simple and natural way to build fault-tolerant concurrent programs in Ruby. With Celluloid, you can build systems out of concurrent objects just as easily as you build sequential programs out of regular objects. Recommended for any developer, including novices, Celluloid should help ease your worries about building multithreaded Ruby programs.

Much of the difficulty with building concurrent programs in Ruby arises because the object-oriented mechanisms for structuring code, such as classes and inheritance, are separate ...

Read More Source

May 21st, 2015

In Technology

No Comments

Sandi Metz tries to solve Object Oriented problems with composition

Kind of sad:

She says “We love dependency injection”.

First she acknowledges that the “proper” Object Oriented approach leads to more code for the same behavior:

but then she says the solution is to use composition, which offers all kinds of flexibility:

She says it is wonderful because in the end we get “pluggable behavior”.

But if it is a good idea to pull certain methods out of an object, and make them independent, in an object that can then be injected ...

Read More Source

May 21st, 2015

In Technology

No Comments

Sandi Metz on hidden assumptions

Interesting:

Our code is full of hidden assumptions, things that seem like nothing, secrets that we did not name and thus cannot see. These secrets represent missing concepts and this talk shows you how to expose those concepts with code that is easy to understand, change and extend. Being explicit about hidden ideas makes your code simpler, your apps clearer and your life better. Even very small ideas matter. Everything, even nothing, is something.

Source

May 19th, 2015

In Technology

No Comments

Predator-Prey modeling in Clojure

Interesting:

Introduction to Predator-Prey Systems In this edition of the blog, I’ll discuss how you can use Clojure to solve a system of nonlinear differential equations. The particular system I’ll be solving is the Predator-Prey or Lotka-Volterra Model, which you can read all about right here. The basic concept is that you are modeling a population of predators and prey (e.g. Foxes and Rabbits, which we’ll use here). How the two populations change over time can be modeled like so:

dR/dt=αR−βRF dF/dt=−γF+δRF

These are differential ...

Read More Source

May 18th, 2015

In Philosophy

No Comments

The life of single moms

Interesting:

In our culture, we want mothers to be everything: good wives, strong role models, educators, friends, and empathetic listeners. We want mothers to shed their former selves in order to carry on the role of inspiring their children to be something. We want mothers to be intelligent but compassionate; generous but self-aware; at work but at home, all at once. That responsibility is difficult enough to bear when there is another warm body willing to step into a parental role ...

Read More Source

May 18th, 2015

In Philosophy

No Comments

GamerGate losers continue the argument on Wikipedia

Very, very pathetic, but the argument over GamerGate continues on the Wikipedia talk page.

Chrisrus continues to raise legalistic objections to those editors who are trying to be reasonable:

@Gamaliel: What new accounts? What does your closing and hiding of this thread have to do with new accounts editing the article? The thread had nothing to do with new accounts editing the article or not editing it. We were talking about how people respond to reader feedback on the talk ...

Read More Source

May 18th, 2015

In Philosophy

No Comments

Starve yourself

Interesting:

It’s calorie intake that is really fueling the obesity epidemic. But it’s not just the number of calories we’re eating as how we’re getting them. The sugar calories are particularly bad. Stanford University researcher Sanjay Basu recently led an analysis of 175 countries that evaluated the amount of sugar in each nation’s food supply. As sugar availability increased by 150 calories per person per day (the equivalent of a can of cola), there was a 1.1 percent rise in the ...

Read More Source

May 10th, 2015

In Technology

No Comments

addShutdownHook(), to stop your app in a reasonable way

Interesting and important:

Problem:

A program may require to execute some pieces of instructions when application goes down. An application may go down because of several reasons:

Because all of its threads have completed execution

Because of call to System.exit()

Because user hit CNTRL-C

System level shutdown or User Log-Off

Concept at Abstract level: Write all the instructions(java code) in a thread’s run method and call java.lang.Runtime.addShutdownHook(Thread t). This method will then register this thread with JVM’s shutdown hook. At the time of shutting down, JVM will run ...

Read More Source

May 10th, 2015

In Philosophy

No Comments

“Habits” by To Love

A friend of mine in Stockholm sent me this link about Swedish singer To Love, who I had never heard of, but now I’ve spent an hour watching her videos on YouTube and I like her.

Source

May 10th, 2015

In Technology

No Comments

Test all your code in production using “feature flags”

I was talking to someone at Viacom, and he told me they were doing something very clever: they use feature flags to limit who can see new features, and in fact, all new features are at first limited to the QA team. Because of this, they have no development servers — everything is tested in production. This allows the testing to be much more realistic.

Feature flag libraries in Ruby and Clojure:

Ruby: rollout

Clojure: shoutout

Source

May 8th, 2015

In Philosophy

No Comments

Can you defend your relationship?

This is a cute list:

No relationship comes without its obvious detractions: the counterargument against your imaginary defense. If you’re old enough to have had a relationship, you’re old enough to have had a nagging thought about it. One of my first boyfriends was great and everything—if it weren’t for the fact that he always smelled like hot dogs. Another one seemed really into me, but he was also really into “doing donuts” in his Camaro. Here are some other assorted ...

Read More Source

May 8th, 2015

In Philosophy

No Comments

The public no longer thinks of GLBT celebrities as being scandalous

Once upon a time, not that long ago, this would have been a big story:

Miley Cyrus… revealed to the AP that “not all her past relationships were ‘straight, heterosexual’ ones.” The piece continues, “She did not elaborate.”

Miley says she already spent a lot of time struggling with traditional gender expectations—and being resentful that she was a girl. “I didn’t want to be a boy,” she clarifies. “I kind of wanted to be nothing. I don’t relate to what people ...

Read More Source

May 8th, 2015

In Business

No Comments

What smart people miss

Even when you have the right theory, you can still miss the pattern of accumulating facts:

And so I anticipated and predicted the actual crisis of 2008, right? Wrong. I had all the intellectual tools I needed, I even diagnosed a housing bubble, but I somehow failed to put the pieces together. Maybe I wasn’t as completely surprised as people who believed in the inherent stability of modern economies, and I caught on fast once the thing happened, but no, ...

Read More Source

May 6th, 2015

In Technology

No Comments

Anyone can contribute to clojure-doc.org

Clojure-doc.org is the place for people to contribute. This is the important bit:

Contributor-friendly This material is not covered by the Clojure Contributor Agreement and is developed using pull-requests on GitHub.

This is discussed in an interesting thread on the Clojure Google Group:

Assertion: “There are only a handful of people in the world with authorization to edit pages on clojure.org. ”

Fact: 14

Assertion: “Far more have authorization to edit the wiki pages on dev.clojure.org — hundreds, I think. A subset of those who ...

Read More Source

May 6th, 2015

In Technology

No Comments

The changelog for the clojure.org wiki

This is not linked anywhere, but it is good to know about:

Source

May 6th, 2015

In Technology

No Comments

The contents were now a boilerplate AT&T copyright notice claiming intellectual ownership of the otherwise still empty file

If the law allows a company to copyright an empty file, then the law should be changed:

In a 1984 version of Unix, things started heating up, and true grew to 276 bytes. The contents were now a boilerplate AT&T copyright notice claiming intellectual ownership of the otherwise still empty file.

Source

May 5th, 2015

In Technology

No Comments

Caribou as the ultimate Clojure web framework?

Kyle Dawkins writes:

Justin Smith speaks the truth about Caribou. I’m also one of the team members, and although we did lose our funding, we’re all still around and there are a number of active Caribou projects alive and well. It does have everything Justin says, and yes, it’s imperfect, but it’s also very easy to get a site up and running quickly. But you don’t lose the modularity that we all love in the Clojure world. ...

Read More Source

May 4th, 2015

In Philosophy

No Comments

“My daughter came home one day crying and said, ‘Mommy, somebody told me you made a lot of money …’ “

Interesting:

WITHERSPOON: My daughter came home one day crying and said, “Mommy, somebody told me you made a lot of money …” and I was like, “Why are you crying? … I worked hard for that. You should never feel embarrassed about a woman doing well in this world.”

Source

May 4th, 2015

In Technology

No Comments

If a language does not guarantee order in a hashmap can the hashmap be referentially transparent?

It’s an interesting question. Clojure says it is referentially transparent, meaning you can remove any function and replace it with its return value, with no effect on the program, but can Clojure be referentially transparent if it does not guarantee the order of its hashmaps (especially since hashmaps are also functions in Clojure)?

Note that this issue is similar to ensuring that a hash function is consistent with equals in a language, i.e. if two values x and y are ...

Read More Source

May 3rd, 2015

In Technology

No Comments

ExecutorService makes exceptions disappear in a bad way

I have been bitten by this many times, mostly in Clojure libraries that use ExecutorService under the hood:

What will be the result of the following snippet?

executorService.submit(() -> { System.out.println(1 / 0); }); I got bitten by that too many times: it won’t print anything. No sign of java.lang.ArithmeticException: / by zero, nothing. Thread pool just swallows this exception, as if it never happened. If it was a good’ol java.lang.Thread created from scratch, UncaughtExceptionHandler could work. But with thread pools ...

Read More Source

May 3rd, 2015

In Technology

No Comments

JVM advice: name your thread pools

Tomasz Nurkiewicz offers this bit of advice, which sounds like it would also be useful in Clojure:

Name pool threads

I can’t emphasize this. When dumping threads of a running JVM or during debugging, default thread pool naming scheme is pool-N-thread-M, where N stands for pool sequence number (every time you create a new thread pool, global N counter is incremented) and M is a thread sequence number within a pool. For example pool-2-thread-3 means third thread in second pool ...

Read More Source

May 3rd, 2015

In Philosophy

No Comments

Poland is the most Slavic nation in the world?

I did not know this, but this map shows Poland as having the highest percentage of Slavic heritage:

Source

May 3rd, 2015

In Technology

No Comments

Clojure does not need job queues, because it has Storm, Onyx, Quasar, Pulsar

I find it interesting to consider the question that maybe Clojure has so many great systems for distributed processing that it does not need the classic job queue.

It’s worth considering that if you don’t need something very robust (and depending on your situation), you could just use Redis + Carmine directly to pass messages around (possibly representing jobs), and have workers pull from the message queue. There is nothing else you really need for this; it’s quite straight forward. ...

Read More Source

May 2nd, 2015

In Technology

No Comments

Aaron Bedra: web apps in Clojure have some of the worst security

Aaron Bedra – clojure.web/with-security

Breda says the Clojure community needs to have a talk, because of some bad things that happened recently. The rate of people getting hacked is going up. He says:

“Clojure web apps are some of the worst I have seen in terms of security. We are talking about PHP-without-a-framework levels of insecurity.”

“We have bricks with no mortar.”

“If I missed your library, it’s because it doesn’t exist. I could not find it on the first page of Google, ...

Read More Source

May 1st, 2015

In Technology

1 Comment

Embarrassing code I wrote under stress at a job interview

(Note: this post was, in part, inspired by John Lawrence Aspden’s post about FizzBuzz.)

I write terrible code when I go to a job interview. That’s mostly because, when they ask me to solve a coding question, I get nervous. I thought it might be entertaining if I wrote about one such encounter.

Yesterday I went to a job interview, at a company in New York that had once built their stack (for managing online advertising) in Ruby but who are now ...

Read More Source

April 29th, 2015

In Business

No Comments

Startups behaving after Demo Day like someone going off a strict diet

Interesting:

Don’t go through the motions.

At Y Combinator, we sometimes see startups behaving after Demo Day like someone going off a strict diet. During YC they’re virtuous: they work hard on their product, focus on users, and avoid distractions. They’re also checking in with us regularly. But after they raise money, some founders go on a sort of bender. They rent a fancy office, hire too many people, spend too long shipping the next version, waste lots of time schmoozing ...

Read More Source

April 28th, 2015

In Technology

No Comments

Jim Starkey says “Well, duh”

This doesn’t rise to the level of “Zed Shaw rant” style of meltdown, but Jim Starkey has decided the play the role of “famous old codger who did great work once but now seems completely out of touch“:

Any discussion of the CAP “theorem” revolves around the A – exactly what does availability mean?

The narrow sense is that availability means that all surviving nodes in all partitions continue to process work. This reduces the CAP idea to nothing more than ...

Read More Source

April 28th, 2015

In Technology

No Comments

Kyle Kingsbury’s Jespen series is CAP enlightenment

So, again, I am late to the party. Yesterday, by accident, I discovered Kyle Kingsbury “Jespen” series. I stayed up till 4 AM reading through it. Every article is completely amazing. I wish he could do an article on every NoSQL database, but I read somewhere that each article cost him months of effort, so it is impossible to expect more from him. I recommend every single one of these articles:

Source

April 27th, 2015

In Technology

No Comments

Redis losing 56% of writes during a partition

Kyle Kingsbury (the same guy who does cool Clojure stuff like Reimann and teasers) has an epic writeup on Redis:

“In this post, we demonstrate Redis losing 56% of writes during a partition.”

I have trouble finding the pithy excerpt here, because it is all good. I guess I’ll just quote the opening where Kingsbury sets up the argument, and then you can read the rest for the way things fall apart:

Redis offers asynchronous primary->secondary replication. A single server is ...

Read More Source

April 27th, 2015

In Technology

No Comments

Can MongoDB keep its promises?

See “Stale reads with WriteConcern Majority and ReadPreference Primary”

Kyle Kingsbury starts the fight without meaning to:

In this test, MongoDB returns the value “0″ for the document, even though the only possible values for the document at that time were 1, 2, 3, or 4. The value 0 was the proper state at some time close to the partition’s beginning, but successful reads just after the partition was fully established indicated that at least one of the indeterminate (:info) CaS ...

Read More Source

April 27th, 2015

In Technology

No Comments

Parallelism versus concurrency

Someone posted this on Hacker News, and it is very good. Parallelism sends equal work to every processor, concurrency is the messy chaos of sending work to whatever processor is free, or bundling up many threads on one processor.

Source

April 27th, 2015

In Technology

No Comments

Disque is a distributed and fault tolerant message broker, so it works as middle layer among processes that want to exchange messages

The people who gave us Redis announced a new project today:

Disque is a distributed and fault tolerant message broker, so it works as middle layer among processes that want to exchange messages.

Producers add messages that are served to consumers. Since message queues are often used in order to process delayed jobs, Disque often uses the term “job” in the API and in the documentation, however jobs are actually just messages in the form of strings, so Disque can be ...

Read More Source

April 26th, 2015

In Technology

No Comments

A very long Java method

A common rule in programming is to keep methods as small as possible, so I am surprised to see this method in a seemingly well-run project such as ZooKeeper:

private void processEvent(Object event) { try { if (event instanceof WatcherSetEventPair) { ...
Read More Source

April 26th, 2015

In Technology

No Comments

Java performance

I like Tomasz Nurkiewicz’s summary of this book:

JIT (just-in-time) compiler turns out to be one of the most important tools bringing performance to the JVM. First “real” chapter goes into great details of how JIT works in different modes, how to monitor and tune it. I learnt a lot already, but the best is yet to come. Obviously garbage collection is a major concern, thus Oaks devotes two full chapters to explain all popular GC algorithms. Besides pure description, expect ...

Read More Source

April 26th, 2015

In Technology

No Comments

Your data is the API

Interesting:

The first time I realized that “Data as an API” was in fact a very good idea was at Kevin Lynagh’s presetation at Öredev. However, if you want something more like a struct Clojure provides something called a record. If you know Scala this is very similar to case classes. A record can be defined like this:

(defrecord Person [firstName lastName])

This creates an actual normal Java class Person with two immutable fields and implements hashCode and equals. A record also ...

Read More Source

April 26th, 2015

In Technology

No Comments

The farce known as “object oriented programming”

Jayway has a nice critique of how much real-life object oriented programming departs from the beautiful theory:

One thing I have realized is that in Java we use classes for many purposes. In a typical web application written in Java using something like Spring framework you will often find:

Data transfer objects (DTO:s)

Services (REST API, controllers, DAO:s)

Rich objects (if you’re lucky!)

A DTO is just a struct and contains no behavior. To minimize the boilerplate in Java I tend to implement DTO:s using ...

Read More Source

April 26th, 2015

In Technology

No Comments

New data structures in Clojure 1.8

Apparently there are a lot of new data structures which may arrive in Clojure 1.8, thanks to Zach Tellman:

So, at the end of this exercise we have more than 5000 lines of Java, and we want to add them to the core implementation of Clojure. Ideally, we won’t introduce any bugs in the process. But the same unrolling that makes the code faster makes it significantly harder to simply read the code and verify it’s “correct”. The Clojure code which ...

Read More Source

April 26th, 2015

In Technology

No Comments

Design patterns have social value

An interesting bit from Adam Petersen:

Patterns have social value too. The format arose to enable collaborative construction using a shared vocabulary. In Patterns in C I write on the groundbreaking work of architect Christopher Alexander:

The patterns found in Alexander’s books are simple and elegant formulations on how to solve recurring problems in different contexts. [...] His work is a praise of collaborative construction guided by a shared language – a pattern language. To Alexander, such a language is a generative, ...

Read More Source

April 26th, 2015

In Technology

No Comments

Automat for easy finite-state-machines in Clojure

Another interesting library from Zach Tellman allows for finite state machines:

For a more real-world use case, consider tracking browsing behavior on an online store. We want to see when the customer visits the cart, begins to checkout, but then returns back to the cart without having completed the checkout. Seeing this indecisive behavior, we can make a special offer.

Source

April 26th, 2015

In Technology

No Comments

Using abstract classes to hide boilerplate code

I personally never do the kind of work where I need to implement abstract classes. I was asked in a job interview why I would use an abstract class, and I came up with some nonsense answer about having a default implementation for situations where my code expected a given situation 90% of the time, and edge cases only 10% of the time. But here is an interesting example in Clojure, where it interoperates with Java, using an abstract class ...

Read More Source

April 26th, 2015

In Technology

No Comments

Zach Tellman on specialized tuples for Clojure

Other than Rich Hickey, I think I learn the most from Tellman, regarding how to do things and why they work the way they do:

Most data structures are designed to hold arbitrary amounts of data. When we talk about their complexity in time and space, we use big O notation, which is only concerned with performance characteristics as n grows arbitrarily large. Understanding how to cast an O(n) problem as O(log n) or even O(1) is certainly valuable, and ...

Read More Source

April 26th, 2015

In Technology

No Comments

When to use reify in Clojure

This is a nice explantation. If you have a protocol, then you can instantiate with a record, like this:

(defprotocol Foo (bar [this]) (baz [this st]) (quux [this x y])) (defrecord FooRecord Foo (bar [this] (println this)) (baz [this st] (str this st)) (quux [this x y] (str this (* x y))))

But if only need to instantiate the protocol one ...

Read More Source

April 25th, 2015

In Technology

No Comments

ExecutorCompletionService

How very much easier it is to use core.async in Clojure! My one concern is that core.async has a thread pool that is set to the number of CPUs + 2, so the thread pool is small and rigid.

Each call to contentFuture.get() waits until downloading given web site (remember that each Future represent one site) is finished. This works, but has a major bottleneck. Imagine you have as many threads in a pool as tasks (20 sites in that ...

Read More Source

April 25th, 2015

In Technology

No Comments

Limit new features to a subset of your users

Inspired by the Ruby gem “Rollout”, Shoutout offers user buckets on which you can test new features:

Storage

Unlike rollout, shoutout is completely storage agnostic. You’ll have to implement your own storage backend, which implements ShoutoutStorage. The storage protocol has two functions, read-from-storage, and write-to-storage, both of which should be simple enough to implement. Both deal purely with serialized strings, and string keys, shoutout does the serialization logic itself.

The library provides an in memory store (used for testing) that you could ...

Read More Source

April 24th, 2015

In Technology

No Comments

A Redis queue

There is a reason why so many message systems are using Redis as their backend:

Source

April 24th, 2015

In Technology

No Comments

Redis: I am late to the party

The strangest thing about the human mind is the degree to which context shades our memories. So now that I’m using Redis I realize that I’ve been reading about it for years without realizing how diverse its uses are. I just now decided to re-read the Github post from 2009 “Introducing Rescue” and I only now realize that it mentions both Redis and Kestrel, 2 things I had not heard of then, mere names that I read and forgot because ...

Read More Source

April 22nd, 2015

In Technology

No Comments

Design patterns are failures

I love this:

Design Patterns was especially well-timed because it offered a ray of hope for people who were mired in the Woes of the New OO Programmer. You see, the OO camp was saying: “EVERYTHING IS AN OBJECT! YOU WILL THINK OF EVERYTHING AS OBJECTS FROM NOW ON! THE OO PROGRAMMING PARADIGM IS: CREATE YOUR CLASSES, ADD OPERATIONS TO THEM, AND LAUNCH THE DAMN THING!”

The last sentence (forgive the caps, sorry) is a pretty reasonable paraphrase of Stroustroup in his ...

Read More Source

April 22nd, 2015

In Technology

No Comments

Singletons are evil

This is great:

Everyone Loves Singleton

Why is the Singleton so attractive? I’ll be the first to admit: I liked it too. No, scratch that – I loved the Singleton. It felt like an old friend from the moment I laid eyes on it. It was simple and beautiful.

I’ll tell you why: it’s because the Singleton pattern is a throwback to non-OO programming. It’s a lifeline for people who didn’t understand a single word that the Gang of Four were trying ...

Read More Source

April 21st, 2015

In Philosophy

No Comments

What happened to Ani DiFranco?

What happened to Ani DiFranco? In 1993 I dated a woman who introduced me to Ani DiFranco. For the next 12 years, a lot of my female friends were in love with Ani DiFranco. She was a huge icon to a particular demographic. danah boyd maintained a page of Ani DiFranco lyrics. (I also liked DiFranco very much.)

Over the last 10 years, DiFranco has vanished. I am not aware of any of my female friends who still follow her. ...

Read More Source

April 20th, 2015

In Technology

No Comments

Steve Yegge’s contribution to the revolt against Object Oriented Programming

Somehow I waited till today to read Steve Yegge’s 2006 rant “Execution in the Kingdom of Nouns”. I’ve seen it recommended many times, but I only now read it. I wish I had read it in 2006. I am not sure I would have understood it, but in retrospect it clearly marks the end of the mania that for Object Oriented Programming that Paul Graham had noted in 2001 (Paul Graham wrote: “There is a kind of mania for object-oriented ...

Read More Source

April 20th, 2015

In Technology

No Comments

Encapsulation of information is folly

This is strongly stated, and surprising:

Datatypes and protocols are opinionated

While datatypes and protocols have well-defined relationships with host constructs, and make for a great way to expose Clojure functionality to Java programs, they are not primarily interop constructs. That is, they make no effort to completely mimic or adapt to all of the OO mechanisms of the host. In particular, they reflect the following opinions:

Concrete derivation is bad: you cannot derive datatypes from concrete classes, only interfaces

You should always program to ...

Read More Source

April 20th, 2015

In Technology

No Comments

Why have both deftype and defrecord?

This is good:

It ends up that classes in most OO programs fall into two distinct categories: those classes that are artifacts of the implementation/programming domain, e.g. String or collection classes, or Clojure’s reference types; and classes that represent application domain information, e.g. Employee, PurchaseOrder etc. It has always been an unfortunate characteristic of using classes for application domain information that it resulted in information being hidden behind class-specific micro-languages, e.g. even the seemingly harmless employee.getName() is a custom interface to ...

Read More Source

April 12th, 2015

In Philosophy

No Comments

Evening, by Susan Minot

(The 1st of 20 reviews of romance novels. I’m reading romance novels so I can learn how to better write about romance in my own works of fiction.)

In the early 1990s Susan Minot published some articles in Esquire magazine and I liked her stuff so I’ve been meaning to read some of her books. I was busy for the last 25 years, but I just finally got to reading her novel Evening.

Her focus is with the white upper-middle class ...

Read More Source



Check out my books:





RECENT COMMENTS

August 20, 2019 2:29 pm

From lawrence on If you want to go dancing in New York City, consider Silvana

"Which is fine. Like I said, there are dance scenes that have strict “no alcohol” rules. That might appeal to y..."

August 20, 2019 1:35 pm

From Just An Observer on If you want to go dancing in New York City, consider Silvana

""Promise of an early bed" - the whiff of danger keeps me away from many venues like the one you describe...."

August 20, 2019 12:22 am

From lawrence on If you want to go dancing in New York City, consider Silvana

"I think any time you go to any club there is the possibility of running into an angry person, maybe a person w..."

August 19, 2019 7:56 pm

From Just An Observer on If you want to go dancing in New York City, consider Silvana

"I'm confused. You and your friends went out, had a fight, and it's still a great place to go to? Maybe..."

August 18, 2019 8:57 pm

From Michael L on Americans increasingly hate each other

"You seem to have little patience for people who choose different tech paths than you. Although it looks like o..."

August 18, 2019 8:53 pm

From Michael L on Many of my Stackoverflow questions have been marked as duplicates even though they were not

"You don't suffer slights well, do you? Others who choose to waste time with dumb tech, do they keep you up at ..."

August 18, 2019 8:34 pm

From Michael L on Docker protects a programming paradigm that we should get rid of

"Me again. I've worked for a company that focuses on containerized applications for some time now. There is abs..."

August 18, 2019 8:00 pm

From Michael L on Docker protects a programming paradigm that we should get rid of

"To build on my last statement, I'm not trying to show that I'm "smarter." I'm probably not, or if I am, who gi..."

August 18, 2019 7:48 pm

From Michael L on Docker protects a programming paradigm that we should get rid of

"You think that containerization is going anywhere? I agree that it isn't strictly necessary, but you mistake y..."

August 18, 2019 7:40 pm

From Michael L on Docker protects a programming paradigm that we should get rid of

"If you weren't criticizing Docker, why did your frame the article as anti the Docker/Kubernetes/Python troika?..."

August 13, 2019 1:34 pm

From William Hatch on Docker is the dangerous gamble which we will regret

"No tool is every perfect, and you're certainly free to use whatever you want. But, I doubt very much the huge ..."

August 5, 2019 5:23 pm

From lawrence on Why does he want to throw his reputation away?

"DangerNorm, as to your last point, I was recently consulting with a startup that focused on the privacy of med..."

August 5, 2019 3:55 pm

From DangerNorm on Why does he want to throw his reputation away?

"This is tangential to the above point, but on the subject of mental health, I'll also take this chance to say ..."

August 5, 2019 3:51 pm

From DangerNorm on Why does he want to throw his reputation away?

"Your description of most people's response is correct, but I consider it to be a problem, rather than the corr..."

August 5, 2019 3:28 pm

From lawrence on Why does he want to throw his reputation away?

"DangerNorm, thank you for writing. I think you are missing the moral element here. You should understand the d..."