HNHacker News
TopNewBestAskShowJobs

wting

2,962 karma · joined June 20, 2012

io at williamting.com

https://github.com/wting

[ my public key: https://keybase.io/wting; my proof: https://keybase.io/wting/sigs/yTnPQ0DZR5vV9WRhYq8SP7V56pyKc3Z8fMQQE9cADBQ ]

submissionscomments
wting··on Hack Isn't PHP
Using _ as a throwaway variable name is idiomatic in Python, Haskell, and Go. Looks like they're pushing the same idiom in Hack, which I'm ok with.
wting··on A brief introduction to Haskell, and why it matters
> "Functional Programming in C++"

> My pragmatic summary: A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in. In a multithreaded environment, the lack of understanding and the resulting problems are greatly amplified, almost to the point of panic if you are paying attention. Programming in a functional style makes the state presented to your code explicit, which makes it much easier to reason about, and, in a completely pure system, makes thread race conditions impossible.

> I do believe that there is real value in pursuing functional programming, but it would be irresponsible to exhort everyone to abandon their C++ compilers and start coding in Lisp, Haskell, or, to be blunt, any other fringe language. To the eternal chagrin of language designers, there are plenty of externalities that can overwhelm the benefits of a language, and game development has more than most fields. We have cross platform issues, proprietary tool chains, certification gates, licensed technologies, and stringent performance requirements on top of the issues with legacy codebases and workforce availability that everyone faces.

> If you are in circumstances where you can undertake significant development work in a non-mainstream language, I’ll cheer you on, but be prepared to take some hits in the name of progress. For everyone else: No matter what language you work in, programming in a functional style provides benefits. You should do it whenever it is convenient, and you should think hard about the decision when it isn’t convenient.

-- John Carmack (http://www.altdevblogaday.com/2012/04/26/functional-programm...)

wting··on A brief introduction to Haskell, and why it matters
I think that's an overly simplistic view of Haskell's feature set.

For example, garbage collection can be thought as a "big C function implemented as a library." C++'s smart pointers and templates can be thought as libraries, but that doesn't detract from their value as programming language features.

Your argument is a derivative of "in the end everything is glorified assembly."

wting··on DigitalOcean Raises $37.2M From Andreessen Horowitz to Take on AWS
> the interesting thing about the hosting market is the less people pay, the more entitled they feel.

This is not restricted to web hosting, but common human behavior.

I've freelanced as a web dev and wedding photographer in the past. Low paying clients typically demand much more than higher paying ones.

wting··on In Praise of Perl 5
Are you aware of sh? http://amoffat.github.io/sh/
wting··on Programming With Types, Not Tutorials
Are you implying developers should know the inner details of every library used?

Realistically most devs read documentation or Google to get something done. They only dive into the library if the documentation is unclear or something is broken. Reading well written libraries is a good learning experience, but not a requisite to use one.

In Haskell a function's type signature is expressive enough to exist as rudimentary API documentation.

wting··on Servo: Inside Mozilla's mission to reinvent the web browser
I hate when this article of Joel's get cited as an argument not to rewrite anything.

> With that thinking we never get Linux (NeoMinix), tmux (NeoScreen), Clang (NeoGCC), WebKit (NeoGecko), Subversion (NeoCVS), or Vim itself (NeoVi/Elvis/Stevie/etc).

-- haberman (https://news.ycombinator.com/item?id=7288033)

Stuff is rewritten all the time. Servo is not replacing all of Firefox, just an experimental project to replace Gecko by a skeleton crew.

wting··on Servo Layout Engine: Parallelizing the Browser [video]
It's highly likely that will happen anytime soon.

Jürg Billeter created Vala for the sole purpose of building GTK / GNOME applications and the two projects are tightly coupled.

It's not to say that Rust won't have GTK bindings in the future, but it's not a high priority for either Mozilla or GNOME devs and unlikely to displace Vala.

wting··on Netflix performance on Verizon and Comcast has been dropping for months
They sell your debt to collection agencies who harass you until the end of time.
wting··on Why Programming is Difficult
A civilian pilot with 10000 flight his logged is not the same as a fighter pilot with a 1000.

Don't mistake quantity of experience with quality.

wting··on Simple Dynamic Strings library for C
man pages used to be treated with the same reverence, but nowadays nobody seems to bother. I have pretty extensive man pages for some of my open source stuff, but it doesn't seem to help with users downstream.
wting··on The descent to C
The runtime is in C-- but has the option of using LLVM for code generation.
wting··on Why do dynamic languages make it more difficult to maintain large codebases?
That is a problem of weak typing, not dynamic typing.
wting··on Why do dynamic languages make it more difficult to maintain large codebases?
Python's `__dict__` is probably a better example of duplicating Haskell's `derive Show` behavior.
wting··on “We Just Can’t Have You Here”
One of my professors did his graduate work at Yale, and echoes your sentiments about it being a toxic environment.

He stated that Yale's prestige allows the university to garner top researchers and their associated egos. As a result there was significant academic politicking and very little collaboration, at least in the CS department.

wting··on “We Just Can’t Have You Here”
It's a combination of multiple factors.

I go to UT Austin, which has a population size of 75,000 and basically its own city. An on site clinic is a practical measure since it's convenient and handles the simple stuff[1] for the campus body while deferring to specialists or hospitals for more complex procedures.

The clinic is paid through mandatory fees and thus "free". By comparison, visiting another clinic or doctor is less convenient and has a $10-25 copay (more if you don't have insurance).

> Sexual harassment is indeed a problem, here as well, but again I wonder why not go to the police? At least here, it's a criminal offense.

It is a criminal offense, but there is a lot of emotional fallout that the police aren't prepared to handle. Mental health and counseling services are supposed to help victims in these situations, not push them out.

[1]: List of services on page 4 (PDF): http://healthyhorns.utexas.edu/IMAGES/pdf/UHS%20Information%...

wting··on Nokia posts disappointing Lumia sales
The Nexus and Moto family of phones have proven otherwise with prices ranging from $180 - $350.
wting··on What Hard Drive Should I Buy?
If systems are designed with the expectation that hardware can and will fail often, better reliability drives aren't worth the cost as long as cheaper drives are relatively comparable. In addition to cost savings, your system has better robustness when it is decoupled from hardware reliability.

For example, Google's Map Reduce paper has a section on fault tolerance that goes into detail about how they handle the issue of failing workers:

http://research.google.com/archive/mapreduce.html

wting··on Operating Systems: Three Easy Pieces
Malloc is not a syscall.
wting··on Xkcd: Haskell
From my perspective the Haskell community is fairly active and growing. At the moment #haskell has 1100 users tying #python and easily beating out ##c, #c++, #clojure, #lisp, #java, #javascript, and #ruby on Freenode.

John Carmack is exploring functional programming[0], and this is Randall Munroe's second functional programming comic in recent weeks.

[0]: https://www.youtube.com/watch?v=1PhArSujR_A

[1]: https://xkcd.com/1270/

wting··on Eric S. Raymond Unsubscribes from Linux Kernel Mailing List
It's poor form for the author to quote this out of context. Linus can be abrasive, but this is in response to a patch for adding Secure Boot support in the Linux kernel and thus placing Microsoft in a very powerful position [0]:

    Guys, this is not a dick-sucking contest.

    If you want to parse PE binaries, go right ahead.

    If Red Hat wants to deep-throat Microsoft, that's *your* issue.  That
    has nothing what-so-ever to do with the kernel I maintain. It's
    trivial for you guys to have a signing machine that parses the PE
    binary, verifies the signatures, and signs the resulting keys with
    your own key. You already wrote the code, for chissake, it's in that
    f*cking pull request.

    Why should *I* care? Why should the kernel care about some idiotic "we
    only sign PE binaries" stupidity? We support X.509, which is the
    standard for signing.

    Do this in user land on a trusted machine. There is zero excuse for
    doing it in the kernel.

                   Linus

[0]: https://lkml.org/lkml/2013/2/21/228
wting··on Ask HN: How do you do your To-Do list?
Google Keep. I've tried Trello, Any.Do, Evernote, Asana, Hashnote, Wunderlist, RememberTheMilk, etc.

I need something that syncs effortlessly, works on Android / Linux / Mac, and is fast. I used Trello and Any.Do for a couple months each, but eventually got fed up with Trello slow performance on mobile and Any.Do's Chrome extension bugs.

wting··on Best Linux Laptops (2013)
T420's / X220's are the last generation to have 7-row keyboards and also available with IPS screens. The newer generations have 6-row chiclet keyboards with neutered TrackPad buttons. Despite using a rMBP daily for work, the old ThinkPad keyboard is home for me.

In their quest to become MBP replicas, ThinkPads lost their distinguishing features. Now that I've resigned myself to carrying a mechanical keyboard at all times (HHKB), I no longer choose a laptop based on one. I am now exploring alternative laptops after being a loyal ThinkPad customer for 7 years.

wting··on Best Linux Laptops (2013)
T420 and X220 built-in cameras work on Ubuntu 12.04 for me.

Using the fingerprint reader requires adding a ppa and installing a package:

http://www.thinkwiki.org/wiki/How_to_enable_integrated_finge...

wting··on A useful Caps Lock key
I had this problem and solved it like so:

    * OS X: caps lock -> command
    * iTerm: left command (the rebound capslock) -> control
This means in iTerm I need to use the right command key for command shortcuts, but it gives me a convenient control for terminal use. The end result is the same thing as binding caps lock to control on a Linux machine.
wting··on Emacs users are like Terry Pratchett’s Igors
Do you share workstations with your co-workers or do significant amounts of pair programming?

I'm not sure why my work environment should be optimized for a <1% use case.

wting··on Google Removes Vital Privacy Feature From Android, Claims Release Was Accidental
If you have root you can still enable it with market apps.[0][1]

However something like this needs to be integrated tightly like iOS and apps need to be aware they may not receive requested permissions. I still use App Ops in Kit Kat and it silently breaks apps all the time. Apps expect to be able request information (e.g. contact details) and crash or stall when they can't.

In that respect, LBE Privacy Guard[2] was a much better alternative up to ICS. It was a privacy firewall that would pop up notifications when protected permissions were being used for the first time. Instead of blocking apps when denied, Privacy Guard would feed it blank data instead. This lead to a better UX and stopped blocked apps crashing.

There needs to be an open source version of LBE Privacy Guard since the current one hasn't been updated over a year and is closed source from a Chinese company.

[0]: https://play.google.com/store/apps/details?id=com.colortiger...

[1]: https://play.google.com/store/apps/details?id=biz.bokhorst.x...

[2]: DO NOT INSTALL, FORCES REBOOT LOOP

https://play.google.com/store/apps/details?id=com.lbe.securi...

wting··on Wealthy sixteen year old teen spared jail after killing four people
One rationalization is that a 10 year probation means he'll be under police watch for a significant amount of time.

On the other hand if he was given a sentence as a minor, he would be released in 2 years when he's 18. That leads to the question why he wasn't tried as an adult, but IANAL.

wting··on Prototype ergonomic mechanical keyboards
This line has me more excited over everything else. I can't wait for a mechanical keyboard with a trackpoint like device.

I'm a big fan of Thinkpad keyboards and have a few USB versions, but finally switched to mechanical keyboards 6 months ago. I still miss the Trackpoint daily though...

wting··on Ask HN: How did you get started with the programming languages you use?
> My college adviser (part-time grad school) even INSISTED that I learn Java because I wouldn't get anywhere without it.

To be fair that statement isn't without merit.

I just went through a slew of interviews for new college grad positions this fall. I refused to apply for Java or .NET positions preferring Python / C / C++. This easily eliminated >90% of companies at the career fair.

Fortunately, I was still able to interview at the big 3 (Google, Amazon, MS) and a slew of Bay Area companies.

Amazon's onsite interview was a bit frustrating. All four interviewers ignored my resume and assumed Java expertise, asking the occasional question with Java terminology. When I answered the question reframed in Python / C++ terminology the conversation usually died off.

← PreviousPage 5 of 10Next →