Objective-C code on Big Bang Theory - <AUTHOR> http://gallery.me.com/jonhendry#100058

<comment><USER2> I know the boards for the episode were good-- I got to design them! <http://goo.gl/FfsAe>

</comment><comment><USER3> I noticed this during the episode as well while the characters discussed their iPhone app idea. If you watched the episode, there were actually some better shots of the whiteboard. The Big Bang Theory has always striven for accuracy. That's one of the things I've always liked about the show.

</comment><comment><USER4> The Big Bang Theory prides itself on accurate science and tech. They have UCLA physics professor David Saltzberg credited as "Science Consultant" to contribute the geeky stuff.

[http://www.usatoday.com/life/television/news/2007-11-04-big-...](http://www.usatoday.com/life/television/news/2007-11-04-big- bang_N.htm) <http://www.imdb.com/name/nm2934564/>

<comment><USER5> Except they are making an iPhone app but the only coding the do appears to be on a PC.

<comment><USER2> They're obviously using a Hackintosh.

</comment></comment></comment><comment><USER6> I just watched the episode and was pretty impressed with the accuracy of their (iPhone) software development skits, including their dialogue (relative to other shows/movies). There was much more than what's shown in this image. Anyone have video?

<comment><USER3> And violate copyright by posting it on YouTube? I'm sure there are several less reputable places where you can find the entire episode.

<comment><USER6> Here's a legal way to watch it: [http://www.cbs.com/primetime/big_bang_theory/video/?pid=H8pV...](http://www.cbs.com/primetime/big_bang_theory/video/?pid=H8pVgkLKFX__8As0MhPe3hCoSohIZlYk&vs=Full%20Episodes&play=true)

Skip to 6:00.

</comment></comment></comment><comment><USER7> Justification for posting this?

<comment><AUTHOR> Having started NeXTSTEP/Objective-C coding in the early 90s, and lived through the mid-90s near-death of the platform, I find it pretty remarkable that in 2011 a prime-time major network comedy had a whiteboard with "NSObject", etc, on it.

(In the late 80s, early 90s NeXT hardware turned up in some pop culture locations due to how it looked: Mono NeXTStations in the Madonna video for Rain _I don't know how I remember that_ , and a Cube in the movie Flatliners. But source code is something else entirely. Granted, given the recent cultural phenomenon of the iPhone, it's not _that_ weird. But from a longer-term perspective, it feels a little like we're through the looking glass.)</comment></comment>


I Speak 50 Languages - <AUTHOR> https://www.theguardian.com/lifeandstyle/2012/mar/16/i-speak-50-languages-experience <comment><USER3> I've been a fan of Dr. Arguelles for many years now. If you're interested in just how much he studies, take a look at this video he uploaded to YouTube: [https://www.youtube.com/watch?v=Oudgdh6tl00](https://www.youtube.com/watch?v=Oudgdh6tl00)

</comment><comment><USER4> "The truth is, predictably, it's down to endless hours of concentration – reading, studying and practicing grammar, as well as my own technique called "shadowing", which involves walking briskly outdoors while listening to a recorded language and repeating it out loud."

Everyone wants to be able to do things so fast, but like anything else - <USER2> comes down to hard work & dedication. Apps like Duolingo are doing a great job of gamifying and using social accountability to make the process seem less like work.

Learning French has been incredibly hard for me as well, but I'm just chipping away using the same methods. We can't all have photographic memories, so hard work is the answer.

<comment><USER5> FWIW, photographic memory is a total myth. Not one person has been able to demonstrate a photographic memory under controlled conditions. Human memory just doesn't work that way. This is the case even for people who truly can, e.g., endlessly recite trivia (including details of their physical environment) from any random day of their life. The book Moonwalking with Einstein provides a great overview of the science, among many other aspects of memory.

If there's anything unique about this individual, it's how he feels compelled to study and learn language. With that sort of deep and abiding interest, memorization likely comes relatively easily, almost as a consequence.

</comment></comment><comment><USER6> I wish people like this would present their proficiency levels in a more accurate and less spectacular way. Many people can do what this person has done if they put in the hours -- there is no magic to it. Some comments:

\- The word "fluent" can mean almost anything. The CEFRL ([https://en.m.wikipedia.org/wiki/Common_European_Framework_of...](https://en.m.wikipedia.org/wiki/Common_European_Framework_of_Reference_for_Languages)) gives a much more useful frame of reference, one that I will use here.

\- The B2 level is where one can interact with native speakers and native texts "without strain". It takes about 600 hours of study for languages like Spanish or French, and a bit more than twice that for linguistically distant languages like Korean or Arabic.

\- My guess is that he is at B2 or higher in very few languages. Based on the YT video ([https://www.youtube.com/watch?v=Oudgdh6tl00](https://www.youtube.com/watch?v=Oudgdh6tl00)), he meets that criteria in English, Korean (he lived there for many years), and French (not sure, but it's not that hard for English speakers). Maybe that's it. You may not know it, but there are tons of people who already have done this in any reasonably sized city in the US.

\- The rest seem to be all low level or very low level skill development. The tasks he talks about would be routine in university level courses maybe up to the third year, but mostly first and second year. This is roughly CEFRL A1 to B1 -- not terribly impressive. Just put in the time (roughly 100 hours for A1, 200 for A2, and 400 for B1). Basically what he can do is stuff like a basic self-introduction, simple information exchange on routine matters, read some signs, etc. No newspapers, no radio, no TV, no work that requires communicative skills. _At best_ , this would be like an enlightened tourist level.

\- On a related note, I was a bit disappointed in how little time he spent on fluency-level tasks rather than memorization or drills.

\- Once a person learns one language, often times many other languages become much easier to learn. For example, learn Spanish, and Portuguese and Italian become much easier (especially listening and reading) since there is so much overlap. His knowledge of Korean helps him with Chinese and Japanese since he learned the Chinese characters as well as the Chinese loan words, many of which are shared in some form across all three languages. Dutch/Danish, Hindi/Urdu -- the list goes on. He mentions this slightly in the YT video, but I think many people don't appeciate how much the overlap can be. As a simple example, I knew a very talented language learner who was able to score CEFRL B2 on a French reading and listening test just based on her high level (C2?) knowledge of _Spanish_ (both are Romance languages). She is exceptional, but it's doable.

\- With a good teacher/advisor, most educated people can reach the level this guy is in most of the languages he claims to "speak" or be "fluent" in. The challenging part of language learning starts at B2 and comes to a head at C1 and C2. This is distinctly _not_ a level that most people can reach if they put in enough time. To reach these levels requires a great deal of linguistic and cultural empathy and self-awareness that most people don't have.

This is an area I have quite a bit of theoretical and practical knowledge of. Please feel free to ask any questions and I will do my best to answer.</comment>


The Plunge - <AUTHOR> http://grantland.com/features/the-plunge-shavarsh-karapetyan-heroic-rescue-armenia-trolleybus-ussr-history-finswimming/

<comment><USER2> I'm confused -- the start of the article says the accident happened in the evening, right after sunset. But later, it says it was during the morning commute.

<comment><USER3> Saw that too. In other parts "morning" is referenced more than once. I assume the "setting" sun is a mistake and should have been "rising" sun.

<comment><USER2> But the article also mentions the evening air.</comment></comment></comment>


Ask HN: What are well designed SaaS websites? - <AUTHOR> <comment><USER2> Stripe.com

Simple, Consistent, fast , effective.

There are many other listed here as well. They mostly follows the same layout and pattern. What separate them are wording and graphics. Using simple words, and shortest sentence possible to describe your SaaS, and choice of graphics, which really is a matter of personal taste.

I think Stripe manage to do this very well.

Off Topic: Did Stripe ever talk about their Ruby Stack?

<comment><USER3> On Stripe I really like that you can see the logs of every API call you've ever made with the request headers and body and response body... It makes working with it much easier than Braintree.

<comment><USER4> Does Stripe write about how they handle storing those requests/responses? Seems like this could get very expensive, very quickly.

</comment></comment></comment><comment><USER5> I think turbotax has a pretty phenomenal interface if you're in the bracket of people with really simple taxes. Two and three years ago, my taxes took me about an hour.

Depending on what you're looking for, you may also be interested in aping their freemium model, where the first time you use the service is free and sets you up quite well to reuse the service next year and pay $40 for one of their obnoxious services. As a customer it was quite frustrating but it succeeded in getting me to pay $40 the second year, and had I not gone far out of my way to remove the "plus" and "premium" features I would have ended up paying ~$100 the first year and $140 total the second.

The third year I switched to a competitor and got to use their service for free. In a way, using turbotax felt like a great UX mixed with a battle to read everything extremely carefully and retread my steps to avoid paying anything; to me, this is not all that morally reprehensible because it adversely affects people who don't value their money as much as their time. However it also seemed predatory in that a non-tech-savvy user such as my parents would likely be tricked into paying higher costs for essentially no added value.

<comment><USER6> They have a really solid approach and keeping each step really straightforward and discrete to avoid overwhelming you with too much to think about at once. It still fails really hard when you get to anything outside their flow. I had to spend time googling the awkward set of steps needed to deduct mortgage interest. Ultimately, it wasn't hard, but it wasn't at all obvious how to do it.

<comment><USER7> Um... maybe you had a strange situation but usually for mortgage interest on your home , your lender sends you a form with essentially 1 number on it and you just enter this form into TurboTax when it asks you.

</comment></comment></comment><comment><USER8> It seems the question is ambiguous. Everyone is responding with the marketing websites of SaaS compnaies, but I interpreted it as asking for well-designed internal interfaces of SaaS websites. Would love to see examples of that which people think are particularly great. Personally I've always found Gusto and Basecamp to have very good interfaces. Stripe's internal interface (which others have mentioned for their public site) gets the job done but I would hardly call it great.

</comment><comment><USER9> Some of my favorites:

[https://mailchimp.com](https://mailchimp.com)

[https://transitapp.com/](https://transitapp.com/)

[https://www.intercom.com/](https://www.intercom.com/)

[https://lattice.com/](https://lattice.com/)

I'm fond of what we have built: [https://www.moonlightwork.com](https://www.moonlightwork.com)

<comment><USER10> Hey, curious about your experience with Mailchimp. I've noticed that people seem to either love it or hate it. What do you think they do well? Where do they fall short? (if at all)

<comment> jonathan-kosgei I hate mailchimp and prefer to use tinyletter.com. I can't talk enough about how much I love tinyletter!

<comment><USER11> TinyLetter is amazing. Simple, easy to use, just does what you need without templates, campaigns and other stuff that gets in the way between you and subscribers receiving an update from you.

</comment></comment></comment></comment><comment><USER12> Needless to say Stripe.com \- [https://www.plainflow.com/](https://www.plainflow.com/) \- [https://sentry.io](https://sentry.io) \- [https://slack.com](https://slack.com) \- [https://figma.com](https://figma.com) \- [https://basecamp.com](https://basecamp.com)

<comment><USER13> I found Slack rather poor in explaining what they are doing. This text is basically their entire landing page.

"When your team needs to kick off a project, hire a new employee, deploy some code, review a sales contract, finalize next year's budget, measure an A/B test, plan your next office opening, and more, Slack has you covered."

Do they offer A/B testing? HR tools? Code deployment? Who would have guessed it is chat.

Their /features page does a better job: "It simplifies communication. Slack brings all your team's communication together, giving everyone a shared workspace where conversations are organized and accessible."

<comment><USER12> True.

But that's actually a common trend. When the company's brand gets bigger and stronger in people's mind, company position slowly switches from

1 Product attributes

2\. Product benefits

3\. Emotional benefits

4\. Something bigger

This applies well to every type of product. SaaS included.

This is a great essay on the topic: [https://medium.com/speroventures/branding-for- builders-19e10...](https://medium.com/speroventures/branding-for- builders-19e103ef3f1d)

</comment></comment></comment><comment><USER14> I was wondering the same thing the other day: looking for inspiration but also experienced recommendations and UI patterns. Found this with a quick Google (I have no affiliation): [https://blog.chartmogul.com/saas-landing- pages](https://blog.chartmogul.com/saas-landing-pages)

Also I found Pinterest to be a good resource for finding designs (more so than Dribbble, Behance, etc. surprisingly.)

</comment><comment><USER15> [https://baremetrics.com](https://baremetrics.com)

[https://sendgrid.com](https://sendgrid.com)

[https://www.drift.com](https://www.drift.com)

[https://lookback.io](https://lookback.io)

[https://reply.io](https://reply.io)

<comment><USER16> Baremetrics for sure. Really effective — the dashboard gives you all the important data quickly and then you can easily drill down. I use their product several times a day and it's the best interface of all of the many services I use.

</comment></comment><comment><USER17> [https://lookatthatsaas.com](https://lookatthatsaas.com) is a good resource for inspiration.

</comment><comment><USER18> [https://segment.com/](https://segment.com/) seems to take design really seriously. They also have a pretty nice React toolkit here: [https://segmentio.github.io/evergreen/?selectedKind=alert&se...](https://segmentio.github.io/evergreen/?selectedKind=alert&selectedStory=Alert&full=0&down=0&left=1&panelRight=0&downPanel=storybook%2Factions%2Factions- panel)

</comment><comment><USER19> I frequently compare [https://getstream.io/](https://getstream.io/) with [http://stripe.com/](http://stripe.com/), [https://www.mapbox.com/](https://www.mapbox.com/), sendbird.com, algolia.com, pusher.com and [https://layer.com/](https://layer.com/)

</comment><comment><USER20> [https://stripe.com](https://stripe.com) \- It's beautiful but conveys all the information that you need quickly. It also has excellent copy.

[https://canny.io](https://canny.io) \- Very crisp design and it conveys the use case really well.

[https://baremetrics.com](https://baremetrics.com) \- This has come such a long way and has stunning design.

</comment><comment><USER21> Not really a SaaS website, but I really dig this [https://district0x.io/](https://district0x.io/)

<comment><USER22> I'm not too fond of that "stay up to date" modal, which tries to mimic system native UI.

</comment></comment><comment><USER10> [https://dnsimple.com](https://dnsimple.com)

[https://basecamp.com](https://basecamp.com)

[https://sentry.io](https://sentry.io)

[https://semaphoreci.com](https://semaphoreci.com)

[https://instapaper.com](https://instapaper.com)

Old Heroku :-(

<comment><USER23> What's changed about Heroku that's made you unhappy? (Not an employee, just curious).

<comment><USER10> Take this copywriting, for example:

2011: "Forget Servers - Get up and running in minutes, and deploy instantly with git. Focus 100% on your code, and never think about servers, instances, or VMs again."

2018: "Deploy and run apps on today's most innovative Platform as a Service - Heroku is a cloud platform based on a managed container system, with integrated data services and a powerful ecosystem, for deploying and running modern apps. The Heroku developer experience is an app-centric approach for software delivery, integrated with today's most popular developer tools and workflows."

Which is better?

<comment><USER24> 2018: it describes what they do in a much clearer way.

</comment></comment></comment></comment><comment><USER25> For lots of examples, check out [https://www.pages.xyz/](https://www.pages.xyz/)

</comment><comment><USER26> I recently came across toggl for time tracking and reporting.

Toggl - Time tracking - [https://toggl.com/pricing/](https://toggl.com/pricing/)

Their pricing page is one of a nicest I've seen, really easy to grasp but also functional eye candy.

I even hoped it was a WP template so I could customize one myself.

</comment><comment><USER27> Clubhouse is an excellent example of site and web app and their approach and integration with both has clearly had a LOT of thought put into it: [https://clubhouse.io](https://clubhouse.io)

Probably use it more than any other SaaS and am glad it's so good.

</comment><comment><USER28> Find some great Inspiration at [https://hyperpixel.io](https://hyperpixel.io)

</comment><comment><USER29> [https://omnystudio.com/](https://omnystudio.com/)

</comment><comment><USER30> Can I chime in here, not with a link to any specific site, but just as a call out to patterns that I am seeing recently.

A lot of sites now have lists and content that updates automatically as things happen on the back end. One good example is Intercom. I have their screen open 24x7 on the first tab of my browser so I can monitor users on our site. I love how it updates the 'time last seen' dynamically, and I usually have my customer list sorted by the 'time last seen' field.

But sometimes, while the content of the list fields are updated in real time, the sorting of the list is not, and the list goes out of order (i.e. customers who re-login recently are still shown lower down in the list that customers who logged in an hour ago even though the 'last login time' is more recent.

I wish there was a way in these instances to just refresh the list within the page, without doing an entire browser page refresh, which could take up to 10 seconds in the old Intercom UX. Also, while talking about Intercom, jumping between the Customers page and the Conversations page could also take anything from 5 to 10 seconds on my browser, and there was NO indication that anything was happening in the meantime, which increased confusion and frustration. I think we need to bring back the hourglass or some other 'waiting' indicator for transitions that take a while.

(NB: The new Intercom UX has improved on the waiting delay significantly, but not the sort ordering of the customer list).

Someone also mentioned the Stripe design (of their back end, not their marketing site). I tend to like the new design of their admin panel, however their menu hierarchy was a little confusing, making it hard to find things a lot of the time. Also, the redesign tends to break the 'back button' behaviour a lot. I tend to spend a lot of my time on the Stripe admin panel looking at webhook logs etc., and every time I bring up the log listing, then drill down to an entry I can't seem to go 'back' to the list easily without the system rebuilding the entire list each time. Makes it frustratingly slow to try and find the exact log entry I want when I have to spend so much time waiting for page refreshes.

In summary, I think we need to go back to these 'old fashioned' design constructs which aren't considered "trendy" any more:

* Give the user some sort of 'waiting' indicator if a page redraw is going to take time.

* If a list on your page refreshes in the background, and your user can sort the list, make sure you update the sort order as well as the content

* Don't break the back button behaviour if you can help it.

</comment><comment><USER31> [https://webflow.com/](https://webflow.com/) \- complex product, but the marketing site makes it clear and understandable

</comment><comment><USER32> Shameless plug, I kind of like the work we did on our own SaaS website: [https://serpapi.com](https://serpapi.com)

</comment><comment><USER33> pitchbook.com

Interesting mix of content and product information. I like how it's laid out as well

</comment><comment><USER34> My favorites:

\- stripe.com

\- ohdearapp.com

Simple, to the point & clean layouts.

</comment><comment><USER23> Did you mean that the services themselves are well designed or are you referring to pages that describe them?

</comment><comment><USER35> does ecommerce count? mcmaster.com

<comment><USER36> agreed ... mcmaster is one of the best designed sites.

</comment></comment><comment><USER37> Chiming in after seeing us get mentioned here (context: lead designer @ [http://Fairpixels.pro](http://Fairpixels.pro))

Working with engineers of b2b saas companies every day, for more than a year and having analysed all the best SaaS companies who have 10+ internal designers, I found a couple of principles that anyone can apply to make their website look decent:

* Consistency - One practical example: If you use a 4px border-radius, use a 4px radius everywhere. It may sound small, but having a consistent experience across your application makes the product feel so much more polished to your users. Don't use multiple fonts, different navigation menus etc. Keep it consistent.

* Reduction - If anything, design isn't about adding more things to make it 'look nice'. Try to remove as many things as you can. If something doesn't serve a specific function, then remove it. Every pixel should make sense. The more you put in front of your users, the more brain power it'll require to process.

* Divide - This is mostly UX, but one thing I see so many get wrong. A lot of SaaS apps overwhelm their users. They present them with all the features upfront. Whether it's a long onboarding form, or a dashboard with 50 actions one could take. By splitting up things in different ways, you can guide the user through the experience. Your signup process for example (that might be a big block in conversion) might be made so much better if you ask for certain types of information later on in the process.

<comment><USER38> I very much like your fixed fee / month business model. Exactly what I need, I will likely become a customer soon.

Is there a similar service out there that has fixed pricing for web/app development?

<comment><USER39> saw this few weeks ago: [https://greenpine.co/#pricing](https://greenpine.co/#pricing)

</comment></comment></comment><comment><USER40> Most SaaS businesses are run by engineers and unfortunately many of them/us lack the eye for style. That said, here are two of my favorites:

[http://fairpixels.pro](http://fairpixels.pro) \- I found these guys here on HN and their work seems spot on.

[https://www.spotify.com/](https://www.spotify.com/) \- their simple design and IPO should be an example for fellow engineers who're building saas.

<comment><USER41> Fairpixels doesn't appear to be a SaaS service, but a service company that does design (not only for SaaS).

I'm curious:

\- is there a particular SaaS designed by fairpixels that you consider an example of good SaaS design?

\- do you have any relationship with Fairpixels? Your HN account has posted 2 comments since being created, and both those comments recommend fairpixels.

<comment><USER40> Ive been following their progress for over a year and am a customer. They've structured their website and business like a Saas. I don't know about all of their customers but I love the work they did for Uphex.com for example.

</comment></comment></comment><comment><USER42> Would recommend [https://stunning.co/](https://stunning.co/) , I like the floating tube animation and the increasing recovered amount is really appealling.

<comment><USER43> Meh, I disagree, the design looks dated.

<comment><USER44> I agree - it feels poorly-designed-2012

But thats not a knock on their offering - if their customers are happy and they are doing a good job, then more power to their servers.</comment></comment></comment>


Show HN: Visual Communication for Elite Software Professionals - <AUTHOR> https://apps.apple.com/us/app/devtendo/id1488872267?ls=1&mt=12 <comment><USER2> We plan to introduce a pro version later in 2020.

</comment><comment><USER3> Free?</comment>


A World Without Nuance - <AUTHOR> https://kirstenhacker.wordpress.com/2019/11/18/a-world-without-nuance/ <comment><USER2> > _This is only weird if you don't understand the concept of object > permanence. If a red marble and a green marble are in a bag and you take out > a green marble, you can be certain that the marble in the bag is red. > Entangled particles are like this because when they are 'born' they are > automatically opposites and they remain opposites as long as they are not > disturbed. This only doesn't make sense if you do not understand that there > are initial conditions about which you do not and cannot know._

The above is only an "explanation" if you don't know about Quantum Mechanics...

<comment><AUTHOR> She goes into the experimental discrepancy between quantum and classical probability and then explains it in terms of a systematic error caused by a shaking reference frame. Taking only part of the argument out of context is misleading.

<comment><USER2> And the explanation of the "shaking reference frame" is wrong. It borders on conspiracy theory ("1000s of prominent physicists didn't understand this, but I do").

<comment><AUTHOR> Hilbert space being used to remove the effect of a shaking reference frame from a calculation is a conspiracy theory? Tell that to the people who use Hilbert space to remove the impact of a non-inertial reference frame from quad-copter drone control calculations. The quality of physics education varies widely and it may disappoint some people to learn that their teachers weren't that good.</comment></comment></comment></comment>


Google integrates Analytics into Google Docs for document statistics - <AUTHOR> http://googlesystem.blogspot.com/2008/07/google-docs-stats.html

<comment><USER2> A few weeks ago, I did a survey trough Google Docs "Forms" and I didn't want to embed the survey on a blog, so I can't get a track of the visitors of my survey.

But now, you can get full statistics with Google Analytics, so just think about the future that Google Docs could have in a few months. this is just great!</comment>


Choosing the right tool: JavaScript vs. sed - claes-magnus https://herebeseaswines.net/essays/2020-04-19-choosing-the-right-tool-js-vs-sed I am a junior Web developer and have just started to learn sed. Why don't more web developers use sed? I am sure there are quite a few who know this gnu-tool, but I can't recollect if I've seen sed being mentioned in the JS community. Yesterday I started to make a simple hobby project, but I quickly realized how stupid I was to use JS instead of sed and decided to compare a JS and sed solution (limited scope though). <comment><AUTHOR> Sed is a command line utility for unixoid shells. It is comparable to awk. I say this because the awk binary is actually an interpreter for the similarly named programming language. So awk is in some way similar to the v8 JavaScript interpreter binary.

Using sed from JavaScript is therefore on similar footing then using Python from JavaScript. It results in a heavy process call with challenging passing of information between the caller and the callee. That's the basic difference between a shell script (which relies by definition on the system binaries) and a high level programming language.

I think a fairer question is: why is there not a npm module similarly powerful as sed. I dunno if there is. Maybe it is :)

</comment><comment><USER2> > I am sure there are quite a few who know this gnu-tool

You'd be very surprised if you start actually asking.

I predict if you start actually asking, you'll find that those who even know it exists are a very small minority of the group, and that those who actually use it are a small minority of that already small minority.

<comment> claes-magnus I don't know. As I said, I am a junior web developer so it is hard for me to generalize. Perhaps no-one use it? But I enjoy it. :)

<comment><USER2> Begin asking around in your dev circles.

Keep track of how many you ask, and how many of that value even know of it, and further, how many who know of it regularly utilize it.

Then you'll have some actual factual values with this to reach any conclusions. I predict you'll find that the "knows about" group is, maybe, at best 15% of the total, and the "uses it regularly" group is, maybe, at best 5% of the group that even knows it exists.

<comment> claes-magnus Yes, ok. But this doesn't say it's a bad tool? Only a not very used tool? (I know that you've not claimed neither; only that is not a very used tool)

<comment><USER2> It would give you specific data to use for your initial hypothesis:

"I am sure there are quite a few who know this gnu-tool"

My hypothesis is that you will find that instead of "quite a few who know" (implying a large value and/or majority) that if you start asking you will find that reality is "very few even know" and an even smaller subset of those very few actually utilize.

<comment> claes-magnus It is very hard to estimate such matters when you're a junior developer. :) Say you're right. Actually, I don't doubt you. I am certain that I will find I was wrong when I wrote that. But still, this does not mean sed is not a tool worth learning and I am very greedy in such contexts. I love learning. And in some contexts, it seems very reasonable to use sed (and awk) rather than js, python or a 'richer' language?

<comment><USER2> You are reading in something I never said.

This is what you are reading in: "this does not mean sed is not a tool worth learning"

I never said, nor implied, that.

None of my prior responses have said whether sed is worth, or not worth, learning. My responses were focused only on your initial hypotheses that implied a large number know of it. My hypotheses is if you actually test your statement within your JS dev. groups, you'll find a shockingly low number of members who even know sed exists.

Now, as for my opinion of sed, it is a fine tool, and it is well work knowing how to use it (at the very least knowing how to use it for its most common usage, replacing strings with other strings). I myself reach for it quite often when I need to do something that it is good at doing.

And, yes, for you, it is well worth learning something about it. It is also well worth you learning something about many of the other CLI tools, such as head, tail, join, comm, seq, etc. There are a huge number of them, and they can often allow you to solve a problem without ever writing a single line of code (unless you consider a Unix pipeline to be 'code').

<comment> claes-magnus I wrote, >> Yes, ok. But this doesn't say it's a bad tool? Only a not very used tool? (I know that you've not claimed neither; only that is not a very used tool)

But since you continued to stress your hypothesis and ignored this, I (incorrectly) presumed you had another agenda. I misinterpreted you, and I am thankful for you sharing knowledge on the other stuff. :) Sorry!

This is exactly what I am beginning to realize: >> hey can often allow you to solve a problem without ever writing a single line of code (unless you consider a Unix pipeline to be 'code' Therefore it is very valuable for me when someone who obviously have greater knowledge points this out. Thanks! This was also my point with my project: a demonstration aiming to show that we didn't need JS, but only a few lines of sed. :)

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> If you find sed useful I would encourage you to check out Perl ([https://www.perl.org/](https://www.perl.org/)).

It has all of the powerful regular expression capabilities that sed has plus much more.

<comment> claes-magnus You should enjoy my post from yesterday: [https://herebeseaswines.net/essays/2020-04-18-a-bash- perl](https://herebeseaswines.net/essays/2020-04-18-a-bash-perl)

Yes, I wanna learn Perl! :)

<comment><USER3> If you are familiar with JavaScript then you should be able to be productive with Perl pretty quickly.

I recommend the reading "Programming Perl" (the Camel book) or "Learning Perl", both from O'Reilly press.

If you are using a Mac or Linux system, you probably already have Perl installed, so there is no setup to start using it.

<comment> claes-magnus Yes, I have it (I am on a Linux). Thank you for sharing! :) Cheers!</comment></comment></comment></comment>


Ask HN: How does code completion (as in IDEs) work on a technical level? - <AUTHOR>

Conceptually, I understand the parts, but I'm having trouble translating that to working code. I've been doing some research and came across Jedi (https://github.com/davidhalter/jedi), which is an autocomplete library for Python.
Is there some guide somewhere that walks through the process of building something like Jedi for some other language (even an imaginary one)?
While it's tangential to this particular discussion, my goal (eventually) is to learn what I need to know to be able to build something like Jedi for PHP. There's only a handful of options for PHP code completion, and none of them provide the level of intelligence of a proprietary IDE like PhpStorm. That needs to change, IMO. <comment><USER2> Start small. Make a function that takes a string which is part of an English word and returns a list of completions for that word. If on Linux, use the word list in `/usr/share/dict/words`.

The next step up is to improve on that function. F.e. if the string is "disc" a good candidate probably is "discussion" but not "discus" unless that word previously occurs in the document.

Then continue from there. Coding is learnt by doing not by reading guides.

<comment><AUTHOR> Well, yeah. I mean, that's straightforward enough, but what people frequently leave out is what "improve on that function" entails, especially when you start getting into really weird codebases.

Like I said, I understand the overall components - I need a lexer/parser to parse the code into a usable data structure that I can then examine to pull out information about that code. I also need some way for that parser to not puke if the syntax isn't perfect (for instance, if I'm typing in a line of code, that line of code isn't going to be syntactically perfect).

I've been a developer for a number of years now. I know how to learn stuff. The problem is that this particular problem is so nebulous and infrequently solved in a publicly viewable way that I don't even know what I don't know, hence the idea of looking at a guide for some simple, imaginary language. If I can see the basics without all of the eventual code rot and cruft, I can go from there. A sample implementation in pretty much any language would also be adequate - I can do without the prose.

</comment></comment><comment><USER3> Take a look at IntelliJ IDEA CE source. It's an open source project. Also, read this description of how to implement a language support in IntelliJ: [https://confluence.jetbrains.com/display/IDEADEV/Developing+...](https://confluence.jetbrains.com/display/IDEADEV/Developing+Custom+Language+Plugins+for+IntelliJ+IDEA)</comment>


The Ruby Code of Conduct - <AUTHOR> https://www.ruby-lang.org/en/conduct/ <comment><USER2> I like this. It's got a good "founding document" feel to it. It doesn't take sides. It allows reasonable accommodation for situation and person. I would be concerned that some may not feel protected enough by its language; it doesn't really say what the punishment is for not according by it. I wonder what the development process for it involved.

<comment><USER3> See my other comment, but matz specifically eschewed enforcement provisions. See [https://bugs.ruby-lang.org/issues/12004](https://bugs.ruby- lang.org/issues/12004) and e.g. search on his name, also skim to get a general idea about how it all happened.

</comment></comment><comment><USER4> Not opposed to code of conducts but why the big rush to them. Communities have been Annd continue to be fine without them. Can we just stop over policing everything and just get stuff done?

<comment><USER5> You've never been subject to a misconduct have you

</comment></comment><comment><USER6> >Behaviour which can be reasonably considered harassment will not be tolerated.

There's a lot of room for rules lawyering in that one.

<comment><USER3> The connotations of "Code of Conduct" might be overstating what this ended up being. In the initial discussion matz was emphatic that there would be no formal enforcement mechanisms associated with the code, and he then announced it with the comment " _I hope it works. We may upgrade it if something happens._ " ([https://bugs.ruby-lang.org/issues/12004](https://bugs.ruby- lang.org/issues/12004)).

My interpretation is that it's a minimal formalization of "Matz is Nice And So We Are Nice" ([https://en.wikipedia.org/wiki/MINASWAN](https://en.wikipedia.org/wiki/MINASWAN)), likely at least in part aspirational like MANISWAN, and that rules lawyering and the like will not be viewed kindly.

</comment></comment><comment><USER7> that's a pretty short CoC

</comment><comment><USER8> Sorry, this is weak sauce, especially "When interpreting the words and actions of others, participants should always assume good intentions". Here is what a comprehensive Code of Conduct looks like (from NodeJS) [https://github.com/nodejs/node/blob/master/CODE_OF_CONDUCT.m...](https://github.com/nodejs/node/blob/master/CODE_OF_CONDUCT.md)

<comment><USER9> Having one code of conduct subcontract out its definitions to another code of conduct on a completely different site is a pretty bad design pattern.</comment></comment>


Continuity - a clever flash puzzle game - <AUTHOR> http://continuitygame.com/

<comment><USER2> That's very clever. :)

Here's another unique online game, called Ouverture Facile: <http://www.ouverture-facile.com/start/index.html>

It's a riddle/puzzle/problem solving game of sorts.

<comment><USER3> Continuity also sort of reminds me of Small Worlds: <http://jayisgames.com/cgdc6/?gameID=9>

<comment><USER4> Thank you. That was excellent.

</comment></comment></comment><comment><USER5> If you are into puzzle games I really recommend Braid ( <http://braid- game.com/> ) - it's a game where you manipulate time to solve puzzles. There's an surprising end ;)

</comment><comment><USER6> I found this game a week or so ago, when it didn't tell you what level you finished or how many were left after each level. :)

The game got a whole lot less arbitrary and confusing once I figured out that to link from one frame to the next, the entire pattern of solid and empty space on that edge must match, not just the hole you're trying to squeeze through.

</comment><comment><USER7> I finished the game in an hour or two. Fun, innovative concept. The final level was the hardest for me.

Some of the levels feel like the authors just put them together arbitrarily to overwhelm, but there are a good amount of easier "fun" levels which introduce new ways of thinking about things. Unfortunately, the entire game seemed to be made up of either easy/"fun" levels or harder/"overwhelm" levels -- the concepts introduced in the fun levels didn't seem to make it into the normal gameplay. (Or then again, maybe I was just using the new concepts so often I didn't notice!)

I was initially angered and almost quit when I thought that the authors weren't letting me know when I could jump down pits without dying. It took me a while to realize that the entire edges had to overlap, rather than just the specific pit I was jumping down.

Overall though, it's rare for me to finish a Flash game. So it gets five stars from me!

</comment><comment><USER8> My wife just finished this game last night. She usually sticks to the usual boring flash games, but got into this and was up late finishing it. It was about 8 hours of play for her (with the usual web browsing and such). She really enjoyed it. I don't think it has much replay value (yet). The difficulty definitely ramped up in the last 12 levels. We really enjoyed the gameplay. To break it down further it combines a 2d-portal element, side scroll elements and puzzle elements in a cohesive way.

</comment><comment><USER9> So in the iPhone version you and your friends will have to align your phones correctly?

</comment><comment><USER10> Great game, fondly reminds me of Portal.

<comment><USER11> Reminds me more of Adventure for the Atari 2600, but done with multiple TV sets at once (-;

</comment></comment><comment><USER12> Cool, these guys study at my university (Chalmers)! I like how they effectively use the music as a component in the game.

</comment><comment><USER13> I just completed level ten, and I'm wondering, do they ever get harder, or just bigger?

<comment><AUTHOR> Yes, they get harder and more interesting.

<comment><USER13> I think a faster ramp-up would be better. I just finished 19, I see the solution to 20, and I kind of feel like it isn't worth the time to see 21. Maybe you could limit the game to three levels for each new concept? The comparison to Portal is apt, but there weren't many routine levels in Portal. I think you could cut the number of levels by half and still retain all the puzzle-solving challenge. It would just be more concentrated.

Still, this is really good. I don't bother with flash games very often, but I'll be sharing this link with a few friends.

<comment><USER14> I showed it to a few friends and I'm glad the ramp-up is at the pace it's at. It makes it friendlier for folks who aren't naturally analytical thinkers, I think.

That is to say, the ramp-up pace is good because analytical thinkers will blaze through the levels quickly enough that they don't get bored, and non- analytical thinkers won't feel like it's too hard too soon. Maximum audience retention.

</comment></comment></comment></comment><comment><USER14> Is there some sort of mathematics applicable to the level generation? For some reason, something about the game vaguely reminds me of hypercubes... though I'm not particularly familiar with hypercubes.

</comment><comment><USER15> Tiny little bug: you can collect a key but stay around to play, if you make the circuit one more time you will find another key :-)

</comment><comment><USER16> The music itself is relaxing. (:

</comment><comment><USER17> Wonderful, I especially love level 16!

<comment><USER18> Too bad that they introduce the clever idea needed for levels like 16 (& I think 14?) in a level that allows no alternative: the skill build-up is a little too slow to make those AHAs as satisfying as they should be.

<comment><USER17> Yeah, but it has so many possibilities. What if you can flip tiles over? What if you have to race other people who can also move the tiles? What if you combine it with the concept in the game Shift? <http://www.kongregate.com/games/ArmorGames/shift>

One pet peeve is the connections between tiles. I think if the tiles match each other, the border between them should vanish (if not in the large manipulation view, at least in the small character view).

</comment></comment></comment><comment><USER19> Great!</comment>


Dropbox Git Hosting - <AUTHOR> https://coderwall.com/p/qquf5q

<comment><USER2> There is a lot of potential for repository corruption, using this way. You can use Dropbox for backing up Git (or Mercurial) repositories though, with bundles:

      cd $PROJ
      git bundle create ~/Dropbox/git/proj.git --all

This would create only one file, bundling all commits, in a corruption safe way.</comment>


The New Economics of Semiconductor Manufacturing - <AUTHOR> http://www.spectrum.ieee.org/print/6179 <comment><USER2> The Principles of the Toyota Production System (TPS reports):

        (1) highly specify activities,
        (2) clearly define the transfer of material and information,
        (3) keep the pathway for every product and service simple and direct
        (4) detect and solve problems where and when they happen, using the scientific method.

There was significant time spent on systems like this in my Industrial Engineering manufacturing classes. These systems like Six Sigma sound kind of hokey, but if you rigidly and ruthlessly adhere to good principles, it really makes manufacturing function better. It's much better than running without a rigid system.</comment>


Show HN: An old demo [hypnotic and photosensitive seizure warning] - <AUTHOR> http://www.standardtechnological.com/sq.html <comment><AUTHOR> Clicking randomly chooses another update functions.

Also this demo appears fastest in Chrome.</comment>


Uxpython: cross-platform GUI - modern, stylish and enjoyable cross-platform UI toolkit - <AUTHOR> http://www.uxpython.com <comment><USER2> Sorry, but a new UI toolkit should look pretty. Maybe some of those controls looked okay, but if so the screenshots didn't do them justice. I wasn't particularly impressed. No reason to use these over the other toolkits, far as I can tell.

<comment><USER3> It doesn't give you faith in the lead developers if they use words like "stunning user interfaces" and give those snapshots.

</comment></comment><comment><USER4> Based on Swing and WPF? I've never used either... but I've only ever heard bad things about both.

<comment><USER5> I like WPF a lot. It has its issues, but overall it's quite good.

</comment></comment><comment><USER6> 1.Could not find any docs.

2\. Why? Why not wxpython, tkinter etc?

</comment><comment><USER7> Just a nitpick: the name is unfortunate, considering there is already a wxPython out there.

</comment><comment><USER8> Just another UI framework?

<comment> old-gregg The industry is _desperate_ for a good cross-platform GUI framework. If you manage to solve the problem I guarantee you a very comfortable living and a world-wide fame comparable to Guido's.

Do a google search on just about anything software-related and start calling these companies who sell millions of dollars of Windows-only software offering them a quick and painless transition to cross-platform GUI for, let's say $1M.

I can't even begin to describe the desperation I've seen at various companies I worked for. There are trillions of dollars worth of Windows software that is much needed on a Mac or Linux and vice versa. I once worked at a startup that lost a contract with US Navy worth more than _all our previous revenue combined_ just because we were Windows-only. And at my current company our #2 support question is "When's Mac support coming?"

<comment><USER9> You used to be able to do this, I tried once, with Delphi and Kylix (the linux version of Delphi), the only problem was that the Delphi ecosystem encouraged third-party widget/controls, many of which were tied to specific versions of Delphi and only ran on Windows.</comment></comment></comment>


Show HN: HTML7 - Modern HTML - <AUTHOR> https://github.com/mitchellh/html7

<comment><USER2> <div /* here comes an ID! */id="foo"> could actually be very useful. Tagging how Javascript is manipulating the div would make code more readable.

Also, I'm surprised this doesn't require jQuery.

</comment><comment><USER3> This will be so useful in all my new projects! I'm using this and that other one character javascript framework I remember seeing. Anyone have a link?

</comment><comment><USER4> Incomplete without the <sarcasm> tag.

<comment><USER5> Agreed, I can't use this. Not including such basic features throws it _way_ out of the standard.

PS: PG, you need to add a way to take back votes. I accidentally upvoted the thread this is parodying.

</comment></comment><comment><USER6> is this a stab at json5? <https://github.com/aseemk/json5>

<comment><USER7> Nail on the head. Check the documentation. [1]

[1]: <https://github.com/mitchellh/html7#credits>

</comment></comment><comment><USER8> Coult be worse... could be iWeb from Apple.

</comment><comment><USER9> I love this so much, I just need a html7-mode.el for emacs now and my next websie will be in html7 :)

</comment><comment><USER10> Open Source: Because it only takes a few minutes to be an ass and upload something to github.</comment>


The one checkbox every signup process needs. - <AUTHOR> http://blog.webdistortion.com/2010/09/30/the-one-checkbox-every-signup-process-needs/

<comment><USER2> No, not every registration page needs a checkbox asking if the user is a journalist. The vast majority of your users are not journalists, so do not burden them with another checkbox that they'll most likely ignore. If the issue is opting out of marketing emails, provide an opt-out checkbox. It's that simple.

<comment><AUTHOR> The issue isn't opting out of marketing emails, its the opportunity lost from not identifying journalists correctly. There are often multi-selects / checkboxes asking if you are a 'Student/Decision Maker/Developer' (particularly for enterprise software) so adding an additional one in many cases wouldn't be superfluous.

<comment><USER2> Thanks for the clarification. This does make more sense for enterprise software trial signups where you have to go through similar annoying questions, but it's still a pretty bad signup experience.

If you have direct sales organization that really needs this info, it might be a good tradeoff in usability vs. revenue to make, but it's still a tradeoff.

</comment></comment></comment><comment><USER3> Er, ok, so to help the .1% of signups coming from journalist or bloggers, we add a checkbox that's out of place and irrelevant to the 99.9% of actual potential users which could have the negative effect of losing signups from having some weird checkbox asking if they're a blogger or journalist?

Try to imagine if vimeo or YouTube, tumblr, Facebook, or absolutely any site that implemented this in their signup form. It just plain sounds dumb. User signups are supposed to be as frictionless as possible.

What a selfish idea that only serves the author and the small percentage of similar people at the expense of the interests of the businesses they intend to write for.

Or is the author just being facetious?

<comment><AUTHOR> At the end of the day, what I'm talking about is segmenting your marketing database, into users, and potential link builders with 1 extra field that 99.9% of people don't need to pay any attention to (your words). As I've already stated, enterprise software, and loads of others already ask for a number of qualifying fields for leads, and this would be a simple extension for many.

I have in the past, received emails along the lines of 'As someone who has written about us before - we'd like to introduce our new product'. Which have been gratefully received.

It's common sense to build relationships with the people who can help launch other products, or help you announce features. If encouraging businesses to market more efficiently to bloggers is selfish. Well. I'm guilty.

</comment></comment><comment><USER4> Asking for a website URL in a users profile setup can give you the same information and more. Not a one-size-fits-all option obviously, but a useful one nonetheless.</comment>


The Coming Social Advertising Revolution - <AUTHOR> http://markmaunder.com/2010/the-coming-social-advertising-revolution/

<comment><USER2> Or, this will be the straw that breaks the camel's back, and Facebook users will finally realize that their use of Facebook comes at a cost. Namely, sketchy ads that follow you around the internet.

There's going to be an upper bound on how much Facebook can push the envelope on privacy. Eventually, they're going to hit the point where the users, the publishers, or even the government will not allow them to go any further.

Facebook's big gamble is that this upper bound is high enough to allow them to make money off of exposing personal information to third parties. It remains to be seen if this is true, and if it is, if it's sustainable.

All it takes is one rogue app developer to harvest some personal information and use it to harm someone to scare people. If the mindset of the public shifts such that people start to back away from posting or publishing personal information, Facebook loses.

It's a precarious situation for Facebook, really. Their success hinges upon people being comfortable with losing their privacy. Google has a much better revenue model since it is not tied to there being a conflict of interest between them and their users.

<comment><USER3> >Google has a much better revenue model since it is not tied to there being a conflict of interest between them and their users.

I wholeheartedly disagree. Google is also in the business of using any tracking data it can gather on users to deliver ads. Google's primary money maker is advertising, whether in search results or in banner ads. Their customers are not their email/chat/docs users, their customers are the companies that buy advertising. Email/chat/docs users are the product that they sell to advertisers when they promise that the ads will reach an audience. The free services they offer are the honey pot to convince the users to get an account and be tracked. Google is in the same precarious position as Facebook, people just talk about it less.

<comment><USER2> The difference is that Google's various products, unlike Facebook's, provide data that isn't strictly necessary for their ads to be relevant. As their giant pile of money attests, simple targeted advertising based upon search queries is more than enough to build a giant empire upon.

They won't wither on the vine if their various other session-based tracking datasets, such as those you mention, are cut off for whatever reason. The same can't be said of Facebook's trove of private information they're apparently banking on selling to the highest bidder.

The bottom line is even if there are some short term successes for Facebook via targeted advertising from social network data, they will live in constant fear of a bad news day causing all Facebookers to log into their account and uncheck the "share my personal information with 3rd party sites." It could be an overnight death, at any moment.

Those folks might also kill their GMail accounts for the same reason, but they'll still be anonymously searching Google for information and getting relevant ads.

<comment><USER3> That is a really good point. Google can survive without specific personal data. Facebook cannot, by definition. That is a major factor in Google's favor.

</comment></comment></comment></comment><comment><USER4> Just a thought: don't people _love_ google. I mean in the sense that even non- techy users can look at google and say "wow these guys have changed the world". Or even at the very least, "hey cool, I found it".

Doesn't that brand affection count for something?

I have never met a non-techy user express love for facebook in the sense that it was doing anything special or even worthwhile. To them it's just yet another way to talk to their friends. Sure it may be the best way, but the perception is that its just a damned messaging interface. A cool contact book. I don't know.

Personally as a more tech-savy user, I _love_ google. They have done _so much good_ it makes it hard for me to get upset with them over privacy issues; so many things become pretty trivial. Google made information _easily_ accessible to the entire world. They liberated costly video media by taking on youtube's ridiculously non-sustainable business model. They run goog-411! <3\. Google maps is the best, google mail is the best, with google docs i can say goodbye to bloat-ware to write a freaking essay. There's google scholar, google translate, google code, ... they don't have to do any of these things, much less make them freely accessible and zero-cost for the entire world. Oh yeah, then theres little teeny tiny google.org

Man I love google, they can have my information anytime they want it. <3

Thanks google!

So my point is people can say xyz company is the next Google killer all they want. They can say feature is X is going to turn the tides. But really, perceived brand awareness/trust/loyalty _does_ count for something. Does facebook even have a charity arm?

</comment><comment><USER5> Google has a bit of a secret weapon here: they're using search/display history to personalize ads. This is in a quiet, limited "let's see if we can boil the frog" fashion.

What that means is that, if I search for "airfare from Nagoya to Okinawa" (which is a wonderful example of purchasing intent, incidentally), Google is going to try to get a second bite at the apple by biasing my AdSense ads to travel agents even if the site I am currently viewing is not about travel.

Facebook has some nice demographic information (a/s/l), but in terms of interests, your search and browsing history is much more accurate than your self-reported interests on Facebook. (Which is, after all, merely the self you want to describe to your friends.) Granted, your recent search/browsing history is not nearly as good as what you typed into the computer 1 second ago, but it will almost certainly perform better than Evony ads and other backfill garbage.

</comment><comment><USER6> Also...if Facebook takes "messages" and turns them into real e-mail, then that's another huge killer for Google (and Yahoo and MSN). Think of it...firstname.lastname@example.com.

Actually, really, think of this...the 15-year old girl that babysits my children...she'd never have a reason to ever leave Facebook. She can socialize, send e-mail, search the web...

...and when she goes out on the web--with, as you say, intent--then Facebook will know exactly how to monetize that intent.

<comment><USER3> Sounds like a return to the AOL model of accessing the internet through a portal.

Some part of me likes the idea of a portal by which I access information, but when I stop and think about it, in my mind that portal is the browswer and the data is the raw web. I don't like the idea of a site with personal information directing my use. But I'm atypical: I don't do social stuff, and I tend to use mail clients to download my mail through imap rather than webmail.

</comment></comment><comment><USER7> The author of this article talks about how Google's advantage is "intent": people who see Google ads are typically those that are searching for something. The problem is the author then utterly fails to make the case for how Facebook can tap into this, and ends up talking about Facebook's advantage over AdSense, not AdWords - and of course, it is AdWords that are geared towards intent.

> If Facebook can use my interests, sex, age, location, who I'm friends with > and their age, location, interests etc. to infer that when I'm searching for > a 'bobbin' it's probably because I want to tie steelhead flies with it, then > it makes more sense for every publisher on the web to use Facebook's ad > network than Google or anyone else because they will simply make more money.

The problem with this statement is, how does Facebook know that the person is searching for anything at all? After all, they are searching on Google, not on Facebook.

</comment><comment><USER8> What I'm wondering is: can't Facebook _create_ intent? If they know my favorite bands and location, can't they sell me concert tickets I might be interested in? If they know I'm in school and who my friends are, can't they not only advertise new places to rent, but _who_ I can rent with depending on similar interests? It seems like they have all the information they need to create intent, they just need to develop that "Oh, I got that through Facebook" reputation.

</comment><comment><USER9> > Google's data on each visitor pales in comparison to Facebook.

But how useful is Facebook's data really (serious question)? Apart from age, gender and maybe location (which is likely accurate). People like/share/become a fan of so much random stuff, things that don't tell you anything about what they might want to buy or actually be interested in. What do they learn when someone joins a group like "Can this pickle get more likes than Steven Harper" or "I hate when one string from my hoodie is longer than the other?" How many people keep their fan pages or interests up to date? When people have 1000+ "friends" how many of those connections actually mean anything?

Let's ignore intent for a moment, how good is their targeting right now? Has an ad within Facebook ever been for for something that you are interested in (purchasing)?

I'm not trying to say their data is useless, but I suspect there is more noise than anything else. Not to mention Google probably also knows your age, gender, location, didn't they used to require this information when you signed up for a Google account?

<comment><USER10> Right, but if they get those snazzy Facebook Like buttons on a third of the Top 100 sites on the Web, now they know where you go. And what you do while you there. Hmm.

<comment><USER9> Sure, but I would think that knowing what people are searching for is more valuable. Also, based on a quick scan on alexa.com, the top 100 (global) sites are a mix of search engines, social networks, news and porn sites. I doubt the search engines and social networks will adopt the like button and I'm not sure how much you learn about someone's interests based on the news they read and porn they watch.

Maybe they'll partner up with Microsoft and monitor your searches on Bing. I think they already show results from Bing when you search on Facebook.

</comment></comment></comment><comment><USER11> Amazon: Thanks for your purchase. Now tell us which of your friends would also like it and we'll give you a buck. And, don't worry, we'll never tell them you squealed.

<comment><AUTHOR> ...but if you aren't back here in a week buying something else we just might.

</comment></comment><comment><USER12> Fascinating prediction and I can see it happening, but 3-12 months is way too ambitious IMO. I'm not familiar with the inner-workings of the business, but I think they are still pretty lean, and their open reqs don't seem to indicate any plans to grow an AdSense like business anytime soon.

[http://www.facebook.com/careers/department.php?dept=online-o...](http://www.facebook.com/careers/department.php?dept=online- ops)

</comment><comment><USER13> How does this apply to pretty much any form of local search? It's not enough to know that you're 21 years old and have 50 friends... I need to know that you have a need for a plumber.

</comment><comment><USER14> So he's suggesting Beacon, only on every site you visit instead of just Facebook.

Given that Facebook users freaked out over Beacon, I can't imagine that working.

<comment><USER15> I always picture scenes from Minority Report when I read about Facebook and where it's headed. There was an uproar over beacon in part because it was blatant. It seems that Facebook has learned their lesson and is trying to rebuild beacon much more slowly and more visibly. Look at the types of things that you can't opt out of sharing now for example, or the amount of information that app developers or users of the "open" graph can pull.

[http://www.youtube.com/watch?v=ITjsb22-EwQ&feature=relat...](http://www.youtube.com/watch?v=ITjsb22-EwQ&feature=related)

</comment></comment><comment><USER16> A flaw in this argument is quantifying this statement:

"A significant portion of Google's $27 Billion in revenue this year will come from their publisher ad network"

The most recent data I was able to find is that AdSense brings in about 1/3 of Google's total REVENUE.

And Google must pay publishers a substantial portion of this revenue which means it's nowhere near as profitable as the core Google.com property.

[http://www.123jump.com/earnings-calls/Google-Earnings- Call-F...](http://www.123jump.com/earnings-calls/Google-Earnings-Call-Fourth- Quarter-2008/31158/)</comment>


Caves in Which Jewish Rebels Hid from Romans 2,000 Years Ago Found in Galilee - <AUTHOR> http://www.haaretz.com/jewish/archaeology/1.744834 <comment><USER2> Haaretz page layout has become awful. Banners sliding in from the top. Banners sliding in from the bottom. Banners which play thunder sounds.

It's a clickbait article, too. This isn't a new discovery. The Daily Mail had an article about it in 2011.[1]

[1] [http://www.dailymail.co.uk/news/article-2032155/Caves- Hirbet...](http://www.dailymail.co.uk/news/article-2032155/Caves-Hirbet- Madras-Jewish-rebels-hid-Roman-soldiers.html)

</comment><comment><USER3> Anybody know how this compares to Biblical history? This would have been around the time the Gospels were written, and Galilee is mentioned a lot in the New Testament. But was Christianity growing in Galilee at the time?

</comment><comment><USER4> An interesting article. But those caves were very... obviously there? Like a village full of people could look up at the cliff face and see the caves' entrances.

You can't tell me that teenagers from those villages weren't going up there and getting into some sort of trouble.

</comment><comment><USER5> And I thought it was Palestinians all the way down ...

</comment><comment><USER6> Not a recent discovery. I worry that these misleading headlines get recycled as anecdotal justification for Israeli land claims.

</comment><comment><USER7> Jews were exiled from the land of Israel by the Romans in 135 C.E., after they defeated the Jews in a three-year war, and Jews did not have any control over the land again until 1948 C.E. [http://www.jewfaq.org/israel.htm](http://www.jewfaq.org/israel.htm)

<comment><USER8> I mean, what goes around comes around when you're comitting mass genocide to take people's land. A whole lot of Canaanites had to die to make ancient Israel known as ancient Israel.

<comment><USER9> There was no genocide of the Canaanites. That's myth, not historical fact.

[https://en.wikipedia.org/wiki/Book_of_Joshua#Historical_and_...](https://en.wikipedia.org/wiki/Book_of_Joshua#Historical_and_archaeological_evidence) [https://en.wikipedia.org/wiki/History_of_ancient_Israel_and_...](https://en.wikipedia.org/wiki/History_of_ancient_Israel_and_Judah#Late_Bronze_Age_background_.281600.E2.80.931200.C2.A0BCE.29)

<comment><USER10> You aren't some kind of Canaanite genocide denier are you?</comment></comment></comment></comment>


Windows vs. Linux Scaling Performance with AMD Ryzen Threadripper 3990X - <AUTHOR> https://www.phoronix.com/scan.php?page=article&item=3990x-windows-linux <comment><USER2> The juicy bits:

 _" From all of these benchmarks, the geometric mean does show that the Windows 10 Enterprise does perform better than Windows 10 Professional on this HEDT processor particularly at 32 cores and above. Going from 16 to 128 threads on Clear Linux was 3.3x the performance with the tested software to Windows 10 Enterprise at 2.7x. At 16 cores, Linux was just 7% faster than Windows 10 Enterprise with these benchmarks but when taking full advantage of the chip at 64 cores + SMT, Linux was 29% faster. Going from 64 to 128 threads with SMT on Linux led to a 15% boost while Windows 10 Enterprise saw just a 7% boost overall. So, yes, for those wishing to take full advantage of the AMD Ryzen Threadripper 3990X, so far Linux is offering much better performance assuming your software is natively supported outside of Windows."_

</comment><comment><USER3> Whilst its always interesting to know whether the operating system is bottle- necking performance (as some versions of windows clearly do). I've never experienced a situation where I've actually had a performance reason to choose between Linux/Windows. For me it has always been "This thing I'm doing is linux only" or vice versa so operating system isn't a real choice.

Do people actually make decisions like that? I guess if you're doing some python based data analysis it could make sense.

<comment><USER4> It was a motivating factor for me when I originally started to look into Linux back in high school. It stopped being relevant for me when my focus shifted to preferring software freedom/transparency (and this is what ultimately pushed me into using Linux as my daily driver instead of "that cool operating system that actually runs decently on my old machines").

Now that Linux gaming is somewhat viable, performance is back on the forefront of my mind; it's fun to know that my (first-gen) Threadripper machine runs significantly better when I install Slackware on it instead of Windows.

</comment></comment><comment><USER5> There is a major qualitative difference between Windows and Linux here: Windows can't automatically balance threads across more than 64 logical CPUs:

[https://docs.microsoft.com/en- us/windows/win32/procthread/pr...](https://docs.microsoft.com/en- us/windows/win32/procthread/processor-groups)

</comment><comment><USER6> didn't they use the wrong Windows? "Windows 10 enterprise for workstations" is for massive pc's</comment>


AWS fraudulent charges, continuing since before August - <AUTHOR>

I've been opening support tickets since September, and have been calling in since before August, on a monthly basis, to try to resolve an issue.
Somehow someone has been charging recurring charges to my Bank of America credit card.
The worst of the issue is that AWS continues to charge the card after repeatedly assuring me that the charges will no longer occur.  Last month we went to the lengths of a 3-way call with a Bank of America representative and an AWS representative.  Thinking this issue was behind us, I was mistaken.  This morning I logged in only to see a new charge from AWS.
Is AWS incompetent?  Or are they playing games?
How do we make it stop? <comment><AUTHOR> I've gone through all of my accounts, and none show charges for this amount, and none are "linked" to the credit card, so it's definitely an account I don't have access to. They won't give me information since I can't login / give credentials to the account in question.

So I understand why they can't access that account, but I can't explain why they refuse to stop charging a credit card that I have in my possession and am the owner of.

</comment><comment><USER2> I'm using AWS too. Last couple of months I stopped their services (might re- new it this month) . They didn't billed me. Did you find-out why there are charging you like consumption of ec2 or snapshot etc ? Something running (or ran) without your knowledge?

If you think everything is fine. Then may be tell your bank to disapprove any payment request from Amazon with your account?</comment>


Neurotic Neurons: An Interactive Explanation - <AUTHOR> http://ncase.me/neurons/ <comment><USER2> The site has a lot of other cool visualizations.</comment>


How a keyboard changed what I look for in an editor - <AUTHOR> http://devblog.avdi.org/2015/06/04/how-a-keyboard-changed-what-i-look-for-in-an-editor/ <comment><USER2> This is why I always loath buying a new laptop. The first thing I have to do is look at the keyboard layout. Where did these designers try to fit the cursor keys this time? Where did they try to innovate on space efficiency using those 'disposable' keys: Home/End/PgUp/PgDn/Ins/Del?

I learned on an IBM compatible 101 (now 104) keyboard. I trained my hands against the 'correct' cursor management key layout: the inverted-T and the cluster above. It's not optimal, but neither is the saxophone. That said, you don't see too many saxophone designers changing the placement of the keys or inventing new fingerings. Not so for keyboards. Most of the innovation happens because of some industrial design requirement or some designer's whim (e.g., why do we still have this insert key here? Nobody uses it! Let's get rid of it and add a larger delete key). I'm not referring to the more interesting innovation happening on behalf of heavy keyboard users, like those mentioned in the article.

It used to be somewhat difficult to find modern 101/104 keyboards. I thank the code gods often, now that we have such a rich ecosystem around conventional keyboard designs. I now have a problem where I look for an excuse to buy a new keyboard to try out for one of the spots that I program at frequently, so I can just move my laptop and plug in. My favorite so far is the Cooler Master QuickFire Tenkeyless.

<comment><USER3> What I love doing - re-training myself to use a PC-101 keyboard after a week or some days using the rMBP on the road .. nothing funks up my flow more (in a good way) than going from the hotkeys of OSX to those of a moderately standard fvwm-based Linux desktop, and having a full keyboard switch-up to boot. I kind of think such small experiences are good for you, so I delight in it happening when it does ..

However, it terrifies me to use my friends' Dell and Lenovo machines, the key placement is often perplexing. I somehow think the layout is intended to bond the user to the platform, though, and few companies apply that as succinctly than Apple.

<comment><USER4> I switch the capslock and the control key, so that I have a fairly standard 101 XT key keyboard layout. I also "flip" the function keys, so that I have to press fn-f12 to increase the volume. I do that through keyboard pane of System Preferences. ctrl-F4 is then a goodie, that switches windows through the z-window buffer, independendt of the App. You can also mod your keyboard layouot through the cocoa text system, and then you all of suddenly have keys like ctrl-shift a and ctrl-E, ctrl-G (cancel) that works every where. I basically have emulated most of emacs in my modification of the cocoa text system, so that it works in every app that uses the cocoa text system. I have also bound up a lot of automator services to the free combinations of function/modifier keys. I am a happy user.

</comment></comment></comment><comment><USER5> Honest question: do other software engineers write code so quickly that keyboard efficiencies _really_ make a significant difference in productivity?

I agree that familiarity with a keyboard layout is important, as is familiarity and confidence with a given editor/IDE (frequent switching between keyboards/editors does seem to slow me down a bit), but beyond that, are you really feeling held back by the speed at which you can move characters from your brain to the computer? My own experience shows that much more time is spent just thinking about the problem at hand. Even when it comes time to write, I rarely (if ever) feel like the keyboard input part is slowing me down.

<comment><USER6> It's not just about how fast you can push code out your brain, but how fast you can manipulate code in your editor. Uppercase that constant, move subroutine bar to file foo, indent this section, move this code block 'til after the widget is frobbed, etc. These sorts of boring and tedious editing tasks are the ones I'd really like to speed up, and most of them all require the use of some kind of meta key.

It's not just programmers who want to be able to edit quickly, as an ops person sometimes I'm called upon to bang out and edit a lot of UNIX shell commands. Sometimes I'm doing this in tense SEV-fucking-0 situations where being able to edit and type quickly has a real benefit.

As an emacs user, my shell editing commands, editor editing commands, and text I type into GUI OSX text widgets all use the same control/meta key editing sequences. I also use a Kinesis, and use the two largest keys on the left 'thumb island' for control and meta. When I'm away from my Kinesis I use caps- lock for control and ESC-[ for meta.

<comment><USER7> I think some of this comes down to tool quality. I more or less never do the kind of repedative tasks that that your talking about.

</comment></comment></comment><comment><USER8> Is typing really such a big issue for programmers? I don't know about everyone else, but typing is perhaps 0.5-1% of my programming time. Is this different for other people?

<comment><USER9> I wonder about this every time the subject of editors comes up. There's a perception of efficiency for sure, but I wonder how much actual efficiency is gained in most cases. I just don't spend a lot of time on actual typing when programming, vs thinking about the code or testing or debugging or sifting through documentation. Plus I'm not on the same machine all the time, so lots of customization requires extra effort every time I have to jump on a freshly installed system.

<comment><USER10> A lot of people don't use vim because of its efficiency; they use it because it helps avoiding distraction and it's less tiring.

</comment></comment></comment><comment><USER11> I used to have a Happy Hacker keyboard and write Java (and other languages) in a customize emacs environment. These days I use a regular mac keyboard (so I can easily transition between my macbook and desktop setups) and run IntelliJ. And I _feel_ like I'm a whole lot faster writing production-quality code. There are definitely a few annoyances when using the IntelliJ emacs key binds, but this is more than compensated by being able to do things like automatically download and jump to referenced packages and having the IDE suggest code improvements ("I've noticed that you could be using the Java 8 lambda syntax here..." / "Do you want to remove these unused imports" / "This value may be undefined"). And now I can't write Java without IntelliJ, and I'm going to fail my next whiteboard interview ;)

<comment><USER12> I use a Happy Hacker keyboard in a customized emacs environment, but I'm pretty much Linux only, so no issues with transition between laptop and desktop, although I do have an older Thinkpad and the layout is slightly different, but not enough to screw me up. I cut my teeth on Sun Sparcs, and haven't found a layout that I like better. In fact, I actually have two keyboards; one for home and one for work, and the latter has a lot of "mileage" on it because it regularly travelled with me from New York to Hong Kong.

</comment></comment><comment><USER13> Interesting article, but the author mentions exactly why I could never get into a location-specific setup like a keyboard and foot pedal; I shift locations far too often (I'm currently working remotely from a Starbucks at the moment).

While maybe not going as far as becoming proficient in whatever setup could be considered the "lowest common denominator", I prefer to use a setup that is flexible across locations and environments. There's a lot of freedom in being able to move about between workstations and locations and still be fast and capable.

<comment><USER14> A foot pedal is no less discreet and portable than an external mouse, and those are pretty widely used and accepted at coffee shops (it could even be argued that the external mouse consumes more valuable space than the foot pedal - the mouse requires lateral table space and elbow room, while the pedal is literally on the floor beneath your feet).

Likewise I know developers that bring external keyboards like the Kinesis in their backpacks to wherever they want to hack.

Edit: that being said, you're right that it adds up. I believe the author of the article also uses a vertical mouse. That's a lot of gear to haul to Starbucks!

<comment><USER15> These kinds of issues don't boil down to the objective of size and space needs, but the subjective of what everyone else is doing.

<comment><USER14> In other words, one might feel uncomfortable being the only person in the coffee shop using a foot pedal because you don't want to break the mold? Seems a poor reason when the foot pedal could boost your productivity and/or prevent injury without adversely affecting your coffee shop neighbors.

<comment><USER15> It may be a poor reason for anyone used to thinking causes, effects and objective effectiveness.

But in the end humans are social animals. Thus peer approval, even if we don't know them by name etc, carry mental weight.

<comment><USER14> And we evolve! :) Eg., it's been acceptable for some time to operate an iPad with an external keyboard at the local hipster coffee shops. I'd argue that _anyone_ using a foot pedal at all is an early adopter - who knows what Starbucks' digital denizens will be using in a couple years? But we will arrive there faster if some of us eschew the lowest common denominator, even if we look funny doing so and have to haul around a peripheral or two or three.

<comment><USER15> Having an Apple rep demo it on stage at the next WWDC may help spur adoption...

<comment><USER14> Touche.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> When two programmers compare preferences, it usually seems like they've reached the same level of fluency by standing on completely different piles of input devices, editors/IDEs, languages, plugins, transpilers, etc. Arguments about the superiority of one part of their pile assume that the other person is in a position to need those things.

"Textmate? CoffeeScript? But how would you ever navigate your 900-line files without Vim?"

</comment><comment><USER17> Seriously, the thought about foot pedals had never crossed my mind, AT ALL, even after so many years of reading tech news, it's a completely new concept.

Disregarding the practicality or the actual use, I think it is a very interesting concept and possibility that could be explored.

<comment><USER18> Uh, it's not a new concept. I had foot switches for typing back in the late 80s. I knew quite a few people in the 90s that were big on the concept too. It was a bit of a fad when the first round of ergonomic keyboards started becoming popular.

For a non-anecdotal perspective, emacs users have been doing this for quite a while [http://emacswiki.org/emacs/FootSwitches](http://emacswiki.org/emacs/FootSwitches). go ahead and search for foot switches as well. They all look old and dated don't they? There's a reason for that.

It's not talked about much because it's difficult to learn, non-portable and the need for foot switches is mitigated by proper technique when typing.

<comment><USER17> Yes, I was just surprised that I didn't ever hear about it. It's not that it's something new, it's clearly not :)

</comment></comment></comment><comment><USER19> Most Mac users on here are probably used to the US layout of keyboard. Check out the UK version for a mean bit of design. The left hand shift key barely exists and the return key is a remote sliver. I always buy the US keyboard when I get a new machine.

[http://i01.i.aliimg.com/wsphoto/v1/1853014535_2/Wholesale-5P...](http://i01.i.aliimg.com/wsphoto/v1/1853014535_2/Wholesale-5Pcs- X-UK-EU-Keyboard-Cover-Skin-Protector-For-MacBook-Pro-Air-13-15-17.jpg)

<comment><USER17> I've gotten so used to the Spanish ISO layout that I don't really need it on the actual physical keyboard, I think it is a very practical layout for programming.

Specially considering all the braces:

[] is done by Alt Gr and the two (consecutive) keys that come after the "p"

{} is done by Alt Gr and the two (consecutive) keys that come after the "l"

() is done by shift 8, 9

\|@#~ Are all done with Alt Gr and the º key, 1, 2, 3 and 4.

Maybe it's just being used to it, but I find it extremely practical.

<comment><USER20> Funny. Despite being in Sweden I always try to get US keyboards just to avoid the whole AltGr thing for braces.

<comment><USER21> How do you write åäö? :)

<comment><USER20> Either alt+134 etc on the numpad (windows), holding down the a or o key (OS X) or by temporarily changing to Swedish keyboard layout, depending on the situation.

</comment></comment></comment></comment></comment><comment><USER22> Huge fan of the conclusions. And many hackers do that already, spending hundreds of dollars for high quality key boards and mouses. But we certainly haven't reached the point were our tools are as professional as a pilot's.

</comment><comment><USER23> I have a Kinesis and I've give it a good go. My main problem with it is that, while typing is absolutely wonderful and comfortable very quickly, you should keep your hands in the proper position the whole time, or you can't do anything.

For example, use a mouse and copy, or even just to use a mouse gets to you for the proper position. A typical use of c select with a mouse, copy, move the cursor and paste, is very weird. Also something like write something with a pen and move pages up and down. A regular keyboard allows you to move right and use your left hand for right keys (cursors, etc). With the Kinesis, this is uncomfortable.

The pedal is also weird and needs a lot of adjustment.

I used it for a while, and encourage to everyone around me if they want to give it a go, but I moved back to a more regular keyboard...

</comment><comment><USER24> I think there is not enough innovation happening in the space of HID's. Both the software and the hardware are limited. Sometimes you see innovative keyboards, but they are not revolutionary because they always think they have to provide the legacy 10x-keys design. And software always expects to receive those keys, which is a huge problem.

In Steam Big Picture you can type with a gamepad if you go to the friends- chat-mode. Why is this limited to Steam Big Picture? This should be functionality provided by the system to be used by all applications. And applications should adapt the input layout and themselves depending on the HID that is being used.

I wish it'd be possible to use text editors with a 3D mouse or pedals and a camera, without having to invest a huge amount of time to make it work.

<comment><USER25> Hm, I searched for the keyboard and a review on Anandtech came up. I am linking to the typing test benchmarks:

[http://www.anandtech.com/show/7125/kinesis-advantage- review-...](http://www.anandtech.com/show/7125/kinesis-advantage-review- longterm-evaluation/4)

In Typing tests (granted Aesop's Fables, not programming) there isn't really that much difference. Even compared to a Laptop keyboard.

In 10-key typing (entering numbers) the Kinesis Advantage is really bad.

</comment></comment><comment><USER26> The pedal sounds appealing. But the lack of portability of all these hardware will not convince me. I still stick to the unbeatable keyboard hack I described some days ago: [https://news.ycombinator.com/item?id=9605791](https://news.ycombinator.com/item?id=9605791) (i.e arrows, return, pgup/pgdn, delete/backspace available at the middle of the keyboard)

Another feature that is quite interesting if you code with IntelliJ or Eclipse is the "Quick Access" key. Ctrl+3 on Eclipse (hint: remap this to a more convenient key NOW!) or Ctrl+Shift+A on IntelliJ (same hint applies), and all you commands can be accessed by quick typing. No need to go for Ctrl, Alt or any key combination.

With all this, _any_ keyboard is efficient.

</comment><comment><USER27> Right now, I'm using that keyboard's less wealthy sibling, the kinesis freestyle. I've found that it's a lot more flexible, as I can stop, do other things, like use a drawing tablet or mouse, without the needing to put my hands in the bowls like i would with the advantage. Also, I have smaller than average hands, so I get the feeling that the advantage would not be as useful for me.

Now, what I'd really like to see is keyboards made with different key sizes. A 3/4 size keyboard that has proper mechanical switches would be very, very nice indeed. Hell, I actually like 15" laptops with full keyboards because that tends to mean that they've shrunk each key to fit, and it gets to right about the sweet spot in size for me.

<comment><USER28> I love the freestyle. First keyboard I've used without hand pain. I recommend rolling a t-shirt or putting a foam pad below your wrists to prevent strain.

<comment><USER27> I got the accessory kit with the wrist rests and slanting mechanism at the same time as the keyboard, so that part's not an issue. I got mine before I've started having wrist pain as a preventative measure. I'm 35 with weird genetic conditions regarding my joints, I don't need to exacerbate things.

I think the other piece of the puzzle is that a lot of people don't properly adjust their chair and/or monitor for good ergonomics either. Eye level with a monitor should be right about at the top of the screen. It takes a tiny bit of getting used to at first, but then you really start noticing how much less neck strain you have.

<comment><USER28> Yup! I've been trying out a standing desk about a quarter of the time and that's been helpful too.

</comment></comment></comment></comment><comment><USER29> I've been interested in Kinesis keyboards for a while now but am still undecided because the more I think about the whole problem of HCI from a programmer's perspective the more I question my own assumptions. I'm wondering if something far out like the Twiddler could really work for somebody living in a text editor with vim bindings most of the day. If anybody had to share their experience with it I would be very interested to hear it (e.g. experience working with your legs up).

[http://twiddler.tekgear.com](http://twiddler.tekgear.com)

<comment><USER30> Though I've never used the Twiddler, I did spend about a year using a different one-handed keyboard due to injury. It was a FrogPad. It's a fine device for typing out sentences, but perhaps not ideal as a code editor. I eventually set up a full-sized keyboard right next to the FrogPad because it just felt easier to hit certain keys and chords that way. There might be better one-handed keyboards out there for programming, but I'm a little sour on the whole idea.

During this time, I also did some experimentation with voice recognition. It worked really well when coding in lisps. This was over ten years ago, and I'll bet this would work even better now.

I also have experience with the Kinesis keyboards; I used the Freestyle—not the Advantage featured in the article—following my recovery for about six or seven years. Though it looks like a medical device, the ergonomics are excellent. The Kinesis is a better typing experience by about 1000x. I have since switched to the homemade Ergodox, but still recommend the Kinesis.

<comment><USER29> Thank you very much for sharing that, I'll probably get a Kinesis (still would like to at least try the Twiddler - might make sense with VR etc).

</comment></comment></comment><comment><USER31> I'm a big fan of the Kinesis keyboard. I use Emacs, and I was starting to have some RSI symptoms from the ctrl/meta key combinations when I discovered the Kinesis. Moving the modifier keys (except for shift) to the thumbs is a huge improvement.

The arrow key layout is actually one thing I don't like about the default Kinesis configuration (the bottom row for the left hand is backquote, backslash, left arrow, right arrow, and for the right hand it's up arrow, down arrow, left bracket, right bracket). I remap these keys to put all the arrows on the right hand (in vi order).

<comment><USER32> The arrows are weird and the less-than-normal function keys are suboptimal (and I've used these keyboards long enough to run into some very rare firmware quirks and odd choices made by the maker). However, since everything else is so AWESOME - the hand position, being able to do CTRL+ALT with one thumb while keeping all the fingers in normal position and being able to map the other two mod keys to ALT, META, and then CapsLock to Hyper (for window management only, in my case)... oooh, this keyboard rocks for most things, including coding and gaming (assuming the game supports changing your keybindings to optimal keys - WoW does, for example). I think I have four of them, and my girlfriend prefers hers to normal keyboards. They've totally eliminated my incipient RSI. (rave, rave, rave). However, I do wish they'd fix the little issues that remain in some future board, so I don't have to keep musing over whether to buy a Maltron to compare.

</comment></comment><comment><USER33> I like this article, but what about the design of keyboard/mouse integration? There are still a lot of things you have to use a mouse for everyday. I feel like IBM hit a home run with the trackpoint, yet somehow it never hit mainstream. I would pay a lot of money for an ergonomic keyboard with a trackpoint. Microsoft sculpt or 4000 with trackpoint would be awesome. Just replace the stupid scrolly thing with a trackpoint.

</comment><comment><USER34> I'm surprised that there haven't been more keyboard projects on KickStarter, which has been a boon for hardware projects.

A modern version of the DataHand would be cool.

[http://octopup.org/computer/datahand](http://octopup.org/computer/datahand)

A controller like an AlphaGrip: [http://www.alphagrips.com/](http://www.alphagrips.com/)

<comment><USER14> Funny you should ask - there's a kickstarter launching tomorrow for a pretty legit keyboard project: [http://www.keyboard.io](http://www.keyboard.io)

<comment><USER35> Looking forward to this. Do you have any videos contrasting Keyboardio vs. the tradition keyboard, or do I need to wait until the campaign goes live tomorrow?

<comment><USER14> No I haven't seen videos. Honestly I'm just impressed by the level of iteration from prototype to prototype that Jesse has blogged about extensively for some time, leading up to [http://blog.fsck.com/2013/12/model-00.html](http://blog.fsck.com/2013/12/model-00.html) .

</comment></comment></comment></comment><comment><USER36> I also have a Kinesis Advantage. I use colemak keyboard layout as well so I've customized the layout a bit. Because capslock is backspace in colemak, I changed the backspace key to control. VI sucks with colemak so I eventually moved to using emacs. It works very well for me - your thumb is always on control.

</comment><comment><USER37> I hit the left Control key with the edge of my palm, and use my thumb to hit Alt. Those are the only modifier keys I use regularly, other than Shift(which I can comfortably hit with my pinkies).

This practice along with evil-mode and Vimperator means I barely have to move my fingers of the home row while operating my computer.

<comment><USER38> I use the knuckle of my little finger: [http://quadruple-a.com/keys/ctrl.jpg](http://quadruple-a.com/keys/ctrl.jpg)

I've been using emacs for 9 years like that without a problem. I didn't realise you were supposed to swap your Caps Lock and Ctrl keys, so I never did. (And now I know you're supposed to, I just ignore it the advice. I don't think it's especially good advice, though, as always, if it works for you, feel free to heed it.)

</comment></comment><comment><USER39> that's funny, how every article mention using pinkie for modifier keys. I always used thumb for that :) in fact i just tried to keep an eye how i am using keyboard and i found i rarely using pinkie at all. This is on standard- ish full-size laptop and 104 desktop keyboards.

</comment><comment><USER40> I would love a keyboard that lets my hand move around freely instead of lying awkwardly flat on the desk.

Also, I would like to code while lying on the bed, a keyboard I can wear like gloves would be great.

If not, a keyboard in the shape of /\ lying on desk would be a much better design.

<comment><USER41> Something like this matches up with your last desire.

[http://www.thehumansolution.com/kinesis- freestyle.html](http://www.thehumansolution.com/kinesis-freestyle.html)

</comment></comment><comment><USER42> Startup idea: We have a lot of dexterous muscles in the face. The keyboard could probably be replaced with a face sensor. I would love to work from the couch, only using my face.

<comment><USER43> That is what Stephan Hawking does.

[http://www.hawking.org.uk/the-computer.html](http://www.hawking.org.uk/the- computer.html)

"My main interface to the computer is through a program called EZ Keys, written by Words Plus Inc. This provides a software keyboard on the screen. A cursor automatically scans across this keyboard by row or by column. I can select a character by moving my cheek to stop the cursor. My cheek movement is detected by an infrared switch that is mounted on my spectacles. This switch is my only interface with the computer. EZ Keys includes a word prediction algorithm, so I usually only have to type the first couple of characters before I can select the whole word."

<comment><USER42> That was some quality procrastination ... I understand that he basically have two switches, giving him a total of four combinations, witch is a bit crude.

The face have twenty muscles, Hawking probably can't move all of them, but for a normal person that would mean around one million binary combinations. Or 10^20 combinations if each muscle contraction was measured on a scale 1-10.

Until such a product is released you could start practicing your facial muscles by doing waves with your eyebrows and moving your ears and nose wings etc.

</comment></comment></comment><comment><USER44> Btw, where did you learn to touch type? I used [http://www.typingstudy.com](http://www.typingstudy.com) but is it the best option?

</comment><comment><USER45> Editor's remark:

      M-x replace-regexp ↩ foot pedal ↩ pedal

or

      M-x replace-regexp ↩ foot pedal ↩ foot switch

</comment><comment><USER46> I find it better to eliminate Win key and remap Alt to Capslock.</comment>