Size matters
![Belarus vs Belgium Belarus vs Belgium](http://mikhailian.mova.org/sites/default/files/styles/medium/public/belarus-vs-belgium_0.png?itok=LBDJK79v)
![Belgium vs Armenia Belgium vs Armenia](http://mikhailian.mova.org/sites/default/files/styles/medium/public/belgium-armenia_0.png?itok=fUzryA-H)
A couple of useful git commands for styding big git repositories:
git grep --cached -zIle '' |\
xargs -0n1 git blame -e |\
sed -n 's/^.*(<\([a-zA-Z.]*\)@.*/\1/p' |\
sort|uniq -c|sort -rn >authors-by-line.txt
git for-each-ref --sort=-committerdate \
--format='%(committerdate:short)%(authorname)%(refname:short)' refs/remotes >branches-by-date.txt
It's not a coincidence that notebook docking stations are being sold only with high-end laptops. My Dell e7740 costs over 2000 €. When I bought it in January 2014, I couldn't imagine I'll have trouble making it work under Linux. After all, it was all-intel, already well-supported hardware. The trouble came from a usually dumb piece of hardware: the docking station. I run two 1920x1200 screens in portrait mode, but this freaking docking station"intelligently" merged the two screens into a virtual 3840x1200 screen and presented just that to the notebook.
The bug-o-feature responsible for this is called Displayport Multi-Stream Transport and it was intended to drive multiple displays via one cable using daisy-chaining. When first docking stations with MST support appeared by end 2013, none was prepared for it. It took well over a year before MST support landed in mainline 3.17 kernel. And it will take another year until all major distributions move to 3.17 and past it.
Red Hat itself found it out only when they run into the problem, and it took 6 months before David Airlie came up with a patch to fix this hardware bug. Check out this talk for a good overview of the story.
Whether you order designs from 99designs or from an in-house designer, use this simple rule of thumb:
Your most valuable content should be the most contrasted.
Here's why. Bad designs are wildly different, but all good designs share one thing in common: they put your content first. As I am writing this, I realize that the text I am typing appears in charcoal gray or #4d4f51 while the title is all black. This is inconsistent at best, but not everything is lost for LinkedIn — the list of my last posts on the right is in a lighter gray #96999c and the editor buttons are even lighter than that.
The poster boy of good design, Boston Globe, displays text as black #000000 on all-white background #ffffff while their menu items have varying levels of greyness, from a rather dark #464646 on white to the same dark #464646 on neutral gray #eeeeee. This is good design — the most important thing Boston Globe has is news, and their news enjoy the most contrast you can get: all black text on all white background.
However, many websites have their main content in a rather worn-out pale black, while surrounding elements are flashy and attractive. Check for instance BBC.co.uk, their content is shown in dark gray #404040 while the navigation is in all-black #00000.I absolutely love the zen layout for its flexibility. What other layout can handle fixed-width sidebars for banners and a liquid content area? However, figuring out how it works can be challenging. Here's a minimal zen layout, coded along the explanation given here.
Here is its css…
Among the multitude of programming APIs provided by Google lies a jewel called Prediction API. It has a high-quality classifier that allows for continuous learning with model updates.
Let's quickly use it to automatically sort incoming mail into your existing labels. The most tedious part is configuration:
Resources/Advanced Google services…
menu.Resources/Developers Console Project
menu.We are done configuring. Now, there are only two functions to implement: one to train the model and the other to classify incoming mail.
The function GmailApp.getUserLabels()
❶ gets all labels that you defined in Gmail and disregards standard labels such as Inbox
, All Mail
or Spam
. Mails in Gmail are organized by threads, so once you get a handle on a label, you have to get all of its threads ❷, then grab individual mails under that thread. We'll use the first email of a thread for this simple exercise ❸.
As a reminder for myself, mostly:
Select like-minded users from a local community website.
For each user, select all other users that voted on same node and comments:
SELECT v1.uid uid1, v2.uid uid2, u1.name name1, u2.name name2, v2.entity_id entity_id, v1.value value1, v2.value value2 FROM votingapi_vote v1 JOIN (votingapi_vote v2, users u1, users u2) ON (v1.uid != v2.uid AND v1.entity_id=v2.entity_id AND v1.entity_type=v2.entity_type AND v1.uid=u1.uid AND v2.uid=u2.uid) WHERE v1.uidThis produces a table