351 karma · joined October 18, 2008
previously cloudflare, dropbox, bebop, simpler, tinyco, macquarie, ibm, mit
Obvious pieces to me appear to be (1) roles and auditability (2) end-user front-end (3) filesystem interface & associated ease of access for various services. But I'm not an expert!
Therefore, you should avoid using *-device-width, since the
page won’t respond when the desktop browser window is
resized.
GMail, Facebook, New York Times, and lots of other smart folks don't show their mobile-web versions if you make the browser viewport very small. Their sites have min-width ~980px when viewed on desktop.I imagine this is because (a) their mobile sites use different interactions that require different DOM and JS, not just different CSS styles, and/or (b) those different interactions might not be appropriate on desktop even if you shrink the viewport and/or (c) it's confusing for the site to work differently when you resize your window and/or (d) they don't want to send unused JS/DOM to devices that aren't going to use it.
Any thoughts, kinlan?
Perhaps people are interested in watching some awesome founders speak.
"Assessing the security of software via the question "can we find any security flaws in it?" is like assessing the structure of a bridge by asking the question "has it collapsed yet?" -- it is the most important question, to be certain, but it also profoundly misses the point. Engineers design bridges with built-in safety margins in order to guard against unforeseen circumstances (unexpectedly high winds, corrosion causing joints to weaken, a traffic accident severing support cables, et cetera); secure software should likewise be designed to tolerate failures within individual components. Using a MAC to make sure that an attacker cannot exploit a bug (or a side channel) in encryption code is an example of this approach: If everything works as designed, this adds nothing to the security of the system; but in the real world where components fail, it can mean the difference between being compromised or not. The concept of "security in depth" is not new to network administrators; but it's time for software engineers to start applying the same engineering principles within individual applications as well."
http://www.daemonology.net/blog/2009-06-24-encrypt-then-mac....
Douglas Hofstadter wrote a good piece of satire explaining why it's oppressive by s/man/white, etc: http://www.cs.virginia.edu/~evans/cs655/readings/purity.html
Contrary to what you say, "they" was used as the singular neuter pronoun for a long time, until a concentrated effort to force it out of use in the 1800s. Some examples from a previous thread: https://news.ycombinator.com/item?id=6824352. Some history here: https://en.wikipedia.org/wiki/Singular_they
Given it's possibly (likely) ostracizing and there's nothing categorically wrong about using "they" as a singular neuter pronoun, I think you're on the wrong side of this.
People should certainly stop fighting; the answer is to just roll with "they".
I grew up taking great pride in "correct" English usage, but I now think insisting on gendered pronouns causes harm without any tangible benefit.
...
You can't get a job that requires a Github OSS history. You're severely disadvantaged in job hunting when OSS contributions are a major metric.
If people tested your suitability for a job by pair programming with you, or looking at code samples, you'd look just as good as someone who contributes to OSS. But because OSS is an important metric, you're disadvantaged.
Does this make clear how it's discriminatory?
- Use Vagrant and some bootstrap scripts (or Docker) to make giving them a dev environment easy
- Get them to use a git GUI like SourceTree (free & good: http://www.sourcetreeapp.com/)
- Build a workflow around pull requests / review branches a la github/bitbucket/gerrit so you can have them submit changes but an engineer reviews/verifies before it's merged.
In general, empowering them to do this is an investment in the future and well worth it.
If the initial $400k bought 10% of the company, USV would need to buy 10% of each subsequent round to maintain their ownership, which would be ~$12.5M. That's ignoring varying definitions of pro rata rights, other dilution but probably a good lower bound.
If the initial $400k bought 20% (more likely for Tumblr in 2007), USV invested ~$25M to keep their ownership stake.
Fred seems like the kind of guy who always does his pro rata, so I'd imagine those numbers are closer to reality.
The clearest takeaway is: if you want to reduce the disk or memory footprint of your DB, you need to figure out what tables/rows/columns are consuming the lion's share of the space (there's almost always one column that's way worse than the rest) and figure out how to change your app logic to store much less data in that column.
The OP's lessons learned apply no matter which DB you're using!
It's also tough for some engineers because there's usually a very clear product vs engineering divide -- you're implementing stuff other people come up with, and when they change their minds you throw it out and do it again a different way.
That said, making games is also a ton of fun and is a great way to be exposed to a lot of interesting engineering challenges. If you like games and you can put up with the issues above, you should definitely consider it.
Search trees, dynamic programming, and reducing an algorithm's worst-case runtime are about as "classical" as you get; that's why they're in every beginning algorithms textbook.
The algorithmic problems I deal with are things like:
- Why the hell is this API call running O(n*m) SQL queries? Can I tweak my logic and use of the ORM get it down to O(1)? The ORM doesn't let you forget about the underlying algorithms, it just makes it easy for you to shoot yourself in the foot if you don't understand them.
- Why is my single SQL query so slow? DB optimization is very much a "classic algorithmic problem", in that you need to understand the operations the DB performs and optimization is reducing its search space / # of operations.
- We're using too many jQuery pseudoselectors like ":hidden" and they're causing framerate drop on a particular page; can we use some dynamic programming / memoization techniques to dramatically reduce use of pseudoselectors?
- We need to figure out what font size will allow a piece of text to fit within a container on a PDF, but the bounds of the font (space consumed) don't scale perfectly linearly with the font's point-size. Finding the best fit is a search problem!
- And that's not even getting into infrastructure scaling issues! Do you know why Vertica might be a better fit for your data set and end user needs than Hadoop? If you understand the difference between an ETL approach and a MapReduce approach to data analysis, you're thinking about algorithms!
I spend a meaningful amount of time on "classical algorithmic problems" while doing frontend and backend web development, even if I've never had to re-implement mergesort.
However, there's an optimal amount of humility and self-doubt that people are looking for. Deviate too far away from it, and people run for the hills. It's just another pattern-matching tool.
The hard part is finding those people :)
> When I was raising my first round, it fell apart because
> an A-list investor who had given us a verbal commitment
> backed out. He did this because he had heard from his
> friend, who I had went out for beers with, said that we
> were struggling and unsure of what we were doing. I don't
> blame the investor for backing out and I don't blame his
> friend for relating his honest opinion he took away from
> our conversation. But I will tell you that I now never
> share my struggles with anybody I think might be even
> remotely close to affecting my future opportunities. And
> in San Francisco, that pretty much means everybody.
It's not a problem of attitude, or perspective. It's that investors and potential hires and partners really want to make the best choices for themselves, and that means working with companies that are doing great and founders who are driven and aren't going to flame out or give up, which is perfectly understandable.And so founders who want to have the best chances at "winning" have to create an aura of momentum, of inevitable success, around themselves and their companies. That's perfectly understandable too.
How would you even fix that? How do you even define the problem you're trying to fix?
$> diff @coreyhaines-apology @steveklabnik-apology
< grace
---
> sorry if i made you upset
A side-by-side example we can all use to learn how to apologize better.[1] http://programmingtour.blogspot.com/2013/01/im-sorry.html
That's the point of the post, and it's an impressive achievement. Read Tony Hsieh's (Zappos) "Delivering Happiness" if you want to appreciate how hard it is to build a business on drop-shipping, and how hard it is to move to full inventory.
I realize this isn't a battle worth fighting, but everyone needs to stop being pedantic over the use of the word "pivot". It had meaning before Eric Ries used it, and it will continue to have intrinsic meaning no matter how narrowly it's defined in the context of the Lean Startup movement. The business changed directions. Let the man call it a pivot.
What if the employees were founders with equal shares of the company, and they launched a product and it fell over? Would you blame them for pulling an all-nighter to scale it up in the face of unexpected traffic? Should they give up at 10pm? Midnight? 5AM?
If they're not equal partners, should they immediately give up? What if they own 10%? 1%?
What if they don't have much on their resumes and are excited to make this a successful project, instead of a laughingstock that fell over in the face of scaling challenges? What if they care about each other and want to make this a success for their friends and coworkers?
What's the function into which you plug all these variables and decide when to go home?
It's not black-and-white, pun intended, and if you think it is you're being obtuse. I hope they feel happy and like they accomplished a lot in the face of long odds, and you should too.
If your data model is built on top of an RDBMS, learning how one works is the best first step to designing good data models!
A venture investor can't sustainably direct opportunities to multiple vehicles that have the same/overlapping mandates.
However, one of the reason this often works for small startups is that we hire our friends. From among my friends, I find the people whose abilities I know best, who I trust the most, and who I'm confident I can work well with. Thus I hire friends, thus I am happy spending time with them.
But yeah, I've worked plenty of places where spending 10-15 days in another country with my coworkers would've been a nightmare. And once a small startup becomes a 50+ person company, this gets really really hard to do.