hellsten + best   1333

Active recall - Wikipedia
Active recall is a principle of efficient learning, which claims the need to actively stimulate memory during the learning process. It contrasts with passive review, in which the learning material is processed passively (e.g. by reading, watching, etc.). For example, reading a text about George Washington, with no further action, is a passive review. Answering the question "Who was the first US President?", is active recall.
learning  school  kids  studying  memory  best  details 
7 weeks ago by hellsten
Testing effect - Wikipedia
The testing effect is the finding that long-term memory is often increased when some of the learning period is devoted to retrieving the to-be-remembered information.[1] The effect is also sometimes referred to as retrieval practice, practice testing, or test-enhanced learning.[2][3][4] The testing effect on memory should be distinguished from more general practice effects, defined in the APA Dictionary of Psychology (2007) as "any change or improvement that results from practice or ...
learning  school  kids  studying  memory  best  details 
7 weeks ago by hellsten
smallstep - Everything you should know about certificates and PKI but are too afraid to ask
- A certificate can be interpreted as the statement: “Some Issuer says Bob’s public key is 01:23:42…“

- Remember: certificates and PKI bind names to public keys.

- You’ll need to decide what type of key you want to use. That’s another post entirely, but here’s some quick guidance (as of December 2018). There’s a slow but ongoing transition from RSA to elliptic curve keys (ECDSA or EdDSA). If you decide to use RSA keys make them at least 2048 bits, and don’t bother with anything bigger than 409...
signing  der  pem  tls  pki  certificates  security  certs  crypto  openssl  best  details  certificate 
9 weeks ago by hellsten
> I also heard one investor mention how Tumblr struggled with technical debt rel... | Hacker News
> I also heard one investor mention how Tumblr struggled with technical debt related to their feed

Not sure I'd agree with that, but I suppose it depends on the context and timing of the statement.

Tumblr's solution for reverse-chrono activity feed is, at its core, <1000 lines of PHP and a few extremely heavily optimized sharded MySQL tables. It is creaky and old, but its relatively small code footprint means it isn't terrible on the tech debt scale.

Tumblr's feed is computed entirely at rea...
twitter  tumblr  architecture  details  best  newsfeed  news  infinite-scrolling  denormalization  mysql  innodb  activity-feed  feed-aggregator 
11 weeks ago by hellsten
Docker is the dangerous gamble which we will regret | Smash Company
The guiding rule should be “What is the simplest way to do what we need to do?” If the older technology gets the job done, and is the simpler approach, then it should be preferred. But if there is a new technology that allows us to simplify our systems, then we should use the new technology.

chmike wrote:

Containers are not only a solution for dependencies. It’s also protection boundary.

neilwilson replied:

It’s just a process with a fancy chroot. Don’t believe all the docker hype. ...
kubernetes  docker  chroot  bash  nomad  consul  hashicorp  architecture  devops  best  details  containers  sysadmin 
11 weeks ago by hellsten
I’m harvesting credit card numbers and passwords from your site. Here’s how.
The malicious code itself is very simple, it does its best work when it runs on a page that meets the following criteria:

The page has a <form>
an element matches input[type="password"] or name="cardnumber" or name="cvc" etc.
The page contains words like “credit card”, “checkout”, “login”, “password” etc.

Then, when there’s a blur event on a password/credit card field, or a form submit event is heard, my code:

Takes data from all form fields (document.forms.forEach(…)) on the ...
security  hacking  hacker  npm  best 
11 weeks ago by hellsten
The Untethered Soul: The Journey Beyond Yourself by Michael A. Singer | Goodreads
The Untethered Soul struck a chord in me because it encourages detachment from this never-ending feedback inside our brains. "The best way to free yourself from this incessant chatter is to step back and view it objectively," Singer writes. "There is nothing more important to true growth than realizing that you are not the voice of the mind--you are the one who hears it."

Singer goes on to say,

If you watch it objectively, you will come to see that much of what the voice says is meaningless. T...
book  best  life  psychology  religion  secularism  meditation 
november 2018 by hellsten
Chart of the Decade: Why You Shouldn’t Trust Every Scientific Study You See – Mother Jones
Then, in 2000, the rules changed. Researchers were required before the study started to say what they were looking for. They couldn’t just mine the data afterward looking for anything that happened to be positive. They had to report the results they said they were going to report.

Before 2000, researchers cheated outrageously. They tortured their data relentlessly until they found something—anything—that could be spun as a positive result, even if it had nothing to do with what they were l...
research  science  statistics  healthcare  health  life  idiots  scams  best 
november 2018 by hellsten
In Praise of Mediocrity | Hacker News
qwertay 1 day ago [-]

The stuff that programmers are interested in usually have 10000 tools made already but if you look at other industries or hobbies there are a lot of people using crappy expensive tools. A few times I have found areas where no tool exists like a few months ago I needed a ruby library that could download a picture from stitched together OSM tiles and nothing did that.

You can pretty easily find an area where you can easily be the only/best open source tool for the job and...
mediocrity  goals  career  business  best  business-ideas  business-idea 
october 2018 by hellsten
Auto DevOps | GitLab
Auto DevOps brings these best practices to your project in a simple and automatic way:

Auto Build
Auto Test
Auto Code Quality
Auto SAST (Static Application Security Testing)
Auto Dependency Scanning
Auto License Management
Auto Container Scanning
Auto Review Apps
Auto DAST (Dynamic Application Security Testing)
Auto Deploy
Auto Browser Performance Testing
Auto Monitoring
devops  architecture  software-development  best  details 
october 2018 by hellsten
hobby-kube/guide: Kubernetes clusters for the hobbyist.
- VPN: A project called WireGuard supplies the best of both worlds at this point. Running as a Kernel module, it not only offers excellent performance, but is dead simple to set up and provides a tunnel interface out of the box. It may be disputed whether running VPN within the Kernel is a good idea, but then again alternatives running in userland such as tinc or fastd aren't necessarily more secure. However, they are an order of magnitude slower and typically harder to configure.

- INSTALLATI...
k8s  kubernetes  vpn  ingress  installation  details  best 
october 2018 by hellsten
Book Summary: The Ultimate Sales Machine - Capital & Growth
- Strategy 9: The Nitty-Gritty of Getting the Best Buyers


Holmes advises you to send small gifts at least once a month to your dream clients, so they’ll notice and remember your brand.

For example, you could send one small, inexpensive stopwatch to the clients you’ve identified in your “best buyer” list. Alongside the gift, include a letter that says:

- Strategy 10: Sales Skills
Once you have contact with your dream client, make the most of this opportunity. Holmes says sales is not just a one-off event but a seven-stage process:

Building rapport
Qualifying your buyer based on need
Building value by matching your product to your customer’s buying criteria
Creating a strong desire
Overcoming objections
Closing the sale
Follow-up

- Strategy 4: Becoming a Brilliant Strategist

Holmes mentions three types of executives: the tactical executive, the strategic executive and the ideal executive. The ideal executive ranks in the top 1% and thinks both tactically and strategically.

Holmes notes that education-based marketing is a proven strategy to reach buyers:

1. Offering an education that helps the buyer gets more buyer interest.
2. Good, useful information automatically repositions you as an expert in the mind of the buyer. (You’re teaching them things about their own business that they might not know.)
3. You can strategically present that information in a way that sells your services far better than simply pitching your product.

Education marketing focuses on building rapport with clients for long-term relationships, rather than just trying to sell a product.

- Strategy 5: Hiring Superstars
The fifth strategy revolves around your hiring practices. How do you recruit talent for your business?
Holmes defines superstar employees as employees who shine even in bad situations with no training, poor tools, and bad resources. Within a few months, the superstar employees will outperform your best people.

You should always strive to hire a superstar, no matter how large or small your business is, or what position you’re hiring for.


- Strategy 7: The Seven Musts of Marketing

Every outstanding marketing program, according to Holmes, contains seven “musts” that can turbocharge your sales efforts:

advertising
corporate literature
direct mail
public relations
market education
personal contact
the internet
sales  marketing  entrepreneurship  best  details  management 
september 2018 by hellsten
Implementation intention - Wikipedia
The basic structure of an implementation intention is as follows:

IF {situation} THEN I will {behaviour}

procrastination  productivity  best  goals 
august 2018 by hellsten
Markov Chains explained visually
Markov chains, named after Andrey Markov, are mathematical systems that hop from one "state" (a situation or set of values) to another. For example, if you made a Markov chain model of a baby's behavior, you might include "playing," "eating", "sleeping," and "crying" as states, which together with other behaviors could form a 'state space': a list of all possible states. In addition, on top of the state space, a Markov chain tells you the probabilitiy of hopping, or "transitioning," from one state to any other state---e.g., the chance that a baby currently playing will fall asleep in the next five minutes without crying first.

One use of Markov chains is to include real-world phenomena in computer simulations. For example, we might want to check how frequently a new dam will overflow, which depends on the number of rainy days in a row. To build this model, we start out with the following pattern of rainy (R) and sunny (S) days:
markov  markov-chain  best  math  statistics 
august 2018 by hellsten
The How to Sell Guide — Entrepid Partners
> Common mistakes made by salespeople and founders:
> - Thinking their goal is to close a prospect on the first call

> - Giving a full demo and presenting pricing on the first call

> - Prematurely trying to shorten the sales process

After you read this guide, you’ll understand how to:
• Map your sales process
• Understand the different types of sales calls
• Plan and prepare for calls
• Run the perfect call
• Qualify a deal
• Ask elegant questions
• Craft a demo and presentation
• Handle obj...
sales  entrepreneurship  marketing  startup  saas  b2b  best  details  process 
may 2018 by hellsten
Ask HN: Best project management practices in 2018? | Hacker News
I have been through waterfall, agile, scrum, "agile", "scrum", kanban, to-do lists. Yet, I cannot point to a single style of project management as a silver bullet. However, I have come to realize the following conditions improve the probability of success: small teams made up of scary-smart accountable people, given a well-articulated objective (not solution) and are left alone without distraction. Short of this, you almost always fall in the trap of micro-management.
project  project-management  hn  best  best-practices  agile  scrum  kanban  management  teams 
february 2018 by hellsten
How I Shipped a Neural Network on iOS with CoreML, PyTorch, and React Native - Stefano J. Attardi
My plan was to Google my way out the problem, as one does. I soon found the right keywords: segmented regression, and piecewise linear regression. Then I found one person who solved this exact problem using basic math. Jackpot!

Or not. That approach tries to split the trendline at every possible point and then decides which splits to keep based on how much they improve the mean squared error. Worth a shot, I guess.

No matter how I tweaked the parameters, the algorithm was either splitting too ...
coreml  ai  ml  regression  linear-regression  neural  neural-network  best 
february 2018 by hellsten
Modern SQL in Open Source and Commercial Databases
10. LATERAL is the "for each" loop of SQL LATERAL plays well with outer and cross joins LATERAL is great for Top-N subqueries LATERAL can join table functions (unnest!)
LATERAL In a Nutshell



68. WITH RECURSIVE is the “while” of SQL WITH RECURSIVE "supports" infinite loops Except PostgreSQL, databases generally don't require the RECURSIVE keyword. DB2, SQL Server & Oracle don’t even know the keyword RECURSIVE, but allow recursive CTEs anyway. In a NutshellWITH RECURSIVE

117. SELECT * FROM (SELECT * , ROW_NUMBER() OVER(ORDER BY x) rn FROM data) numbered_data WHERE rn <=10 FETCH FIRST The Problem Limit the result to a number of rows. (LIMIT, TOP and ROWNUM are all proprietary) SQL:2003 introduced ROW_NUMBER() to number rows.
But this still requires wrapping to limit the result. And how about databases not supporting ROW_NUMBER()?
sql  lateral  filter  postgresql  gotcha  best  postgres 
november 2017 by hellsten
Target="_blank" - the most underestimated vulnerability ever
People using target='_blank' links usually have no idea about this curious fact:

The page we're linking to gains partial access to the linking page via the window.opener object.

The newly opened tab can, say, change the window.opener.location to some phishing page. Or execute some JavaScript on the opener-page on your behalf... Users trust the page that is already opened, they won't get suspicious.

Example attack: create a fake "viral" page with cute cat pictures, jokes or whatever, get it shared on Facebook (which is known for opening links via _blank) and every time someone clicks the link - execute

window.opener.location = 'https://fakewebsite/facebook.com/PHISHING-PAGE.html';
…redirecting to a page that asks the user to re-enter her Facebook password.
security  web-development  gotcha  best  blank 
november 2017 by hellsten
pgconfeu-2016-securing-postgresql.pdf
- Do not allow direct public logins via SSH to
the database host. Require a hop through a
specific bastion host.

- Restrict access just to expected servers.

- For critical passwords, use split passwords
with dual custody.

- Always subscribe to the pgsql-announce
list.

- Also subscribe to the appropriate security
list for your platform.

- Never, ever allow a critical security patch
to go unheeded

• Make sure your machines are properly
secured in the data center.

• This means real security (access control,
video, mantrap, biometrics) on your server
room.

• Make sure your cloud provider provides
this for the cloud they are providing to you!

- There is no such thing as “trust” mode
authentication. Forget it ever existed.

• Always require specific users, even
superusers.

- Do not use the postgres Unix or database
user. Require specific users.

- But what about “postgres”? Create a nasty password for it, keep it in
dual custody. Don’t allow non-local logins for it (or any
other superuser).

- Most common bad habit: the singleton web
user than can do anything. This is made worse by some frameworks’
migration system. Lock it down to app server IPs.

- Require SSL and CA certificates. Anything less runs the risk of MitM attacks.

- Full disk encryption is useless. That is about 0.00000002% of the actual
intrusions that you have to worry about. Easy rule: If psql can read it in cleartext, it’s
not secure.

• Don’t bake keys into startup scripts, etc.

- Always encrypt specific columns, not entire
database or disk.

- Automatic restart in a high-security
environment is essentially impossible. • Assume a human will be in the loop.


- Encrypt each column as TEXT or bytea. • Good for small items: credit cards, etc.
Create a JSON blob, encrypt that, store it as bytea. More complex things, like medical
records.

- Use a well-known secure algorithm
(AES256 is considered the standard).

- You often have to store a partial version, or
hash, of a value for indexing purposes. Example: CSRs may need to look up an
order by credit card number.

- It’s very easy to reverse some hashes,
especially if you have partial data! Use a strong hash, like SHA-256.

- pgcrypto is a /contrib module that contains
cryptography functions. Why not use it to encrypt the data? Always do the encryption in the
application, not in the database.

- Log all activity by directly-connecting users
(as opposed to the application).

- Make sure logs are kept secure and cannot
be tampered with (rsyslog, etc.)

- Scrub data that comes out of production
for development testing.

- Be sure your backups are as secure as your
primary database.

• A recent backup is just as good as your
production system for a data theft.

- Most breaches are either application
breaches or malware-infected clients.

- Detect unusual access patterns and take
action.

• Blocking, rate-limiting, admin alerts, etc
security  best  database  postgres  postgresql  hn  details  encryption 
november 2017 by hellsten
Redis Streams and the Unified Log — Brandur Leach
ather than emit directly to Redis, a “staged” record is created in Postgres. This indirection is useful so that in case the request’s transaction rolls back due to a serialization error or other problem, no invalid data (i.e. data that was only relevant in a now-aborted transaction) is left in the log. This principle is identical to that of transactionally-staged job drains, which do the same thing for background work.

The staged records relation in Postgres look like:

CREATE TABLE staged_log_records (
id BIGSERIAL PRIMARY KEY,
action TEXT NOT NULL,
data JSONB NOT NULL,
object TEXT NOT NULL
);
architecture  redis  logging  kafka  best 
november 2017 by hellsten
15 Essential Open Source Security Tools | HackerTarget.com
1. Nmap - map your network and ports with the number one port scanning tool. Nmap now features powerful NSE scripts that can detect vulnerabilities, misconfiguration and security related information around network services. After you have nmap installed be sure to look at the features of the included ncat - its netcat on steroids.

2. OpenVAS - open source vulnerability scanning suite that grew from a fork of the Nessus engine when it went commercial. Manage all aspects of a security vulnerability management system from web based dashboards. For a fast and easy external scan with OpenVAS try our online OpenVAS scanner.

3. OSSEC - host based intrusion detection system or HIDS, easy to setup and configure. OSSEC has far reaching benefits for both security and operations staff.

4. Security Onion - a network security monitoring distribution that can replace expensive commercial grey boxes with blinking lights. Security Onion is easy to setup and configure. With minimal effort you will start to detect security related events on your network. Detect everything from brute force scanning kids to those nasty APT's.

5. Metasploit Framework - test all aspects of your security with an offensive focus. Primarily a penetration testing tool, Metasploit has modules that not only include exploits but also scanning and auditing.
hacking  hacker  nmap  pentesting  security  best  tools 
september 2017 by hellsten
Brainstorming 22-02-2016 - Google Slides
* “Playing things out” = bodystorming

- is one of the most overlooked methods of creativity
- It is physically (re-)enacting what you are brainstorming about
- Example: the following designer treated the act of selling ice-cream as a public performance for the customer and acted it out

* Classic Brainstorming has been shown to lead to:

less diverse ideas
less original ideas
a lower quantity of ideas
… compared to letting people ideate alone and pool their ideas later.

* BAD: “What new features can we put in our camera?”

- Listing features does not consider the whole product
- Question treats camera as a fixed concept that we just add things to
- Answers must fit current concept of a camera
- Leads to incremental improvements (which can still be innovative at times)

* GOOD: “Make a better device that allows people to capture and share memories!”

- First-principle question about what a camera is used for
- Lets you think of things that have the quality of a camera, but don’t have to be a camera
- Not forced into add-on thinking, but still allowed!

* Safe bets are by definition not innovative

* communication is important!

“Teams with higher average I.Q.s didn’t score much higher on our collective intelligence tasks than did teams with lower average I.Q.s. Nor did teams with more extroverted people, or teams whose members reported feeling more motivated to contribute to their group’s success. Instead, the smartest teams were distinguished by three characteristics.”

1. “First, their members contributed more equally to the team’s discussions, rather than letting one or two people dominate the group.”

2. “Second, their members scored higher on a test called “Reading the Mind in the Eyes,” which measures how well people can read complex emotional states from images of faces with only the eyes visible.”

3. “Finally, teams with more women outperformed teams with more men. [...] This last effect, however, was partly explained by the fact that women, on average, were better at “mindreading” than men.”

4. “[The most important factors were the same online:] members who communicated a lot, participated equally and possessed good emotion-reading skills.”
creativity  brainstorming  best  entrepreneurship  ux  introversion  extroversion  introvert  extrovert  iq  intelligence  hn 
september 2017 by hellsten
Basecamp 3 for iOS: Hybrid Architecture – Signal v. Noise
For Basecamp 3, we’ve replaced Objective-C with Swift, UIWebView with WKWebView and added Turbolinks, with even more native code, and a deeper integration between native and web.

For us, it means using Xcode + Swift, and conforming to all the platforms conventions regarding navigation/presentation. The building blocks of our app are composed of UINavigationController, UITabViewController, UISplitViewController, UIViewController, etc. Within those containers, we have many screens where the content is built using UITableView or UICollectionView, we have even more where that role is filled by a WKWebView.

he primary code here is a local JavaScript file (written in TypeScript) embedded in the app and injected into the web view using WKUserScript. This provides native code an API for communicating with the web view without needing to directly query the DOM or do complex JS. Using a WKScriptMessageHandler, we can respond to messages sent from the web view through the bridge.
ios-development  hn  mobile-development  best 
september 2017 by hellsten
CodePen - Little UI details from @steveschoger, in HTML and CSS
21. Make the border of buttons lighter than the text.

21. And finally, avoid using borders, instead use background colors.

17. Overlap elements to create depth.

16. Create a great hero banner with blend-mode: multiply
Using blend-mode with a desaturated photo and a background color gives a nice contrast to your hero banner with white text.


9. Use a hint of color at the top of your hero.

8. Use an icon instead of the standard bullet in unordered lists.

5. Give your box shadow a slight vertical offset.

box-shadow: 0 2px 3px 0 rgba(0,0,0,.075)

4. Shift buttons 1/2px up/down for a nice hover effect.

.ex-4 button:hover{
transform: translateY(-2px);
box-shadow: 0 7px 14px rgba(50,50,93,.1), 0 3px 6px rgba(0,0,0,.08);
filter: brightness(130%);
}

3. Make your gradients vibrant by changing the hue instead of the lightness.

background: linear-gradient(to bottom, hsl(194, 100%, 50%) 0%,hsl(208, 100%, 50%) 100%)

2. Add a subtle shadow to white text on bright background.

text-shadow: 0 1px 2px rgba(0,0,0,0.2)

1. Color icons slightly lighter than labels
design  details  ux  webdesign  best 
september 2017 by hellsten
Maybe We All Need a Little Less Balance | Hacker News
"Maybe the good life is not about trying to achieve some sort of illusory balance. Instead, maybe it’s about pursuing your interests fully, but with enough internal self-awareness to regularly evaluate what you’re not pursuing as a result — and make changes if necessary. Living in this manner..."
life  balance  hn  best 
august 2017 by hellsten
The Interleaving Effect: Mixing It Up Boosts Learning - Scientific American
We’ve all heard the adage: practice makes perfect! In other words, acquiring skills takes time and effort. But how exactly does one go about learning a complex subject such as tennis, calculus, or even how to play the violin? An age-old answer is: practice one skill at a time. A beginning pianist might rehearse scales before chords. A young tennis player practices the forehand before the backhand. Learning researchers call this “blocking,” and because it is commonsensical and easy to schedule, blocking is dominant in schools, training programs, and other settings.
However another strategy promises improved results. Enter “interleaving,” a largely unheard-of technique that is capturing the attention of cognitive psychologists and neuroscientists. Whereas blocking involves practicing one skill at a time before the next (for example, “skill A” before “skill B” and so on, forming the pattern “AAABBBCCC”), in interleaving one mixes, or interleaves, practice on several related skills together (forming for example the pattern “ABCABCABC”). For instance, a pianist alternates practice between scales, chords, and arpeggios, while a tennis player alternates practice between forehands, backhands, and volleys.
interleaving  learning  practice  details  best 
august 2017 by hellsten
Take Naps at Work. Apologize to No One. - The New York Times
• Aim for around 20 minutes. Any longer than that and you’re likely to wake up with sleep inertia, which will leave you even groggier than before.
sleep  nap  productivity  work  best  details 
june 2017 by hellsten
First Principles of Interaction Design (Revised & Expanded) | askTog
First Principles
Aesthetics
Anticipation
Autonomy
Color
Consistency
Defaults
Discoverability
Efficiency of the User
Explorable Interfaces
Fitts's Law
Human-Interface Objects
Latency Reduction
Learnability
Metaphors
Protect Users' Work
Readability
Simplicity
State: Track it
Visible Interfaces
learning  first-principles  ux  design  interaction-design  interaction  principles  web-design  best  details 
may 2017 by hellsten
The Cook and the Chef: Musk's Secret Sauce - Wait But Why
So if we want to think like a scientist more often in life, those are the three key objectives—to be humbler about what we know, more confident about what’s possible, and less afraid of things that don’t matter.
life  elon-musk  inspiration  best 
may 2017 by hellsten
Self-Compassion Works Better Than Self-Esteem | Hacker News
As my psychotherapist put it yesterday: people that seek self-esteem in an unhealthy way are vampires. "You have to become your own bloodsource" she said.
When you seek self-esteem in an unhealthy way, you do things to get approval/validation from others. You'll suck some blood from girls who like you, suck some blood from jobs you apply for that want you, tell friends about all the high-end interviews you have and the cool things you're doing. But after you've gotten what you need from the girls, the jobs, the friends, you realize you never really wanted any of them. And that you wasted your time in the process when you should seek what YOUR OWN PATH is. Self-compassion/kindness is when you become your own sustainable bloodsource of self-esteem and it is critical for your survival and success.
life  kids  self-esteem  psychology  best  self-compassion 
may 2017 by hellsten
Keybase is out for iPhone, Android | Hacker News
Possibly interesting to HN: Keybase is one of the only large apps we know of which exists on all 5 platforms (iOS, Android, macOS, Linux, and Windows) and which was programmed almost entirely in Go. Except for the chrome, which is react/react native. Source code for all platforms at https://github.com/keybase/client
cross-platform  development  architecture  best  details 
may 2017 by hellsten
Writefull
See how popular sentences are in books, etc.
language  writing  best  tool 
may 2017 by hellsten
Startup School 8: Jan Koum of WhatsApp | Hacker News
there were a few and i probably won't be able to list all of them, but here are some:
- build for multiple platforms. most of our competitors did iOS and Android only and called it a day.
- keep the app simple. most of our competitors complicated not only the sign up flow but also the in-app experience
- look native. our thinking was that hundreds of millions of people use native apps thousands times a day and if we use native look and feel in our app, it will feel comfortable and intuitive for our users.
- focus on speed, performance and reliability. it is easy to build an app that sends images quickly on 4G but you also have to work efficiently in the EDGE environments.
- localization. we translated into as many languages as we could as quickly as we could.
- support. for the longest time Brian and myself were the only two guys answering customer support emails.
- focus on organic growth as it makes your network stronger
there are probably a bunch of other things we focused early on that escape me at the moment...
whatsapp  scaling  entrepreneurship  inspiration  best  details  language  i18n 
may 2017 by hellsten
Feynman Algorithm
Then there is Friedrich Kekule's algorithm:
Write down the problem.
Think real hard.
Have a nap.
Dream the solution.

"For Richard, figuring out these problems was a kind of a game. He always started by asking very basic questions like, 'What is the simplest example?' or 'How can you tell if the answer is right?' He asked questions until he reduced the problem to some essential puzzle that he thought he would be able to solve. Then he would set to work, scribbling on a pad of paper and staring at the results. While he was in the middle of this kind of puzzle solving he was impossible to interrupt. 'Don't bug me. I'm busy,' he would say without even looking up. Eventually he would either decide the problem was too hard (in which case he lost interest), or he would find a solution (in which case he spent the next day or two explaining it to anyone who listened). In this way he worked on problems in database searches, geophysical modeling, protein folding, analyzing images, and reading insurance forms."


Then there is Friedrich Kekule's algorithm:
Write down the problem.
Think real hard.
Have a nap.
Dream the solution.
feynman  thinking  best  algorithm 
april 2017 by hellsten
Scott Adams' Blog
As I have taught you, persuasion can be ranked like this:

1. Identity (best)

2. Analogy (okay)

3. Reason (useless)

Bernie Sanders had been operating in the lower two categories along with Hillary Clinton. But his new ad, set to a Simon and Garfunkel tune, is pure identity (America!) and pure gold.
persuasion  dilbert  best  advertising  pr 
january 2017 by hellsten
math-as-code/README.md at master · Jam3/math-as-code
This is a reference to ease developers into mathematical notation by showing comparisons with JavaScript code.

Motivation: Academic papers can be intimidating for self-taught game and graphics programmers. :)


s - italic lowercase letters for scalars (e.g. a number)
x - bold lowercase letters for vectors (e.g. a 2D point)
A - bold uppercase letters for matrices (e.g. a 3D transformation)
θ - italic lowercase Greek letters for constants and special variables (e.g. polar angle θ, theta)
math  mathematics  cheatsheet  best  programming  cs  faq  academic  papers  notation 
november 2016 by hellsten
Sidekiq - Indie Hackers
My second idea was to move to an open core model: hold back more complex or enterprise-specific features from the OSS version, sell those features as an "expansion pack" on top of Sidekiq. Thus, Sidekiq Pro was born. This proved to be popular and forms my business today.

I sell access to Sidekiq Pro and Sidekiq Enterprise as annual subscriptions. My belief is that software is never "done". It will always require changes, especially based on changes to Rails or Ruby over time, and my support load will grow linearly as I get more free Sidekiq users and commercial customers. I don't sell monthly because I don't think my software is something you just start or stop using on that timeframe. Once you integrate it, it's likely to stay as part of your app for years.

I do try to keep the price low so that people can charge it to a credit card without trouble.

If you had to start over, what would you do differently?
The biggest mistake I made was not selling as a subscription from day one.

I should have started an email newsletter much earlier, I use Twitter for announcements but nothing beats delivery right to someone's inbox.
sidekiq  business  inspiration  best 
november 2016 by hellsten
Counting rows | PostgreSQL General Bits Newsletter
It is often the case that you want to know how many rows are in a table. If you find yourself in this situation, you should also ask how accurate that count should be. If you are doing accounting, you want it to be exactly accurate. If you are decorating a web page with counts, perhaps it would be OK to be off by a few.

Options:
- COUNT(*)
- Reltuples
- Simple Count Triggers

Putting it all together, this is the order of events:

- Create row counts table
- Create trigger function
- Stop server activity if possible
- Vacuum tables -- cannot be done in a transaction
- In a transaction
- Add triggers
- Initialize row counts

From then on, you should be able to see your current row counts by selecting the table name at any time from the row_counts table.
database  postgres  counting  unread  read  count  optimization  architecture  details  best 
october 2016 by hellsten
Postgres Count Performance | Hacker News
> Even if counts could be made faster, at scale you'd probably still want to avoid counting anything that can be pre-calculated.
We use something similar to the trigger-based method they describe, tho have found that a lot of updates to count table inevitably ends with deadlocks. So instead of updating a count value, we always insert a new count of 1 or -1, and use summing to calculate the total count as needed. A background task is responsible for continually squashing the count values.

> At this point, I wonder: with a huge dataset, wouldn't you have better time leaving the count field out of postgres altogether and use something like redis with its INCR/DECR instructions instead? This would prevent having deadlocks as well.
EDIT: that is, if you don't need to use the count field in other queries.
database  postgres  counting  unread  read  count  optimization  architecture  details  best 
october 2016 by hellsten
Faster PostgreSQL Counting
How can we make this faster? Something has to give, either we can settle for an estimated rather than exact count, or we can cache the count ourselves using a manual increasing-decreasing tally. However in the second case we have to keep a tally for each table and where clause that we want to count quickly later.

Here’s an example of the tally approach applied to the whole items table. The following trigger-based solution is adapted from A. Elein Mustain. PostgreSQL’s MVCC will maintain consistency between the items table and a table of row counts.

The speed of reading and updating the cached value is independent of the table size, and reading is very fast. However this technique shifts overhead to inserts and deletes. Without the trigger the following statement takes an average of 4.7 seconds, whereas inserts with the trigger are fifty times slower:

BEGIN;

CREATE TABLE row_counts (
relname text PRIMARY KEY,
reltuples bigint
);

-- establish initial count
INSERT INTO row_counts (relname, reltuples)
VALUES ('items', (SELECT count(*) from items));

CREATE OR REPLACE FUNCTION adjust_count()
RETURNS TRIGGER AS
$$
DECLARE
BEGIN
IF TG_OP = 'INSERT' THEN
EXECUTE 'UPDATE row_counts set reltuples=reltuples +1 where relname = ''' || TG_RELNAME || '''';
RETURN NEW;
ELSIF TG_OP = 'DELETE' THEN
EXECUTE 'UPDATE row_counts set reltuples=reltuples -1 where relname = ''' || TG_RELNAME || '''';
RETURN OLD;
END IF;
END;
$$
LANGUAGE 'plpgsql';

CREATE TRIGGER items_count BEFORE INSERT OR DELETE ON items
FOR EACH ROW EXECUTE PROCEDURE adjust_count();

COMMIT;
database  postgres  counting  unread  read  count  optimization  architecture  details  best 
october 2016 by hellsten
citusdata/citus: Scalable PostgreSQL for real-time workloads
What is Citus?

Open-source PostgreSQL extension (not a fork)
Scalable across multiple hosts through sharding and replication
Distributed engine for query parallelization
Highly available in the face of host failures
Citus horizontally scales PostgreSQL across commodity servers using sharding and replication. Its query engine parallelizes incoming SQL queries across these servers to enable real-time responses on large datasets.
scaling  saas  postgresql  database  best  details  multitenancy  multi-tenant  sharding  architecture 
october 2016 by hellsten
Sharding a multi-tenant app with Postgres
- Multi-tenancy and co-location, a perfect pair. Co-locating data within the same physical instance avoids sending data over the network during joins. This can result in much faster operations.


- The key that makes this all possible is including your store_id on all tables. By doing this you can easily shard out all your data so it’s located on the same shard. In the above data model we coincidentally had store_id on all of our tables, but if it weren’t there you could add it. This would put you in a good position to distribute all your data so it’s stored on the same nodes. So now lets try sharding our tenants, in this case stores:

SELECT master_create_distributed_table('stores', 'id', 'hash');
SELECT master_create_distributed_table('products', 'store_id', 'hash');
SELECT master_create_distributed_table('purchases', 'store_id', 'hash');

SELECT master_create_worker_shards('stores', 16);
SELECT master_create_worker_shards('products', 16);
SELECT master_create_worker_shards('purchases', 16);
scaling  saas  postgresql  database  best  details  multitenancy  multi-tenant  sharding  architecture 
october 2016 by hellsten
Google F1
- In recent years, conventional wisdom in the engineering
community has been that if you need a highly scalable, highthroughput
data store, the only viable option is to use a
NoSQL key/value store, and to work around the lack of
ACID transactional guarantees and the lack of conveniences
like secondary indexes, SQL, and so on. When we sought
a replacement for Google’s MySQL data store for the AdWords
product, that option was simply not feasible: the
complexity of dealing with a non-ACID data store in every
part of our business logic would be too great, and there
was simply no way our business could function without SQL
queries. Instead of going NoSQL, we built F1, a distributed
relational database system that combines high availability,
the throughput and scalability of NoSQL systems, and the
functionality, usability and consistency of traditional relational
databases, including ACID transactions and SQL
queries.

- F1 shows that it is actually possible to have a highly scalable
and highly available distributed database that still provides
all of the guarantees and conveniences of a traditional
relational database.

- For example, the AdWords
schema contains a table Customer with primary key
(CustomerId), which has a child table Campaign with primary
key (CustomerId, CampaignId), which in turn has
a child table AdGroup with primary key (CustomerId,
CampaignId, AdGroupId). A row of the root table in the
hierarchy is called a root row. All child table rows corresponding
to a root row are clustered together with that root
row in a single Spanner directory, meaning that cluster is
normally stored on a single Spanner server. Child rows are
stored under their parent row ordered by primary key. Figure
2 shows an example.
scaling  saas  postgresql  database  best  details  multitenancy  multi-tenant  sharding  architecture 
october 2016 by hellsten
Spanner (database) - Wikipedia, the free encyclopedia
Described as a NewSQL[5] platform, Spanner is used internally within Google's infrastructure as part of the Google platform.[6] Spanner uses the Paxos algorithm as part of its operation to shard data across hundreds of datacenters.[1] It makes heavy use of hardware-assisted time synchronization using GPS clocks and atomic clocks to ensure global consistency.[1]
scaling  saas  postgresql  database  best  details  multitenancy  multi-tenant  sharding 
october 2016 by hellsten
Designing your SaaS Database for Scale with Postgres
- The diagram on the right-hand side proposes the hierarchical database model. This model is the one used by F1 and resolves the previously mentioned issues. In its simplest form, you add a customerid/tenantid column to your tables and shard them on customer_id. This ensures that data from the same customer gets colocated together – co-location dramatically reduces the cost associated with distributed transactions, joins, and foreign key constraints.


- When you shard your tables for multi-tenancy, then you’re having your database do the work for you. The database will either ensure that an Alter Table goes through across all shards, or it will roll it back.
scaling  saas  postgresql  database  best  details  multitenancy  multi-tenant 
october 2016 by hellsten
Test-Driven Development of Go Web Applications with Gin | Hacker News
I don't think it would be fair to say that the Go community optimizes for productivity over good software development practices. In fact, there's been a good push in the community lately to talk about application design and what it means for code to be good/not good.
* https://github.com/marcusolsson/gouk16-slides/blob/master/bu...
* https://peter.bourgon.org/go-best-practices-2016/
* http://dave.cheney.net/2016/08/20/solid-go-design
However, as a Go developer I'm finding that a lot of examples/tutorials and github projects are taking shortcuts when it comes to program design and how dependencies(loggers, config, db handlers) are being passed around. https://peter.bourgon.org/go-best-practices-2016/#program-de... IMO it's a sign of Go still being a relatively new language. Despite the language existing for ~6 years now, we're only discovering some best practices today.
golang  best-practices  details  best 
september 2016 by hellsten
The Inner Game of Everything: 1974 Tennis Book Is Still a Sensation | Hacker News
The Inner Game Way:
1. Non-judgmentally observe existing behaviour.
2. Ask yourself to change, programming with image and feel.
3. Let it happen!
4. Calm observation of results leading to continuing observation of process until behaviour is automatic.
Highlights:
- The secret to winning any game lies in not trying too hard.
- … to value the art of relaxed concentration above all skills.

- Ending judgment means you neither add nor subtract from the facts before your eyes. Things appear as they are — undistorted. In this way, the mind becomes more calm.

- After I developed by practice some small ability to concentrate my mind, I discovered that concentration was not only a means to an end, but something of tremendous value in itself. As a result, instead of using concentration to help my tennis, I now use tennis as a means to further increase concentration.
- Simply focus on your breath, absorbing more and more conscious energy into the awareness of the experience of breathing. It may help to allow your hands to open as you inhale and to close as you exhale. Then ask your hands to open and close slightly less. Don’t force your fingers to do this; simply ask them and let them respond. If your mind begins to wander, bring it back gently to your breathing. As your mind stills and settles into a calm state, let yourself be alert to every split second of breathing and experience as fully as you can this state of relative quiet.
sport  coach  management  training  tennis  book  best  details  meditation 
september 2016 by hellsten
The Inner Game Of Everything: Why Is A Four-Decade-Old Tennis Book Still A Self-Help Sensation
“Performance rarely equals potential,” Gallwey says. “A little self-doubt, an erroneous assumption, the fear of failure — that’s all it takes to greatly diminish performance.”


Lessons I knew from childhood — watch the ball all the way into the racket — suddenly became more instinctive. Before, I had to think consciously about them. By not thinking about them at all, they occurred naturally.

“The opponent within your own head is more daunting than the one on the other side of the net.”

his book’s central concept: unconscious submission

“It’s a worthwhile endeavor to take the time to realize that we actually have more potential than we think,” he said. “That’s a thought worth engaging consciously.”
sport  coach  management  training  tennis  book  best  details 
september 2016 by hellsten
Enterprise Sales for Hackers · The Macro
= Champion

A champion is your ally within the target company. He or she will have have deep familiarity with the pain your product solves, and will hope that your product is the solution.

= IT

Your strategy should generally be to avoid IT until required to go through security reviews and other approvals, and by this time you should have the business units “pulling” you so strongly that IT can’t slow things down for too long.

= Procurement

If you are lucky enough to convince a decision maker/budget holder to buy your product, you will usually be handed over to procurement to negotiate the deal.

= Legal

As you run the gauntlet you will likely encounter legal next.

a good strategy is to have a frank and authentic discussion listing out those things that you care about, and give in on the stuff that won’t really make a difference for you. That, combined with strong support from your champion (who should be in the background telling legal to hurry up and get the deal done), will help you close out the negotiation and get a signature.

= Finance

One thing they are thinking about is the budget and budget cycle. For example, you may find that the finance team prefers to pay more money up front to use up some of this quarter’s budget, rather than to space out payments over time.

= Keep your map front and center.

You spent time mapping out the system in advance. Now, you must always keep it in mind, especially when strange things seem to be happening. Go back and evaluate the different people, their motivations, and their interactions. Figure out how to play the system to your advantage, and inject the right messages in the right places.

= Uncover the motivations of every player.

In the beginning you should devote a lot of time to listening and learning. Map out the people in your target company, draw a diagram. Just like a great hacker spends a lot of time poking around, exploring and understanding how a system works before attempting to influence it, you need to spend a lot of time really understanding the organization, motivations and interactions.

= Engage on many fronts.

It’s a good practice to create pairs of relationships. For example, pair executives at your company with executives at the customer, your engineers with their IT and security folks, your product people with their business unit leaders etc.
sales  marketing  startup  business  best  enterprise  enterprise-sales 
may 2016 by hellsten
Notes on Google's Site Reliability Engineering Book | Hacker News
Granted, I'm only on the fifth chapter currently, but this is the first IT-oriented book that I've genuinely had a hard time putting down. It's so exciting to be able to see so many components of such a successful software (and hardware) organization, and as they mention, to see the reasoning behind the decisions rather than just a dump of "here's what we decided."
architecture  best  google  aws  amazon  cloud 
april 2016 by hellsten
How to Pass a Programming Interview | Hacker News
For a while, we had a non-typical interview strategy: A take-home project. We would give the candidate a week or so to work on a smallish project, the requirements of which we would specify. After they completed the project, we would do a group walkthrough with them.
We've hired five engineers over the last three years. For the first two, we did the take-home project. But, then I started to wonder a bit about if it was reasonable to ask programmers to work a weekend on a project. The...
hiring  interview  programming  career  best 
march 2016 by hellsten
How to do distributed locking — Martin Kleppmann’s blog
If you need locks only on a best-effort basis (as an efficiency optimization, not for correctness), I would recommend sticking with the straightforward single-node locking algorithm for Redis (conditional set-if-not-exists to obtain a lock, atomic delete-if-value-matches to release a lock), and documenting very clearly in your code that the locks are only approximate and may occasionally fail. Don’t bother with setting up a cluster of five Redis nodes.

On the other hand, if you need locks for correctness, please don’t use Redlock. Instead, please use a proper consensus system such as ZooKeeper, probably via one of the Curator recipes that implements a lock. (At the very least, use a database with reasonable transactional guarantees.) And please enforce use of fencing tokens on all resource accesses under the lock.


Note this requires the storage server to take an active role in checking tokens, and rejecting any writes on which the token has gone backwards. But this is not particularly hard, once you know the trick. And provided that the lock service generates strictly monotonically increasing tokens, this makes the lock safe. For example, if you are using ZooKeeper as lock service, you can use the zxid or the znode version number as fencing token, and you’re in good shape [3].

However, this leads us to the first big problem with Redlock: it does not have any facility for generating fencing tokens. The algorithm does not produce any number that is guaranteed to increase every time a client acquires a lock. This means that even if the algorithm were otherwise perfect, it would not be safe to use, because you cannot prevent the race condition between clients in the case where one client is paused or its packets are delayed.
zookeeper  transaction  reliability  programming  best  redis  redlock  locking  algorithm 
february 2016 by hellsten
Great Seneca Quote: Stoicism
"You act like mortals in all that you fear and immortals in all that you desire."
life  seneca  quote  best  stoicism 
december 2015 by hellsten
What is Mindfulness and How to Explain it to Kids and Adults
WHAT IS THE GOAL OF MINDFULNESS PRACTICE ?

“Between stimulus and response, there is a space. In that space lies our freedom and power to choose our response. In our response lies our growth and freedom” – Victor Frankl
mindfulness  kids  best 
december 2015 by hellsten
Keeping Your Eye on the Ball - The New York Times
Quiet Eye training, as the name suggests, is an attempt to get people to stop flicking their focus around so much. But “Quiet Eye training is not just about looking at the ball,” says Mark Wilson, who led the study, published in Psychophysiology, and is a senior lecturer in human movement science at the University of Exeter in England. “It is about looking at the ball for long enough to process aiming information.” It involves reminding players to first briefly sight toward the exact spot where they wish to send the ball, and then settle their eyes onto the ball and hold them there.

This tight focus on the ball, Dr. Wilson says, blunts distracting mental chatter and allows the brain “to process the aiming information you just gathered” and direct the body in the proper motions to get the ball where you wish it to go.

A quiet, focused eye, in other words, seems to encourage a quiet, focused mind, which then makes for more accurate putting.
table-tennis  tennis  ball  sports  best  eyes 
november 2015 by hellsten
www.khoslaventures.com/wp-content/uploads/Good_Product_Manager_Bad_Product_Manager_KV.pdf
Summary points:
• CEO of the product
• Balance all important factors
• Clear, written communication with product development
• Clear goals and advantages
• Focus on the sales force and customers
• Other key skills
• Really good product manager

Really good product manager
• Really good product managers demonstrate group product manager skills and
capabilities while they are product managers. (See Good Group Product Manager /
Dead Group Product Manager.) These skills include:
o Be paranoid. Really paranoid.
o Work well with executives.
o Leverage the entire organization.
o Use whatever intensity is required to close critical issues.
product-management  project-management  details  best  paranoid  paranoia 
october 2015 by hellsten
PMTS.org • View topic - The Pivot in Racing?
When Ligety was training at Bachelor this spring I asked one of his coaches if my kids should be practicing stivots. He responded with a no. I asked if we should be doing any pivot type drills. Again he answered no. He said the kids should spend their time learning to carve every turn. When a pivot is needed to dump some speed or correct the line they already know how to do it. How do we know? Because, nearly every young racer is pivoting too much already. We are trying to get them to replace the pivot with earlier tipping and bigger angles.

The following questions were given to Steve Nyman and Kaylin Richardson-

When should a stivot be used?
What free skiing & gate drills have you found helpful to learn the stivot tactic?

Steve Nyman says:

To be frank. DONT STIVOT unless you have to. Being able to carve and go direct is way faster. We never practice the stivot and it isnt fast... You carve to gain speed and you stivot to slow down. We never train it it is just something that happens. You learn it when you learning how to wedge as a beginner skier.
Learn to carve then learn to carve tighter.



Kaylin Richardson says:

This move should only be used in a last resort/ survival situation- ie: when you are late and have no time to pressure the edge properly or on an extremely steep pitch. A sliding ski is never faster than a carving ski.

It depends on the course to be honest. Hopefully, I never use it unless it is part of my plan- for instance if there is a set with a turn that is impossible to carve and stay on line. But, as a survival move and mistake "fixer" I probably use it minimally. If it is a run that I am struggling in then I may, unfortunately be using it more often.

I think the stivot shouldn't really be taught- sliding drills should suffice when it comes to learning this move. It is more something that just naturally happens when it is appropriate and needed. Sliding the top of the turn is not a fundamental part of fast skiing... not one you want to use often!
carving  ted-ligety  racing  ski-racing  best 
september 2015 by hellsten
How to make breaking changes and not break all the things | Hints & Kinks
Step 0: Start from a safe place

All bets are off if you don’t have integration tests in place to prove that with each step you take, you aren’t breaking things.

Step 1: In with the new

Create the new column or table, but if optionality is required to maintain backward compatibility, then let it be NULLable.

In this case, we’d just add the new post_authors table as you want it in final form.

Step 2: Change all write codepaths to double-write from old to new

Add code to your write paths to write to both the old schema as well as the new schema. Make sure you’re writing to the new schema in the same transaction boundary as the old writes—you want rollbacks to keep both sides consistent.

Step 3: Backfill the old rows

Once all new writes are persisting to both the old and new schema, write a batch script or SQL update to copy all existing records into the new schema structure, but only where they are missing. See the INSERT IGNORE documentation if you’re using MySQL.

Step 4: Fix any NULLable columns that should be NOT NULL

If you’re adding a new column to an existing table, you probably had to add it as NULLable. Now, thanks to step 3, all existing rows, and, thanks to step 2, all new rows in the new schema are valid, you can ALTER the table to make the column NOT NULL where appropriate.

Step 5: Change the read codepaths to read from the new

The new schema design is ready for consumption! Update all the readers to use the new schema. Note that writes must continue to go to the old schema design and the new schema design until all read paths have migrated to the new schema design.

Step 6: Change the write codepaths to only write to the new

Now that no reads hit the old schema design, you can update all writers to directly interact with the new schema design, and delete the double-writing code.

Step 7: Delete the old schema columns or tables

Once all reads and writes are on the new schema design, the deprecated columns or tables can be dropped.

Step 8: Whiskey and/or Chocolate

Apply as appropriate.

Extra Credit—Use a Fractional Rollout System
migration  database  best  details 
september 2015 by hellsten
« earlier      
per page:    204080120160

related tags

2d  03-2009  3d  3g  8-star  9-star  37-signals  37signals  99designs  a/b  a/b-testing  aapl  academic  accent  accounting  activerecord  activeresource  activity-feed  ad-networks  adam-curtis  admin  admin-panel  administration  ads  advertising  advice  adwords  aesthetics  affiliate  affiliate-marketing  age  aggregation  aggregator  agile  ai  ajax  algebra  algorithm  algorithms  allan-mecham  allocation  alpha  alterative-news  alternative  alternatives  altman  altman-score  amazon  amy-hoy  amzn  analysis  analysis-paralysis  analysts  analytics  android  android-development  anger  angular.js  animation  annual-letter  annual-report  anti-patterns  aol  apache  apache2  api  api-design  apple  appstore  appstore-rankings  appstore-search  appstore-seo  appstore-statistics  apress  architecture  archtecture  argument  army  arnold-van-den-berg  art  article  articles  artifical-intelligence  asperger  asynchronous  athletics  audio  australia  austrian-school  authentication  autocomplete  automation  autotest  award  awards  aws  b-tree  b2b  bac  bac-wta  bac-wtb  backbone.js  background  background-removal  backgrounds  backlinks  backorder  backup  baker-street-capital  balance  ball  bandwidth  bankers  banking  banks  basecamp  baseline  bash  baupost  bayesian  bdd  bear  beautiful  behavior  behavioral-investing  ben-bernanke  benchmark  benefits  benjamin-graham  berkshire  best  best-practices  bestpractices  bicycle  big-o  bigram  bike-touring  bill-gross  billing  biography  black  black-and-white  blank  blocks  blog  blogging  blueprint  bnp  boilerplate  bonds  book  book-review  bookmarking  bookmarklet  books  bootstrap  bootstrap.js  bootstrapping  boss  bounce-rate  box-model  box-shadow  bp  brain  brainstorming  brand  branding  brazil  breathing  brian-tracy  brk  browser  browsers  bruce-greenwald  brush  brushes  bruteforce  bubble  bubbles  bucket  buffett  build  builder  building  bull  bureaucracy  business  business-checklist  business-development  business-idea  business-ideas  business-model-canvas  business-strategy  button  buttons  buy-and-hold  buying  c  ca  cache  caching  calculator  cameron-moll  campaign-monitor  canada  canonical  canvas  cape  capistrano  capitalism  car  careeer  career  carving  case-study  cells  celluloid  ceo  certificate  certificates  certification  certs  chair  channel  charlie-munger  charlie479  chart  charts  cheat-sheet  cheatsheet  checklist  chicken-and-egg  children  china  chk  christopher-begg  chrome  chroot  ci  citigroup  class  classes  classic  classifer  classification  client-certificate  clientside  clipart  clothes  cloud  cluster  cmm  cms  cnn  coach  coaching  coca-cola  cocoa  cocoa-development  code  coding-conventions  coffeescript  collaboration  color  color-detection  color-scheme  color-theory  colors  columns  commercial  commercial-intention  commodities  communication  communism  community  comparison  compatibility  compensation  competitive-advantage  computer-science  concentration  concurrency  conference  confidence  configuration  connection  connections  console  consul  consulting  consumer-staples  contact  containers  content-farm  content-strategy  contract  contracting  contrarian  contrarian-investing  contrary  contrast  contributors  conversation  conversion  cookbook  cookie  cooking  cool  copy  copywriting  core-animation  core-data  coreml  cornerofberkshireandfairfax  corporatism  correlation  corruption  count  counting  course  covariance  cpm  crap  crash  creativity  credit-card  credit-suisse  critique  cron  cross-platform  crust  crypto  cs  cs-193p  cs193p  cs229  csi  css  css3  csv  cubicles  cucumber  culture  customer  customer-development  customer-service  cv  cycling  cykel  d3  d3.js  daemon  daemons  daniel-kahneman  dark  dashboard  dashboard-design  data  data-analysis  data-mining  data-visualization  database  database-design  databases  datamining  datamodel  dating  david-einhorn  david-ogilvy  debate  debian  debt  debug  debugging  decision  decision-making  decision-tree  decisions  deep-learning  demo  democracy  demographics  denormalization  dentist  dentists  dependencies  deployment  der  design  design-inspiration  design-pattern  designer  desktop  destinations  details  detect  develeper  develoment  developer  development  develpoment  devops  dhh  diabetes  dictionary  diet  dilbert  dimension  dingbat  director  director.js  directory  discovery  discussion  dividend  dividend-investing  diy  django  docker  documentaries  documentary  documentation  dog-pile  domain  domain-appraisal  domain-naming  domain-tool  domain-tools  domaining  domains  domäner  donald-yacktman  dow  downloadable  drag  drag-and-drop  drawing  drip-marketing  drop  drop-shipping  dropshadow  e-book  e-commerce  earnings  easing  east-coast-asset-management  ebay  ebook  eclipse  ecommerce  econ-252  economics  economists  economy  edge  editing  editor  education  eks  elasticsearch  electric-car  elon-musk  em-proxy  email  email-marketing  embed  ember.js  emerging-markets  encoding  encryption  energy  engineering  engines  english  enterprise  enterprise-sales  entrepreneur  entrepreneurship  environment  epsilon-greedy  ergonomy  eric-janszen  ericopoly  error  esi  essay  estimate  eu  europe  european-banks  european-investing  eventmachine  events  example  examples  excel  exception  exceptions  excercises  exercise  expire  expiring  explore  explorer  extension  extensions  extroversion  extrovert  eye-tracking  eyes  eyetracking  face-recognition  facebook  facts  fail  failure  fakeweb  faq  fastercsv  feature  features  fed  feed  feed-aggregator  feedback  feynman  ff3  ffffound  ffh  fifo  filetype:gif  filetype:pdf  filetype:png  film  filter  finance  financial  find  finder  finland  fire  firebug  firefox  first-principles  fitness  flare  flash  flask  flat-design  flickr  flights  flow  focus  fold  followers  font  font-editor  font-face  font-face-compatible  font-stack  fonts  food  footer  forecast  form  form-authentication  format  forms  forum  framework  frameworks  franchising  francis-chou  fraud  free  free-cash-flow  freedom  freelance  freelancing  freemium  fruugo  fun  functional-programming  fund-managers  funding  funds  funnel  funnel-optimization  funny  furniture  future  gadgets  gallery  game  game-development  game-mechanics  game-theory  games  gdb  gem  general  generalist  generator  geocoding  geoff-gannon  geolocation  german  germany  git  github  gitosis  gladwell  global  global-investing  globalization  glyphs  gmo  go  goal  goals  golang  gold  golden-ratio  google  google-adsense  google-analytics  google-api  google-authenticator  google-chrome  google-maps  gotcha  gotchas  government  gradient  gradients  graham-dodd  grammar  graph  graph-database  graphics  graphs  grid  grids  groupon  growth  growth-hacking  growth-investing  grunge  gs  gtd  guerilla-marketing  gui  guide  guidelines  guru-investor  guru-investors  gurufocus  habari  habits  hack  hacker  hacker-news  hackernews  hacking  hacks  happiness  harald-harb  hardening  hashicorp  headlines  health  healthcare  hedge-fund  hedge-funds  hedging  high-quality  highlighting  hire  hiring  histogram  history  history-repeats-itself  hitwise  hn  holdings  home  hosting  house  housing  housing-bubble  hover  howard-marks  howto  html  html5  http  https  hue  humor  hussman-funds  i18n  ia  iama  iceland  icon  icons  ideas  idiots  ie6  iframe  ikea  illusions  illustration  illustrations  illustrator  image  images  imap  immutable  improvement  in-place-edit  income  index  index-funds  india  indicator  industry  infinite-scrolling  inflation  influence  infographics  information-retrieval  ingress  inheritance  innodb  innovation  inspiration  installation  insurance  integration  intelligence  intent  intention  interaction  interaction-design  interest-rate  interesting  interface  interior-design  interleaving  internationalization  internet  interview  interviews  intranet  intrinsic-value  introversion  introvert  inventory  investing  investing-books  investing-checklist  investing-process  investment-books  investment-checklist  io  ios  ios-design  ios-development  iotop  ipad  ipad-development  ipfw  iphone  iphone-design  iphone-development  iq  ir  ira-glass  italy  itc  itulip  itunes  j2ee  jack-byrne  jaggies  james-montier  japan  jason-zweig  java  javascript  javascript-frameworks  jboss  jeff-bezos  jeremy-grantham  jim-cramer  jnj  jobs  joel-greenblatt  john-mauldin  john-paulson  john-resig  join  joins  jonathan-ive  joseph-piotroski  journal  journalism  jquery  jquery-plugin  js  jsconf  json  jsonp  just-in-time-learning  jvm  jwt  k8s  kafka  kaggle  kanban  kelly-criterion  kelly-starrett  key-value-database  keyboard  keyword  keyword-research  keywords  kids  kill  knowledge  ko  korea  krugman  kubernetes  l  lab-color  language  lateral  law  layout  leadership  lean  lean-startup  leaps  learn  learning  lehman-brothers  lemons  lessons  lessons-learned  lessons-learnt  lets-encrypt  leverage  li-lu  library  life  lifecycle  lifehacks  light  limit  linear-regression  linguistics  linkbuilding  links  linux  list  lito-teiada-flores  local  localstorage  locking  logging  logic  logo  logo-design  logos  look-through-earnings  low-quality  lsi  lua  maboussin  mac  mac-development  machine-learning  macroeconomics  macruby  magazines  maintenance  make  makeover  management  map  mapping  maps  mark-boulton  market  market-timing  market-valuation  marketing  marknadsföring  markov  markov-chain  markup  martin-fowler  mashup  master-slave  matematik  materialism  math  mathematics  mcp  media  media:document  media:image  median  mediocrity  meditation  memcached  memo  memory  memory-leak  memprof  men  menu  mercurial  messaging  metal  metaprogramming  metrics  metrics-driven  michael-burry  michael-lewis  micro  micro-frameworks  microcopy  microformat  microisv  microlibrary  microservice  microservices  microsites  middleware  migration  mind  mindfulness  mindhacks  mindset  minimalism  minimalist  minimialism  mistakes  mithril  mkl  ml  moats  mobile  mobile-design  mobile-development  mobile-marketing  mobility  mock  mockup  model-thinking  modsecurity  modular  mohnish-pabrai  momentum-investing  monad  monads  money  mongodb  mongomapper  monitoring  mood  mood-board  moon  motion-ui  motivation  motley-fool  mouse  movie  movies  msft  msn  multi-tenant  multi-variate  multiplexing  multitenancy  multivariate  music  mutable  muv2  mvc  mvp  mysql  myths  n95  name  name-recognition  named_scope  names  naming  nap  natural-gas  navigation  negotiation  network  networking  neural  neural-network  neural-networks  new  news  newsfeed  newsletter  newsletters  nginx  nil  nissan  nlp  nltk  nmap  no  noam-chomsky  node.js  noframework  noise  nokia  nomad  norbert-lou  nosql  notation  notes  npm  ntlk  null  numbers  nyhetsanka  nytimes  oaktree  oauth  objective-c  office  oil  omx-30  online  oop  open-allocation  open-source  openid  opensearch  openssl  optimist  optimization  optimize  options  oracle  ostk  osx  osx-development  outsourcing  overthinking  owner-earnings  p/e  package-design  packaging  page-load-time  pagerank  painting  palette  paper  papers  paranoia  paranoid  parenting  parse  parsing  partnering  passion  patience  patio  patrick-byrne  pattern  patterns  paul-graham  pay  payment  payment-gateway  payments  pb  pdf  peepcode  pem  penetration  pentesting  people  percentile  perception  performance  perseverance  persuasion  persuasive  pessimism  pessimist  peter-schiff  peter-thiel  phantomjs  philip-fisher  philosophy  phone  phonegap  photography  photos  photoshop  php  physics  pictures  piotroski  piotroski-score  pitching  pixel  pixel-fitting  pixels  pizza  pki  pkx  plugin  plugins  plungins  pmts  podcast  podcasts  politics  polypage  popular  portfolio  portfolio-weight  porting  posters  postfix  postgres  postgresql  ppc  pr  practice  practices  prediction  prem-watsa  presentation  presentations  presidential-cycle  prevention  price  price-comparison  price-earnings  price-to-income  prices  pricing  primer  principles  print  prioritization  probabilities  probability  problems  process  procrastination  product  product-classification  product-development  product-management  productivity  productwiki  profiling  profitability  programming  project  project-management  promotion  propaganda  prototype  proxy  psychology  publishing  punch-card  punch-card-capital  push-up  pvc  python  quality  questions  queue  quiet  quirks  quiz  quora  quote  quotes  rabbitmq  racing  rack  rack::cache  rails  rails-core  rails-rumble  rails2.3  rails3  rake  ranking  rant  react.js  read  reading  real-estate  realestate  realtime  recession  recipe  recommendation  recommended  recovery  recruiting  red  reddit  redesign  redhat  redis  redlock  refactor  refactoring  reference  reflections  regex  regression  regulation  reinsurance  relationships  release  reliability  religion  remote  remote-jobs  remove-background  rent-vs-buy  renting  repair  reparation  reporting  research  resource  resources  rest  resume  retailing  retention  rethoric  retry  revenue  review  reviews  revisit  reward  rewards  rgba  rhythm  richard-feynman  risk  rmm  rnr  robert-shiller  rocchio  roi  roic  route  routes  routing  royfielding  rspec  rss  ruby  ruby-debug  ruby-styleguide  ruby-toolbox  ruby1.9  rubygem  rubygems  rubymotion  rubyonrails  rules  running  rust  s3  saas  sales  sales-safari  sample  satisfaction  saul-bass  scaffold  scala  scalability  scale  scaling  scams  school  science  scion-capital  scm  scope  scoping  scrape  scraping  screencast  screencasts  script  scripting  scrolling  scrum  sd  search  search-engine  search-engines  secularism  security  security-checklist  segmentation  selection  self  self-compassion  self-confidence  self-esteem  self-improvement  self-promotion  selling  sem  semantic  semler  seneca  sentiment  seo  seo-checklist  seomoz  series  server  servers  seth-godin  seth-klarman  setup  shapes  sharding  sheep  shiller  ship  shld  shopping  shortcuts  shoulda  showcase  shy  shyness  side-project  sidebar  sidekiq  sifr  signing  signup  sigterm  silver  simplecsv  simplicity  sinatra  sinatra-alternative  single-founders  site  site-builder  sitemap  sivers  sketch  ski  ski-racing  ski-technique  skills  sla  sleep  slides  slideshow  slow  slow-programming  snippet  snippets  sns  soa  social  social-media  society  socrates  software  software-development  sound  south-korea  sovietunion  spain  spatial  speaking  speed  spi  spider  spinoff  spinoffs  splatter  sport  sports  spreadsheet  sql  sqlite  sqs  squat  ssh  ssi  ssl  standford  startegy  startup  startup-checklist  startup-ideas  startups  statisics  statistics  steak  steve-jobs  steve-krug  steve-yegge  stock  stock-market  stock-photo  stockphoto  stocks  stoicism  store  strategy  streaming  stretching  string  structure  study  studying  style-guide  subscription  success  suggestion  summarize  survey  svenska  svm  swap  swearing  sweden  swedish  swift  swimming  swipe  swipe-file  syntax  sysadmin  sökord  table  table-tennis  tactics  taguchi  talent  talk  taste  td-idf  tdd  teaching  teams  technique  technology  ted-ligety  ted-weschler  templates  tennis  test  test-driven-development  testing  test_spec_on_rails  text  text-analysis  text-classification  text-extraction  texture  textures  theme  themes  theory  thepiratebay  thieves  thin  thinking  this  thor  thought  thoughtworks  threading  threads  three20  throttle  tig  tiled  tim-ferriss  tim-ferriss._bodyweight  time  time-management  timeline  timemanagement  timing  tip  tips  titanium  tls  to-read  todo  tog  tokyo-products  tokyo-tyrant  tom-gayner  tool  tools  tooltip  tooltips  toread  torevisit  tosite1  totest  totry  tourism  toview  tracking  trading  traffic  training  training-program  transaction  travel  travel-search_flight-search  trends  trick  tricks  trust  tsco  tumblr  tuning  turnover  tutorial  tutorials  tv  tweedy-browne  twitter  two-factor-authentication  type  typography  ubs  ubuntu  ui  ui-design  uitabbarcontroller  uitableview  unconventional  underscore.js  unicode  unit  unit-testing  university  unix  unread  url  url-design  us-banks  usa  usability  user-acquisition  user-experience  usertesting  utf-8  utf8  ux  ux-design  valuation  value  value-investing  value-investor  value-investors  valueline  values  Value_Investing  varnish  vc  vegetarian  version-control  versioncontrol  versioning  vhosts  vi  vic  video  videos  viewed  vim  vimrc  vintage  virtual-hosts  visual-identity  visualization  vitaliy-katsenelson  voice  vpn  vps  vulnerability  wall-street  wallpaper  war  warrants  warren-buffett  warrent-buffet  waterfall  wealth  web  web-design  web-design-checklist  web-development  web-framework  web-frameworks  web-marketing  web-scraping  web2.0  webapp  webapplication  webddesign  webdesign  webdesignt  webdesing  webdevelopment  webframework  webhosting  webservices  website  webview  weebly  weighting  wellness  wfc  whatsapp  whitespace  widget  wiki  wikipedia  windows  wine  wireframe  wireframing  women  wordpress  words  work  worker  workflow  working  workout  writing  wsgi  wtm  wu  xco  xcode  xml  xml-parsing  xp  xss  y-combinator  yahoo  yale  yamldb  yard-sign  ycombinator  yes  yoga  youtube  zentest  zookeeper  _why 

Copy this bookmark:



description:


tags: