HNHacker News
TopNewBestAskShowJobs

nsfmc

1,059 karma · joined January 5, 2010

http://nsfmc.tumblr.com and also http://generic.cx

[ my public key: https://keybase.io/nsfmc; my proof: https://keybase.io/nsfmc/sigs/e9YAe_1k0aJVxOOadbxGJm6s_cFKeMeuWay_ocZyl50 ]

Verifying my Blockstack ID is secured with the address 12yroXUpFaXP4bL9wxw3LARRX8Be8HYZui https://explorer.blockstack.org/address/12yroXUpFaXP4bL9wxw3LARRX8Be8HYZui

submissionscomments
nsfmc··on Reboot. Relaunch. Redesign. Pivot. Sunset. Shutter. The Knack, a web app, story.
The conflict that's weirdest for me is that he internally conflates mindshare, educational reform, etc with him earning cash money. It's as if he believed there was a direct correlation between his rising income and teachers' decreasing entitlement.

And now that he hasn't earned any significant cash, he can claim that teachers/education have a warped sense of value... right.

nsfmc··on Authoring eBooks
aside from this looking like a scam, the preview for this title actually focuses on the most useless part of authoring ebooks: building social media hype.

if you want to learn to code an ebook, go to http://blog.threepress.org/ which is a pretty satisfying mix of technical and 'get it done.'

nsfmc··on Lessons from a Design Legend (a before-and-after)
i think the takeaway here is that the (100% subjective) design of their site benefited from (again, subjectively!) somebody that wasn't slavish to these sorts of prescriptives (although perhaps slavish to their own aesthetic, but whatever).

the reason startup websites look like the 'before' is because for whatever reason, everyone's told that there's this certain blue that projects confidence and whatever. the background is white and the text is #444 because of another mandate from heaven (h&fj) and so forth.

The reality is that while maybe black on 'weird textured background' may be technically harder to read than black on white, it's nonetheless legible. Somebody made the point that what really matters is whether this new site converts better. Whatever.

At some level, design is a matter of taste. They like their new site, you don't. Agree to disagree, but it's not like these things are 100% set in stone. I mean, everyone used to think fraktur was highly legible but something (tschichold?) eventually changed. Who knows.

It's all fashion (subjective).

nsfmc··on Spotify Sued For Patent Infringement Just Weeks After Entering US Market
as a contrast, trademarks are handled in what most people would consider a 'commonsense' way, where it is required that the trademark owner actively use the mark for some period of time and also police that others aren't using or abusing the mark in any way.[1]

Obviously, Trademarks and Patents are two different beasts, but the mechanism for enforcing and protecting trademarks i think is usually along the lines that most people consider fair, which is that the trademark is used to protect an interest for as long as that interest is active (and semi-vigilantly policing its mark) and is using that trademark to protect its own notoriety.

Obviously, trademarks and patents are two different beasts. But (and this is why i'm repeating myself) my point is that you don't have to get rid of these sorts of laws. Trademarks are equally nebulous, but their model seems to me a huge success in the world of intellectual property management whereas (software) patents seem to be a stickier situation altogether.

just my two cents, because again, i don't think we should necessarily get rid of software patents, but i think that thinking of them using this old framework has been problematic in a way that trademarks haven't been (despite similarly ridiculous, yet defensible, use cases, i.e. trademarking 'tiffany blue').

[1]: http://en.wikipedia.org/wiki/Trademark#Maintaining_rights

nsfmc··on What to Say To Someone Who is Sick
Back in april, The Awl published a list of don'ts[1] and then last week, some dos[2], many of which conveniently appeared in this nyt piece.

[1]: http://www.theawl.com/2011/04/some-awesome-things-to-say-to-... [2]: http://www.theawl.com/2011/06/actually-awesome-things-to-say...

nsfmc··on War on Urchin
Nobody is suggesting we abolish analytics as a practice, but it's misrepresenting the issues to suggest that content providers will die a sad death if they lose out on whatever benefits those querystring params provide.

Content providers already have feedburner for rss metrics (also, now by google) not to mention google analytics (nee urchintracker) and good ol' fashioned server access logs (which you can analyze with urchin proper (or mint, or what have you)).

I can see from a gut-reaction standpoint how you could write what you did, but aside from gawker (who notoriously uses analytics, c.f.[1]), how many legitimate content providers use analytics as anything other than a rough barometer for trends? The problems you describe are problematic for certain types of tabloid publishers (drudge report, ny post, etc.), but they are hardly addressed by a handful of querystring parameters.

[1] http://www.newyorker.com/reporting/2010/10/18/101018fa_fact_...

nsfmc··on Loren wants to work at Airbnb
So, while this is novel and all, it seems to me that these "resume 2.0" applications indicate a real failure of systems like "jobvite" or whatever backend air bnb is using to simplify their hiring decisions.

On HN we've been seeing a bunch of these hyper-targeted reverse resumes in the past year because I suspect people have gotten tired of submitting waves of resumes and hearing nothing back within a reasonable timeframe from companies that advertise open positions on their websites but never, for whatever reason, respond.

What i'm seeing here, is that traditional recruiting practices are failing in some way because priority is achieved by a) making it to the hn frontpage which b) gets pg to vouch for you. Which is basically no better (or efficient) than the traditional method of hiring folks that you've networked with via friends/school/etc or what have you.

I understand that historically those online resume systems are a real losing proposition for applicants, but this suggests that they're more like a black hole rather than a mail slot.

Again, this is a critique of these automated systems which seem to be visibly failing because people are going out of their way to subvert them in order to achieve any success.

nsfmc··on Build Better User Interfaces with Patternry
As a general complaint, i feel like most of these "web/graphic design pattern libraries" miss the point of christopher alexander's original 'pattern language' idea, which specify cataloging as only one part of actually developing a larger, expressive, design language.

Still, the problem with these as actual 'design patterns' is that they're often wedded to specific implementations rather than the tasks they're trying to solve. I.e. "Endless Scrolling" (to pick an example) is not a pattern, it's a solution to a larger problem (e.g. user retention, communicating large datasets, immersive experience, &c).

The point being that if you're talking about design patterns in terms of the implementation (web forms, 404 page) you're restricting your pattern language to specific solutions rather than understanding what problems you are actually trying to solve (i.e. I WANT TO GIVE YOU MONEY, WHERE DID THIS GO?, respectively).

Although these sites often address these problems, they do so as a second level consideration rather than the primary atom of their pattern language, which diminishes their power. This is generally part of the problem with how design patterns are discussed and understood, which is a bummer, because it promotes the perception that they are 'reference catalogs' rather than 'languages for addressing problems.'

edit: fixed ambiguous language in last sentence

nsfmc··on Top Programming Fonts
:)
nsfmc··on Top Programming Fonts
Courier has tons style (i [heart] ny!) and see also [Courier Sans](http://lineto.com/The+Fonts/Font+Categories/Text+Fonts/Couri...), and so does verdana.

I know, i know, it's verdana, the scourge of late 90s web design but it still has style (doesn't everything?), it's just that verdana has come to encompass 'corporate' and 'default' and 'websafe' in much the same way that the verizon logo encompasses 'design by committee.' Verdana's got some serious baggage, but i would hardly say it's soulless.

And in any case, it's pointless to argue this issue, but, i dunno, ten or twenty years from now, maybe we'll look back and feel differently about Verdana (in much the same way that people are warming up to Optima (the inspiration for letter gothic) again after what appears to have been a 20 year hiatus).

nsfmc··on Top Programming Fonts
There's a few things that i think you're reacting to (i think, because i've had similar feelings, but i could totally be wrong).

The first is that Verdana is really nicely hinted, which means that, unlike most other fonts out there, Verdana has the advantage of always technically looking sharp.

The second is that Verdana is mostly monolinear, like Courier or Andale or any of traditional monospaces, there's only the slightest bit of stroke variation (most of it optical), so you get style but you don't get the distraction (onscreen) of stroke modulation

The third is that most proportional fonts have a comparatively larger pitch, so you get more characters in each line, which is also what you start seeing in 'next gen monospaces' that seem to make better use of their allotted horizontal space (and seem less wonky in general).

The last, and arguably most important, is that almost all proportional fonts (verdana included) have got style. It's hard to emphasize enough that most of the arguments for Consolas or Inconsolata or Liberation or ____ are largely due to the fact that those fonts have an overt aesthetic agenda, which is sometimes not apparent in first-gen monospaces (although, to be fair, they and their brethren are stylized, it's just that we've grow numb to it)

I'm personally a monospace sorta person (i like fedra mono)--there are some really nice (alas, non-free) monos out there to choose between that are more fun to use than the more stoic traditional monospaces. Part of why proportional fonts are appealing is that we rarely need monospace fonts anymore: their use is largely vestigial (and aesthetic-driven) and also that many programming languages (python et al) often have highly literate code that benefits from typefaces designed with legibility in mind.

So i'm just sayin, i respect where you're coming from, but don't dismiss monos out of hand. There are nice ones which are coincidentally monospace, but aren't as frumpy or harsh as the monospace fonts that are typically advertised as 'best programming fonts.'

nsfmc··on CS Education: The Deep End of the Pool
this reminds me, although tangentially, that i saw a chapter of a book once that was basically dedicated to dissecting all the boilerplate in a standard C "hello world" program. It would go over details about argv and so forth and then introduce wrinkles into the program and see if you caught what they were.
nsfmc··on CS Education: The Deep End of the Pool
Ok, so lots of things to tackle here:

1. The commenters seem to imply that java is probably not the most appropriate language for cs1, where syntax considerations often overpower practical concerns.

2. Bright students that 'get it' are not the baseline, they're the exception. It's the other, intro level students that the class/recitation/curriculum should be catered towards.

3. Many (if not all) fields of study 'get hard' in college (i.e. physics, pure math, etc). The problem in this case is one of students being improperly tracked (i.e. curriculum failure).

4. Intro CS courses vary wildly in expectations and ideology. This set of courses seems to focus on 'practical' considerations that are probably better suited to a separate 'software design' course. It's possible that this 'survey' is actually too broad and not focused enough.

5. The music analogy is cute, but fails to consider that intro cs courses typically only succeed (and attempt) in getting students expressive (i.e. jibbering toddler) rather than elegantly fluent. This is why many post-cs1 students generally can solve problems using their new toolkit, but often solve them naively (it's like a toddler that says the wackiest things)

6. Confusing "programming ability" with "computer science" is problematic overall, i don't know that anyone would want to spend four semesters "programming" but i've know a bunch of people that enjoy the theory=>pracitce :: state machines => regular expression 1-2 punch. You can do quite a bit of fascinating cs in a logic/philosophy class as well as in a complexity theory class without ever touching a computer. I know, heresy, but it's true.

I think finally, the issue here is confusing "computer science" with "software engineering." I think java's a great language for software engineering, it's got all the stuff builtin to teach those concepts, but as a language for sketching, i'd probably use python.

People often make this mistake in teaching javascript because built in is the ability to manipulate the dom which, while eminently useful, is also basically a whole separate language/paradigm mess than 'javascript neat.'

And this is a hard question to be confronted with in any case: what are you teaching and why are you teaching it? Neither of those seem to be fully addressed in the author's description of cs1/2.

nsfmc··on Android To Surpass Apple’s App Store In Size By August
Arguably, the most valuable portion of the article:

    Evidently, there’s always the question whether this matters at
    all. After all, the bulk of applications that are available for
    both platforms don’t see much traction anyway, so how relevant 
    it is whether there are 100,000 apps or 200,000 apps that are 
    rarely, if ever, downloaded by anyone?
nsfmc··on "Take a Photo; It’ll Last Longer"
you can always use photos from your camera roll in instagram, making it a post-process only app. Or you can take photos in instagram and (unfortunately) not have a 'raw' file left.
nsfmc··on Geohot Chimes In
"in the clear over ssl instead of hashing them"? am i missing something here? is ssl insecure? is there some way to charge a credit card that doesn't actually involve sending the number to anybody?
nsfmc··on On Becoming a Math Whiz: My Advice to a New MIT Student
another, which may be a hard pill to swallow if you've been 'good at math' all your life is:

- go to office hours and don't be afraid to ask for help from your TA and classmates.

nsfmc··on On Becoming a Math Whiz: My Advice to a New MIT Student
the adage i learned in grad school for this was

    work smarter, not harder.
nsfmc··on Joel Spolsky: Lunch
i think part of what's going on here is that everyone is taking the position of disliking a mandate to eat with your coworkers, which is arguably a troubling thing.

When i interned at pentagram's ny office, one of the nice things was lunch, which was served tue-thu. It was totally optional and you could eat with members from your team or others, whatever. It sounds similar to what you're describing and i thought it worked really well, i liked it, and it always bummed me out a little when it wasn't there on those bookend days. sometimes i'd be busy during lunch and there might be something waiting in the kitchen or i'd go out to eat with a friend.

I don't think it really works if you force this sorta thing, but if the food is compelling (i really liked the cheese, personally) and everyone's on good terms, i think the staff lunch works really well. the exception here is if there's a toxic team member or individual, which i think really sours the experience and which many people may be also reacting to.

When i worked as a line cook, staff lunches were also equally gratifying, but for entirely different reasons.

nsfmc··on JQuery Conf 2011 – jQuery Keynote by John Resig
it's an o'reilly user group link where you indicate your user group affiliation and then you select a book and they get back to you.

It's not actually a url for a specific free ebook and it feels sorta wrong to attempt to exploit it.

nsfmc··on Jquery.com uses only 34% of jQuery
actually, i think the author does understand this and in the case of stackoverflow, i think he's obliquely making the case that many of the effects could otherwise be achieved with css without creating the performance and memory hits you might get from using $().

in most cases, js performance is a non issue, but when it is, it's interesting to see how and where you can optimize, which is really what his add-on (again, obliquely the real point of the post) seems to target.

nsfmc··on Why PHP Was a Ghetto
I think the other thing that's missing here is that there's nearly often a conflict between the actual behavior of a function and the overly optimistic documentation which is then amended by a series of caveats.

I think i could forgive php more for behaving (and being named & structured) wildly inconsistently were it not that the documentation tries to make up for this by pretending this is actually not the case.

So not only do you have this issue where the behavior of a function may be erratic but the documentation attempts to gloss over the issue by describing a function's most optimistic outcome rather than its actual behavior. Any behavioral caveats are left in the Notes section which in any other language documentation is reserved for "not thread safe" or "uses an easily guessable seed" or "execution blocks network access". Instead the Notes are used to explain "optional arguments not included change the behavior of this method to behave like this other one, but give no warning or otherwise visible indication of error."

The whole "php is defensive programming" statement holds because you can't trust the documentation to be upfront about inconsistent behavior.

nsfmc··on [dead]
my other life lesson here is: get a job, at least part time, until you can afford to reliably freelance. and when you take on a project, don't forget to get a contract signed with a pay schedule immediately before working, especially if you need the cash soon.
nsfmc··on You Don't Know JavaScript
an aside: i have been asked three times in separate technical interviews (several years apart even) how to leak memory in java (once in python).
nsfmc··on You Don't Know JavaScript
So despite the mostly vapid nature of this article one thing called out to me:

"Given the lax nature of JavaScript, it's easy for your application to spiral into a mess of unmaintainable spaghetti code."

Let's not forget: it's entirely possible to create a mess of unmaintainable code in any language. Or, "guns don't kill people, people kill people"

The other half of this complaint i think is somewhat elitist (unwittingly so?) and it seems to do with the notion that because there is a such a low barrier to entry, that much js code is cargo-culted, but i've seen this from developers in every language. What I find even worse than cargo-cult code is Pattern Zealots going about specifically coding up Pattern X in javascript. It's like they studied Design Patterns but the point of it just went over their heads.

Knowing the principles of software development doesn't prevent you from making ridiculous decisions[1]. It seems like everyone wants checklists of coding standards or something for measuring code quality / standards compliance these days in js. But these are hollow measures if the code behind the module/black box/library is just plain wrong.

Maybe i'm missing something here, but why is this article getting voted up?

[1]: http://stackoverflow.com/questions/1635800/javascript-best-s... (found when googling 'javascript singleton')

nsfmc··on Modern JavaScript
I understand the desire for structured packages, but even in languages like python that have 'the python way' or what have you, there are still plenty of packages that don't quite fit. This isn't a problem with python, it's a largely philosophical/religious issue that has much to do with the idiom or mindset of the package (or likely the maintainer) at hand. But still, i don't see this as a problem that javascript has to address rather than say, a problem that libraries have to address.

You see this all the time in even jquery packages: are they $.pkg.method(elts) or $(elts).pkgmethod() or is it $(elt).pkgmethod(spec) or .... and so forth. Part of it is a matter of taste even if sometimes it goes against 'the jquery way.' Again, this is so religious that it's often not even worth fussing over.

Blaming browser vendors or our ecma overlords for package standards seems like a bit of a straw dog because javascript isn't a package distribution mechanism, it's a programming language. If you want to build apt/npm for browser js via require.js+jquery or your combination du choix, then by all means, but this isn't a failing of the language just as brew failing to install mutt is not a failing of ruby.

Certainly, there's bound to be some overlap in packages, but this happens everywhere and who cares? underscore+jquery seems like a strange example especially when the two are complementary. If the goal is to have a "lightweight core" with "components that deliver specific, isolated functionality" i mean, aren't we there right now? And for where we're not, as mentioned by other commenters, coffeescript and friends certainly seem to be fighting the good fight.

I'm all for innovation, but i could do without "enterprise javascript" (isn't that was es4 was and, i mean, i'm not exactly losing sleep over that decision). For proof positive that we're already getting the 'roll your own' strategy, check out the modernizr 2 beta (or, the less modest jq-ui).

If the point of modern js is that people are working together and optimizing, then yay!! but if the point of modern js is that we need to abide by some static discipline where each function only accepts a single spec object and conforms to some require.js loading protocol then, umm.. thanks but no thanks.

nsfmc··on Flock is dead
Long Live the Browser
nsfmc··on Khan Academy: the bad
yes! exactly! i first thought this internet learning thing was total bunk because my only exposure was mit's ocw and basically i hadn't considered something like KA a few years back. I think that trying to change where and how various stages of the learning process happen so that you can maximize your teacher-time is a great goal.

The fact that you can assign a lecture as homework is amazing, it totally changes the dynamic of what you can do in a classroom. That being said, these tools they're developing seem useful only because they track student engagement with lectures and problem set success rates.

i always thought (and dreamed) that the future would be a better textbook, something really humane and well designed, but this (for lack of a better word) paradigm shift makes a textbook more like a learning journal rather than an immobile one-size fits all beast.

nsfmc··on Adobe Creative Suite now in subscription form
This stuff is all free, and is all fully capable of allowing you to do work. The only things you're going to get with Adobe's products is support for their proprietary formats.

Actually, the one thing i think most people are paying for when it comes to indesign is adobe's type engine, which behaves predictably and also supports the kitchen sink of opentype features. It's easy to dismiss ot support as a convenience function (it is at some level), but it's the killer feature for any typographic application where you want to use the full range of type available to you in the font (family?) you paid oh so much money for.

I once designed using a version of futura that had the small caps & osfs in the glyphs menu (untagged!) and was livid when i had to set nearly a paragraph of text by inserting each one at a time. Since the last time i checked when i was in grad school [1], this was still an outstanding issue in scribus (shaky opentype smcp/dlig/salt support) and it's really the one that kept me from ditching indesign. As it was, i would probably have jumped ship and used latex/xetex had i not been trying to individually rag each line.

It's not like you can't make nice work in scribus, but it may also be more convenient to do it in a program that has solid support (and mostly tuned ui) for the features that many typographers use.

[1]: https://bugs.scribus.net/view.php?id=1413

nsfmc··on Crash Course: Design for Startups
i don't know, i'm a little conflicted here because really, really, i know this is gonna sound stupid but the best way to get good is to make a lot of shit and then, after you don't feel weird about what you made, you show it to people who have taste (or that you value) and get critique.

I think you should design the way that you ______. Do you code? Apply that mindset to your design. Do you just hammer something out or do you try to improve it? Do you look for inspiration from other projects on github? Do you look for inspiration in orthogonal things like architecture or nature or industrial design or _____. Apply that to your design. Apply the same standards from something you're passionate about to your budding design work, it'll show. The more you make this your process the more your design will be your design.

as with all other things, there's a whole lot of cargo cult design where you toss in a grid and you dutifully build up some crazy type hierarchy or you use appropriate fonts or just plop down a müller-brockman layout or a tschichold page proportion or three sizes, two weights of helvetica neue, etc. You can convince yourself this is "correct," but sometimes you're just going through the motions. I've made a ton of absolute crap but sometimes i make something and i'm like "oh wow, that's an actually appropriate use for a grid, man what a total cock up that other project was."

It's very easy to make and parrot the current zeitgeist (just look at forrst), but it's hard to go out on a limb and try to make something that comes from you. It's even harder to make it something that other people will see and say "oh neat, i like that even though it's a little weird," and that's what practice does to you, but it doesn't come overnight, it takes effort, like anything worth doing, like programming or cooking or sports or _____.

The things that make you great in design are the things that make you great in any other field: passion, curiosity, exploration, failure, practice, communication and critique. all in great quantity. this is the moral you see on hn a lot, so it's like preaching to the choir, but go outside your comfort zone and try to make what's in your brain; it's a humbling and rewarding path.

i don't want to knock the post, it's fine, but also keep in mind that not everything needs to look like a startup website. I'm tired of friendly blue all the time, i want to see new designs, i want to see people going on a limb. I guess what i'm saying is: this is design for conversion sake, not for design's sake, and those are two totally different pots of gold.

← PreviousPage 5 of 8Next →