Technopirate, Software Wizard, Digital Native, Biologist, Metalhead
18 stories
·
1 follower

Facebook wants to be your office friend, too

1 Share

The Wall Street Journal reports that Facebook is preparing to launch a version of its social networking service with a distinctly corporate twist—Facebook at Work. The new service is aimed at breaking into the already crowded but under-adopted workplace social networking tools market, going head to head with Microsoft’s Yammer, Google’s Apps for Business, IBM’s Connections, and the startup Slack Technologies.

Facebook at Work will initially be free be free at first and advertising-free. Companies that sign up for the service will have a private site for their employees, and the service will also provide document sharing, messaging, and collaboration services. There is  was no word on how long the service will  would be free or how Facebook will  would charge for Facebook for Work in the long term.

But Facebook’s move is counter to a trend in corporate social networking tools. For example, Microsoft has been moving to embed Yammer within its Office and Office 365 platform, infusing social networking in SharePoint and allowing users to share documents directly from Office applications. Slack integrates into Dropbox and a host of other cloud services, and it acts largely as a consolidated communications channel. Just how welcome Facebook will be in offices—particularly when many organizations have been trying to keep employees off Facebook during work for years—also remains an open question.

Read on Ars Technica | Comments

Read the whole story
Share this story
Delete

Great Open Source Solution for Boring HA and Scalability Problems

1 Share

This is a guest post about how boring and repetitive HA and scalability problems can be solved via Open Source so you can focus on the interesting tasks. The post was written by Maarten Ectors, responsible for Cloud Strategy and Frank Mueller, a Juju Core developer, at Ubuntu/Canonical.

High-availability and scalability are exciting in general but there are certain problems that experts see over and over again. The list is long but examples are setting up MySQL clustering, sharding Mongo, adding data nodes to a Hadoop cluster, monitoring with Ganglia, building continuous deployment solutions, integrating Memcached / Varnish / Nginx,… Why are we reinventing the wheel?

At Ubuntu we made it our goal to have the community solve these repetitive and often boring tasks. How often have you had to set-up MySQL replication and scale it? What if the next time you just simply do:

Read the whole story
Share this story
Delete

Open Letter

3 Shares
Are you ok?  Do you need help?
Read the whole story
Share this story
Delete

Linux 3.10 out with better SSD caching and Radeon support

1 Share

Linux 3.10 was released by Linus Torvalds last night, bringing with it a new method of SSD caching and some upgrades to the Radeon graphics driver. "This release has been pretty typical and not particularly prone to problems," Torvalds wrote in his e-mail announcing the release. "No major new subsystems this time around, although there are individual new features."

As you may recall, Linux 3.9 (released in April) included an experimental feature called dm-cache that allows SSDs to act as caches for other storage devices. An additional SSD caching technology known as Bcache was also in the works for more than a year and has now merged into the Linux kernel with the newly released 3.10.

"Linux 3.10 will include the 'block-layer cache' Bcache, which can be used to configure one disk as a cache for another disk; a fast SSD, for example, could be used as a cache for a slower hard drive with more capacity," H-Online editor Thorsten Leemhuis wrote in his thorough roundup of the new kernel version."This kind of SSD cache can speed up access to frequently read data and take on write requests until a quieter moment when they can be written to the slower disk."

Read 4 remaining paragraphs | Comments

Read the whole story
Share this story
Delete

In Defense of New Food

2 Shares

upstream_color_food

Over the past few months I've gotten to engage with a lot of picky thinkers regarding soylent. I think people tend to make up their minds quite quickly, and then proceed to defend their snap judgments. As Stephen Pinker says, the mind is more of a spin doctor than a commander-in-chief, and it can be extremely difficult to change. In fact, trying to change it can simply solidify perceptions. This is one of many cognitive biases we are burdened with. For fun I've cataloged a few others, and explored how they may lead to a critical perspective of soylent. Even if you are supportive of the idea, it is crucial to be cognizant of our own biases, and the fallacies they can lead to. If you're on the fence, I hope you will at least agree that food could use some innovation.

System Justification / Status Quo Bias: The brain, seeking to conserve energy in the short term, has an irrational preference for the current state of affairs. The longer things have been a certain way the more difficult they are to change, and the harder it is to see inefficiencies. Food's necessity and ubiquity gives it a powerful status quo, along with massive potential for improvement. It is easy to lose perspective. Most of the world finds it weird that adults in the United States drink milk. Inuit would find it strange that one would own a cat with no desire to eat it. I wish eating organ meats were more common in the United States. I think they're delicious. There is nothing sacred about the way we do things. Improving food security, the health of those with an average income, giving more people the option to cook less and eat out more often, and abandoning the appeal to nature fallacy would certainly be a change, but it is one that is long overdue.

Appeal to Nature Fallacy: Nature is not on our side. Most of it is trying to kill us. Nature abounds with neurotoxins, carcinogens, starvation, violence, and death. It is technology that makes our lives so comfortable. We have a responsibility to protect the environment, but it feels no such responsibility for us. Technological innovations should be thoroughly tested and verified to be safe, and they are. Besides being an arbitrary distinction, being "natural" is absolutely no guarantee of safety, usefulness, or practicality. Today it is often the opposite. I think it's a little weird to eat food that comes from a tree. Do we still use leaves for clothing? Like diet, balance is key. I am glad to drink fluoridated water for the same reason I prefer the natural sky. It's healthier.

Essentialism: There is no magical mold objects are cast from. Every label is a lossy abstraction, and our world abounds with diversity. Even electronics like iphones vary within industrially controlled limits. Description is important, but no distinction should be sacred. Michael Pollan's "real foods" are like Sarah Palin's "real americans". It's good to have standards, and tastes, but labels can be problematic. More practically, our old foods can't really compete today. They are too expensive, inconvenient, and bland for most consumers. If we want people to be healthier we're going to have to beat fast food at its own game.

Anchoring: Anchoring is relying too much on one piece of information and having all further analysis tainted by it. This is partially my fault, since I called it Soylent. Many people hate the name and thus the whole idea. Part of the reason for the name was to demonstrate this bias. However, others point out trivial information like the alleged benefit of unknown phytochemicals, or even the color. Should we call off the mission to feed the hungry until we have thoroughly tested and categorized a few thousand more plant metabolites? It may not be perfect, but it's certainly an improvement. Also, the vast majority of phytochemicals studied have no biological role or a mix of marginally positive and negative effects. Some are even toxic or allergenic. I do not think cancer has not been widespread enough in humans long enough for plants to be selected based on their antioxidant properties. The benefit of lycopene is purely coincidental, and there is evidence it is the most potent antioxidant that exists naturally. Surely we can engineer better ones.

Binary Opposition: This is not an all-or-nothing endeavor. While a dream come true for a busy bachelor, I think most people would probably prefer soylent for breakfast and lunch and then have a nice dinner. My net enjoyment of food is far higher than it has ever been. Being in excellent health, never eating poorly, and still enjoying good food socially is a win-win-win. Exchanging my biological cravings for psychological ones has been intensely liberating. I still eat, but I have not been to the grocery store, cooked, or cleaned a dish in 4 months, nor has hunger ever lead to stress. There is always a healthy, cheap, convenient option. I feel like the world's most food secure human. I carry a Nalgene of soylent in my laptop bag and only eat for pleasure. In light of this, eating multiple times every single day seems incredibly excessive and imprudent. Perhaps in the future today's eating habits will be seen the same way we see the smoking and drinking habits of the 1950's.

Argument from Authority: "Science", Feynman says, "is the belief in the ignorance of experts." I am not a doctor, biologist, or nutritionist. However, we all have access to the same information. Anyone can read a textbook. One does not have to take a class on something to know it, nor must one fully master a field in order to do something useful with it. People learn in different ways. Even when paying for a formal education I tended to skip class and self-educate. Graduation is no reason to stop studying. Research journals are going open access, Wikipedia is my television, and Khan Academy, Coursera, Udacity, and OpenCourseWare are lowering the barriers to information that used to be reserved for a select few. Like health, I would like to see a future where education is uncorrelated with income.

Reasonable Concerns

  • The initial sample size was small and the timeframe short, but the results are easily reproducible, as shown by the community site discourse.soylent.me.
  • One may think a liquid diet could affect the GI tract in the long term but gastroenterologists seem to agree this is not the case. The body turns ingested food to liquid quite quickly anyways.
  • It was a concern that nutrients can affect each others' absorption, but there have been no deficiency symptoms, and if this becomes a problem the amounts can be changed to compensate.
  • It was a concern that important gut bacteria would need the other substances in food, but fiber alone seems to do the job. In fact, it may be preferable to kill off some species, like the ones that turn chemicals in red meat in to unsavory byproducts.
  • I assumed I would quickly get tired of the taste but this does not happen. I accidentally stumbled on what the soft drink industry uses to make sure people never get tired of Coca-Cola, "sensory-specific satiety". If a taste is pleasant, but not very specific, the brain does not tire of it.
  • Soylent is a little difficult to say. I still consider it the official name but I usually just call it "nom".
  • Contamination is not much of a concern. This is a solved problem in the heavily regulated food industry, with well vetted methods to ensure products are free of heavy metals and microbes, unlike anything I ever cooked at home.
  • The act of food processing does not destroy nutrition, but it does destroy flavor, which is carried by volatile chemicals. This is the only reason people assume "fresh" food is healthier. It's not. But it usually is tastier, for a day or two. It is completely possible to make healthy processed foods, there just hasn't been much demand due to this bias. As our understanding of the complex field of flavor science advances we will soon have tastier, healthier foods than ever before.
  • Healthy food is very difficult to define. My working hypothesis is that health is not about restriction or elimination, but balance. I consume a lot of calories, because I need them.  The minimalism is nice too. I believe that the gut bacteria that proliferates depending on the other "stuff" that's in food has a lot more to do with our health than we currently realize, perhaps our cognition as well.
  • Soylent is probably not going to solve hunger, obesity, and health in one fell swoop. But I certainly think it could help. And I certainly think these problems are worth working on.

Objectivity Bias: The tendency to see yourself as objective and others as biased. I fall prey to this one a lot, which is why I try to always place evidence over opinion, and remain open to criticism.

Other Criticisms

Demand for Omniscience: Some say this experiment makes no sense because we do not understand everything about the body. I think this is backwards thinking. If we do not understand something that is all the more reason to experiment with it in the pursuit of greater understanding.

Downplay Results: "The only reason you feel so much better is your diet is so much healthier than it was before." Yes. That's that point.

New vs Useful: How strange that some criticize this as being unoriginal, others as too weird. Obviously I considered other options before deciding to do this on my own. Nothing fit my requirements. There are plenty of liquids with calories. You'd probably be surprised how long you can survive on just cow's milk or beer, but you can't run a 5k every day on them. If you think something is a good idea and find the current options inadequate that may mean there is a lot of potential there. A good idea does not have to be altogether new, just practical. Soylent is certainly not a new idea. "Let medicine be thy food", advises Hippocrates, millenia ago.

Foodies: Most people cycle through their entire meal repertoire every 4 days, and precious few manage a balanced diet. If all of your meals are delicious and nutritious I ask you to consider what percentage of the domestic or global population has the means to eat exactly like you do. Remember, time is money. If eating at home was cheaper more people could enjoy nice restaurants more often, and I think they want to. When gas prices fall the first thing that falls with it is grocery spending, as people eat out more. We already have plenty of luxury foods, we need something with utility. People rarely go to restaurants alone either. It's not about the food. It's about the people.

This is Just Weird: Look at the current behavior around food in the developed world. Fad diets are in constant rotation, and the food industry follows suit based not on data, but demand. People staple their stomachs, freeze themselves, starve themselves, slavishly clean juicers, and drink weird liquid diets like Odwalla juice, which had a fatal e. coli outbreak due to a refusal to pasteurize (they do now). Eating disorders claim more lives than any other mental condition. Obesity and diabetes are out of control. Diets are unsustainable because they are too difficult. 95% of those that go on a diet quickly gain the weight back. Being healthy is about forming good habits and allowing yourself time off. Every organism makes decisions based on perceived energy expenditure. Humans thus consistently seek the cheapest, easiest solutions. By making the cheapest, easiest option for food the healthiest, and helping maximize the enjoyable aspects of social eating, soylent breaks the cycle of poor diet and makes users healthy by default. Currently health and diet are strongly correlated with income. I wouldn't say it's normal to have a perfectly balanced diet on the cheap. But I wouldn't say it's weird. Worrying about something as simple as food in the digital age is weird. If my behavior is making me happier, healthier, and reducing my environmental impact it should be encouraged, not mocked.

But I like food: I like beer, but I usually drink water. I love walking through the city, but I usually take the bus. I love conversation, but I still send a lot of emails. I find separating utility from leisure increases my enjoyment of both. Personally, I enjoy food, there are just many things I enjoy more. I get far more enjoyment out of a Stephen Pinker book or a jazz band than a fancy dinner. I'd rather build a ham radio or learn a new programming language than plan a meal. Asking me to cook is like asking a chef to program. It's not for everybody, but I respect their passion and skill. I want cooking to be a hobby and a profession, like photography, not a necessity. Now I have the freedom to spend more time on the things I want to do. When I do want a nice meal I'll happily pay someone to cook who is actually good at it.

Conclusion

I don't care much for cooking or eating but I care deeply about food. Food is how we extract energy from the stars. Food is all that staves off entropy. At this point my body is largely made of Soylent, and I couldn't be happier with it. We should solve the biological and logistical problems behind health and food security and then focus on making foods that are altogether new and wonderful. I see a bright future for food, but utility should come first. I think people would enjoy food more by needing it less, like having central heating in addition to a fireplace. I am not alone in having loves outside eating, either. Emerson wouldn't eat all day. Chomsky says he pays as little attention to food as possible. Biologist Rita Levi-Montalcini ate the same tiny meal every day and lived to be 103. Even Kanye West considers five star dishes ridiculous. Surely our minds can find more enjoyable activities than chewing. Despite all our innovation finding food still takes up a significant percentage of many individuals' free time and money. This is wrong. Busy people should be among the healthiest people alive. They're the ones who need it the most. Not having time to cook because you're working on your career or passion should be praised. If you never got hungry how often do you think you would eat? I find the pleasures of discovery, creation, laughter, learning, or pursuing a passion far more satisfying than a stomach full of ancestral food. Man was meant to do more than subsist.

get some at campaign.soylent.me

Read the whole story
Share this story
Delete

Alternatives To Git Submodule: Git Subtree

1 Share

The Internet is full of articles on why you should not use Git submodules. I mostly agree, although I am not so harsh in my evaluation. As I explained in a previous post, submodules are useful for a few use cases but have several drawbacks.

Are there alternatives? The answer is: yes! There are (at least) two tools that can help track the history of software dependencies in your project while allowing you to keep using git:

In this post I will be looking at git subtree and show why it is an improvement – albeit not perfect – over git submodule.

As a working example I run to my usual use case. How do I easily store and keep up to date the vim plugins used in my dotfiles?

Why use subtree instead of submodule?

There are several reasons why you might find subtree better to use:

  • Management of a simple workflow is easy.
  • Older version of git are supported (even before v1.5.2).
  • The sub-project’s code is available right after the clone of the super project is done.
  • subtree does not require users of your repository to learn anything new, they can ignore the fact that you are using subtree to manage dependencies.
  • subtree does not add new metadata files like submodules doe (i.e. .gitmodule).
  • Contents of the module can be modified without having a separate repository copy of the dependency somewhere else.

In my opinion the drawbacks are acceptable:

  • You must learn about a new merge strategy (i.e. subtree).
  • Contributing code back upstream for the sub-projects is slightly more complicated.
  • The responsibility of not mixing super and sub-project code in commits lies with you.

How to use git subtree?

git subtree is available in stock version of git available since May 2012 – 1.7.11+. The version installed by homebrew on OSX already has subtree properly wired but on some platforms you might need to follow the installation instructions.

Let me show you the canonical example of tracking a vim plug-in using git subtree.

The quick and dirty way without remote tracking

If you just want a couple of one liners to cut and paste just read this paragraph.

First add the subtree at a specified prefix folder:

1
git subtree add --prefix .vim/bundle/tpope-vim-surround https://bitbucket.org/vim-plugins-mirror/vim-surround.git git://github.com/tpope/vim-surround.git master --squash

(The common practice is to not store the entire history of the sub-project in your main repository, but If you want to preserve it just omit the –squash flag.)

The above command produces this output:

1
2
3
4
5
6
7
8
9
10
git fetch https://bitbucket.org/vim-plugins-mirror/vim-surround.git git://github.com/tpope/vim-surround.git master
warning: no common commits
remote: Counting objects: 338, done.
remote: Compressing objects: 100% (145/145), done.
remote: Total 338 (delta 101), reused 323 (delta 89)
Receiving objects: 100% (338/338), 71.46 KiB, done.
Resolving deltas: 100% (101/101), done.
From https://bitbucket.org/vim-plugins-mirror/vim-surround.git git://github.com/tpope/vim-surround
* branch master -} FETCH_HEAD
Added dir '.vim/bundle/tpope-vim-surround'

As you can see this records a merge commit by squashing the whole history of the vim-surround repository into a single one:

1
2
1bda0bd [3 minutes ago] (HEAD, stree) Merge commit 'ca1f4da9f0b93346bba9a430c889a95f75dc0a83' as '.vim/bundle/tpope-vim-surround' [Nicola Paolucci]
ca1f4da [3 minutes ago] Squashed '.vim/bundle/tpope-vim-surround/' content from commit 02199ea [Nicola Paolucci]

If after a while you want to update the code of the plugin from the upstream repository you can just subtree pull:

1
git subtree pull --prefix .vim/bundle/tpope-vim-surround https://bitbucket.org/vim-plugins-mirror/vim-surround.git git://github.com/tpope/vim-surround.git master --squash

This is very quick and painless but the commands are slightly lengthy and hard to remember. We can make the commands shorter by adding the sub-project as a remote.

Adding the sub-project as a remote

Adding the subtree as a remote allows us to refer to it in shorter form:

1
git remote add -f tpope-vim-surround https://bitbucket.org/vim-plugins-mirror/vim-surround.git git://github.com/tpope/vim-surround.git

Now we can add the subtree (as before), but now we can refer to the remote in short form:

1
git subtree add --prefix .vim/bundle/tpope-vim-surround tpope-vim-surround master --squash

The command to update the sub-project at a later date becomes:

1
2
git fetch tpope-vim-surround master
git subtree pull --prefix .vim/bundle/tpope-vim-surround tpope-vim-surround master --squash

Contributing back to upstream

We can freely commit our fixes to the sub-project in our local working directory now.

When it’s time to contribute back to the upstream project we need to fork the project and add it as another remote:

1
git remote add durdn-vim-surround ssh://git@bitbucket.org/durdn/vim-surround.git

Now we can use the subtree push command like the following:

1
2
3
4
5
6
7
8
9
10
git subtree push --prefix=.vim/bundle/tpope-vim-surround/ durdn-vim-surround master

git push using: durdn-vim-surround master
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 308 bytes, done.
Total 3 (delta 2), reused 0 (delta 0)
To ssh://git@bitbucket.org/durdn/vim-surround.git
02199ea..dcacd4b dcacd4b21fe51c9b5824370b3b224c440b3470cb -} master

After this we’re ready and we can open a pull-request to the maintainer of the package.

Without using the subtree command

git subtree is different from the subtree merge strategy. You can still use the merge strategy even if for some reason git subtree is not available. Here is how you would go about it:

Add the dependency as a simple git remote:

1
git remote add -f tpope-vim-surround https://bitbucket.org/vim-plugins-mirror/vim-surround.git git://github.com/tpope/vim-surround.git

Before reading the contents of the dependency into the repository it’s important to record a merge so that we can track the entire tree history of the plug-in up to this point:

1
git merge -s ours --no-commit tpope-vim-surround/master

Which outputs:

1
Automatic merge went well; stopped before committing as requested

We then read the content of the latest tree-object in the plugin repository into our working directory ready to be committed:

1
git read-tree --prefix=.vim/bundle/tpope-vim-surround/ -u tpope-vim-surround/master

Now we can commit (and it will be a merge commit that will preserve the history of the tree we read):

1
2
3
git ci -m"[subtree] adding tpope-vim-surround"

[stree 779b094] [subtree] adding tpope-vim-surround

When we want to update the project we can now pull using the subtree merge strategy:

1
git pull -s subtree tpope-vim-surround master

Conclusions

After having used submodule for a while I appreciate git subtree much more, lots of submodule problems are superseded and solved by subtree. As usual, with all things git, there is a learning curve to make the most of the feature.

Follow me @durdn and the awesome @AtlDevtools team for more Git rocking.

Read the whole story
Share this story
Delete
Next Page of Stories