Show HN: Vecta.io - Team diagramming with an advanced SVG editor - <AUTHOR> https://vecta.io <comment><USER2> \- First impression is impressive. Clearly a large amount of work and engineering effort invested that ended up in a powerful product. Well done.

\- You need a damn video on your home page! Many click and try products don't need this. But here the collaboration aspect simply has no chance to fully shine and show it's true potential in 60 seconds without a short demo video.

\- An API / Plugin option would be great to see, as would an embeddable version. Understand this may not fit your priorities / business model.

\- Why no iOS or Surface support? Seems like iPad Pro, with or without pen, would be a great fit and not require a huge amount of development to make it happen. The work needed for this would also enable Surface Pro to work as a touch/pen experience. iPad Pro and Surface Pro combined have a significant amount of corporate users > revenue potential.

<comment><USER3> Thank you very much. We worked really hard to get Vecta up to this stage. Your feedback meant a lot to us. Now about that API option, we do have plans and it is actually... already built in! We have plans of opening it up soon, but here's a little something you can do in your browser's JS developer console. Try typing in Vecta.

The namespace 'Vecta' allows you to access the page or shapes in your active drawing. Vecta.activePage.shapes returns you an array of shapes in your current drawing. You can try setting the color to the first shape with a simple line like this: Vecta.activePage.shapes(0).style('fill', '#ff0000 ');

<comment><USER4> Signed up and created a new doc in latest chrome with ad blockers disabled. Stuck at "Loading" throbber with js console err:

-KoI4H-rmhQDnC4k4U3X:234 GET [https://vecta.io/js/jspdf.debug.js](https://vecta.io/js/jspdf.debug.js) -KoI4H-rmhQDnC4k4U3X:234 GET [https://vecta.io/js/jspdf.debug.js](https://vecta.io/js/jspdf.debug.js) 404 () objects.3f4dc78a27.js:3 Uncaught (in promise) TypeError: Cannot read property 'width' of undefined at Vecta.Document.insertPage (objects.3f4dc78a27.js:3) at Object.callback (objects.3f4dc78a27.js:3) at fire.afed4e0fe2.js:1 at <anonymous>

<comment><AUTHOR> Sorry for the error, we're looking into it. Please allow us to buy some time.

</comment></comment></comment></comment><comment><USER5> I would disable the open demo, i was greeted by this on your homepage ;)

[http://imgur.com/a/dUKjq](http://imgur.com/a/dUKjq)

<comment><AUTHOR> Really sorry for the unexpected "welcome note" on the open demo, we'll be improving on the demo process :)

</comment></comment><comment><USER6> Product demo should probably be specific to your session. It's great to be able to try it. But unmoderated user content front and center on your main page doesn't work so well.

ETA: More specifically, there was a lot of flashing of offensive text.

<comment><USER7> > Product demo should probably be specific to your session.

i agree, make it a per-user demo. THere's so much in the demo document on the front page that it lags and prevents scrolling...

<comment><USER8> At the moment the shared demo is pretty much unusable due to people deleting stuff before you can do anything with it.

Which is a shame as it actually looks like a pretty nice tool.

<comment><USER9> Please do try creating a free account where you can edit your own drawings and easily share them.

</comment></comment></comment></comment><comment><USER10> I like the idea -- this is something I would use and pay for if it were good enough.

Advice, in addition to all the other advice here:

\- Connector line routing needs to be _good_ (currently it doesn't really work) and if it were _great_ then that would be a huge selling point.

\- You should consider including a ton of "Cloud" (AWS, Azure, Google) symbols and icons out of the box. There are crappy ones available free from Amazon, that would be a start at least. I think "cloud architecture" is one of the biggest use-case for diagramming software right now.

\- Not sure if you're using SVG as the native format but if not, consider it. The main reason I didn't upgrade to the new OmniGraffle was its so-so SVG support. Imagine a use-case where people collaborate on a drawing and then store the result in Git, maybe do some batch editing elsewhere, then need to get it back for more visual editing.

\- If you want to get traction in the Enterprise world ( _the horror!_ ) then you probably need a Confluence plug-in at some point.

<comment><USER9> Thanks biztos, absolutely agreed on connectors and we are now improving it as we speak.

-Cloud icons are already there and so is a load of web applications icons, click on the menu icon to the right of stencil to access it.

\- We are using SVG format as it has wide spread adoption and does not lock our users in.

\- Confluence integration, coming up real soon.

Thanks for pointing these out.

</comment></comment><comment><USER11> Looks very nice. Looking forward to what's coming.

I tried to share a document via mail, clicked on "Get Share Link" and allowed public access and then closed the window with "Ok". I'm still asked to log in. When I click on Share again my share link is gone. So this doesn't seem to work currently.

<comment><USER3> Thank you very much for the feedback. We'll work on improving the share dialog. If you notice anything amiss with the UI, please don't hesitate to reply. It's feedbacks like this that makes the team eager to get things done! :)

</comment></comment><comment><USER12> I am surprised no one mentioned SVG-edit, which is open-source: [https://github.com/SVG-Edit/svgedit](https://github.com/SVG-Edit/svgedit)

<comment><AUTHOR> Oh we weren't aware, thanks for telling. But we're hopeful to do more than that rather than just simply svg editing :)

</comment></comment><comment><USER13> Great job on this. One thing I'd do is replace the demo on the homepage with a video and a link to a demo. Why?

The demo slows down the web page, especially on mobile. So put it behind a deliberate action. That way you can also make the demo full screen instead of rendering it 75% of its normal size.

Edit: That way it's also clearer that when someone is using the demo to post swear words, like what is happening now, it isn't on your main page.

<comment><USER3> Thanks for the input! We just thought that it's a great idea to let visitors try out the product immediately on the landing page. We'll look into improving the whole demo process.

<comment><USER13> I think a video would better communicate your product then a demo would. Why? Because people don't have time to figure out all of your features, give me a short one min introduction with important features. Now I'm not saying remove the demo, but the demo is for after they are interested and want to evaluate your claims.

<comment><AUTHOR> Hey Ruben, it's up now! Just a temporary fix. [https://youtu.be/qUw1daqFmEM](https://youtu.be/qUw1daqFmEM)

</comment></comment></comment></comment><comment><USER14> Recently, I evaluated different JS drawing tools and libraries.

Its very cool that your web app does not clog the whole CPU like similar tools. Can you tell a little bit about the technology stack. Feel freeto skip questions if they are too invasive.

1\. Do you use a drawing library or is this in house?

2\. Do you store the SVG-objects as JS-objects?

3\. If (3), how do represent the SVG-objects? (I looked into hyperscript).

4\. If (3), how do you render the JS-object version to SVG in the DOM and update them? Do you use something like React, i.e. 'render' the whole thing to a VDOM and then update changes in dom for each update, or do you bind each SVG object to its JS object via an Observer?

4\. A drawing app has obvouisly many states like UserCanSelectObjectByClick, UserClickedFirstPoint, UserMovesRectangle. Do you use state machines, generators, or sagas to implement these flows?

6\. Do you use Websockets? Which library would you suggest? (A classical choice would be socket.io, but it is relatively heavyweigh).

7\. Do you somehow abstract the mouse-events with jquery or d3? Any plans to support touch?

8\. What happens if two users modify the same object?

<comment><USER9> 1\. We tried drawing libraries before using something in house. In fact what we have now is actually the 3rd version, where we throw away 2 previous versions that is not working as well as we would like. 2\. We do not store SVG objects as JS object as we think that will be too memory intensive on a browser. What we have are wrappers, that will take SVG and wrap it internally as objects and to have a consistent and easy way to manipulate them, and once done working with them we throw them away. For example, we have wrappers for rectangle and ellipse and they both uses .move(x,y) and .size(width, height) which is more consistent than using SVG which requires x, y, width, height for rects and cx, cy, rx, ry for ellipses.

In addition, we have plans for opening up our API, so that people like yourself can build solutions on top of Vecta, right now you can play with it programmatically by opening your console, and typing Vecta. This single namespace allow you to access the page or shapes, Vecta.activePage.shapes, or you can set color to the first shape with Vecta.activePage.shapes(0).style('fill', '#ff0000');

4\. We use document fragments to render to shadow DOM and write it to DOM, using in house code. However, we have found that what really matters is not so much of speed offered by rendering to shadown DOM but instead of the calculations we have to make internally like making sure the center of rotation and the tight bounding box. These, due to the inability of browsers to calculate them accurately, we have to make.

5\. No, we rely on DOM and classes and wanted to keep things simple, so we have objects that handle the handles (no pun intended).

6\. We use firebase. It not only handles our collaborative editing well but also allow us to generate previews, smooth and easy login, upload to storage, etc. We love firebase!

7\. We do abstract mouse events, key events and many others with internal objects. These objects provide more information, like which shape the user has clicked on and therefore makes the entire task of handling the editing far easier, and we use JQuery for it's ease of use and cross browser compatibility.

8\. There is no such thing as 2 users modify the same object at the same time, as one is always slower than the other. The slowest one wins. Say, I drag the object right and you drag it left, if you do it later, then the object is gonna go left.

Hopes that helps! Thanks for asking.

<comment><USER15> Thank you for the technical details. Probably a bit late for you guys, but we offer a BaaS tailor-made for this sort of product. For instance you could add multiple mouse tracking and selection awareness in a matter of hours with our APIs. Check out our diagram demo for a taste: [https://convergencelabs.com/demos/](https://convergencelabs.com/demos/)

<comment><USER9> Amazing! Will surely be keeping an out out for you guys as our requirements may change.

</comment></comment></comment></comment><comment><USER16> Really quick question since it looks quite similar (but might just be coincidence), did you happen to use this for the right click context menu?

[https://stackoverflow.com/a/20471268/938236](https://stackoverflow.com/a/20471268/938236)

Just asking because it's my answer and I'd be really happy to see someone using it!

<comment><USER9> No, we use our own code plus some triangulation to predict user's mouse direction so that the menu will not hide if we detect a user heading that direction. Your answer is great by the way.

</comment></comment><comment><USER17> Great app, thanks for building this - I plan on using this with my team at work immediately.

The only problem I had with the app was during registration. I decided to use my Google account to register, and upon successful redirect back to the app via OAuth callback, I was prompted to click a button to create a new user account instead of being logged into the app.

I found this confusing because I expected the step of generating my user account to be automated in the OAuth callback. There was also a heading on the page that was something like 'No Account Found', which added to my confusion as the OAuth process was supposed to (I expected, at least) create the account record.

<comment><USER9> Thanks a million, will double check on the flow to ensure no confusion and smooth flow. TQ!

</comment></comment><comment><USER18> It's interesting. Is this a product that solves a particular problem you've found in the past? Or a product trying to find a market.

I don't wish to sound negative, it's a genuine query because I really can't think of a single instance in the past when this would have solved a problem for me, but I wonder if there's niches I've not been exposed to.

<comment><USER9> This is a product that we are trying to solve a particular problem we are facing. How do we easily create amazing diagrams that is accurate and share them easily with our customers. How do we collaborate with others and be able to easily show what we meant. How do we built automation on top of it, so that it will help us count things, generate reports, etc. etc. So there, this is actually a first step where we have a few more things we wanna do down the line.

</comment></comment><comment><USER19> I signed up and tried creating a new diagram, but it's been stuck on the "loading" screen for several minutes now.

<comment><AUTHOR> We've just tried on our side, works fine. Was it still the same after refreshing?

<comment><USER20> I'm having the same issue. Appologies for the lack of formatting, let me know if I can hop on a chat to help out further.

Following console errors:

Failed to load resource: net::ERR_BLOCKED_BY_CLIENT www.facebook.com/impression.php/fcb4620c12f5dc/?api_key=1598145426866140&lid=115&payload=%7B%22source%22%3A%22jssdk%22%7D Failed to load resource: net::ERR_BLOCKED_BY_CLIENT www.facebook.com/tr/?id=1598145426866140&ev=fb_page_view&dl=https%3A%2F%2Fv…=https%3A%2F%2Fvecta.io%2Fapp%2Fdashboard&if=false&ts=1499106496718&es=APP Failed to load resource: net::ERR_BLOCKED_BY_CLIENT objects.d347593dbb.js:3 Uncaught (in promise) TypeError: Cannot read property 'width' of undefined at Vecta.Document.insertPage (objects.d347593dbb.js:3) at Object.callback (objects.d347593dbb.js:3) at fire.36207b0522.js:1 at <anonymous> ui.f6e4c67621.js:2 Uncaught TypeError: Cannot set property 'font_style' of undefined at Object.setFontStyle (ui.f6e4c67621.js:2) at ui.f6e4c67621.js:3 at dispatch (jquery.min.js:3) at q.handle (jquery.min.js:3) at Object.trigger (jquery.min.js:4) at jquery.min.js:4 at Function.each (jquery.min.js:2) at r.fn.init.each (jquery.min.js:2) at r.fn.init.trigger (jquery.min.js:4) at Object.Vecta.trigger (utils.1a5acb0310.js:1)

<comment><AUTHOR> Many apologies, may we get back to you in 4 hours or so? Our devs are all asleep now (huge time difference), and I'm afraid I can't help much :/ Really sorry, I'll ensure it is fixed in max 5 hours' time

<comment><USER20> Not a problem! How can I reach out via email? I'd be glad to assist when everyone's available. And since it's beta, don't worry about getting me a time back, as long as I can get the developers some info we're cool :)

<comment><USER3> Hey abuani. I can't seem to replicate this bug you spoke of. Please feel free to get back to us whenever you can on this bug.

<comment><USER20> Hey I am SO sorry! I had a bit of a crazy week and totally forgot about this. Let me see if it's all good now and I'll get back.

Edit: Can confirm: All good :) In the future, I'll make sure to post a bug in the official spot now that I know where it's at!

How has the week been? Have you seen sustained activity?

<comment><USER3> No worries brah. Yay! Great that it's fine now. The week has been crazy by the way. Increased traffic, people taking notice of our work. It's a great week. We're really happy for the feedbacks we've been receiving. Enjoy your stay in Vecta!

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> Hey HN folks! We've added stencils on the demo page. We created the symbols using Vecta. Give our stencils a try! Here's the direct link to the demo page.

vecta.io/app/edit/demo

</comment><comment><AUTHOR> SHORT DEMO VIDEO FOR VECTA: [https://youtu.be/qUw1daqFmEM](https://youtu.be/qUw1daqFmEM) A temporary one for now. Thanks to WitneyLand & RubenSandwich for suggesting! :)

</comment><comment><USER21> This looks most promising. I've always longed for an online collaborative version of OMNI graffle (they have such nice gradients and document themes and their UX almost always does what you want).

<comment><AUTHOR> Thanks! We were also looking for alternatives previously before started building Vecta, but none fits the bill. Atm we gona polish Vecta up and ensure it's as good as what our users expected or even better :)

</comment></comment><comment><USER22> Great products. But your header bar in frontpage has a transparent background. It's great for the hero section but completely unusable in the content section. Add some background to it

<comment><USER9> Will absolutely double check on this one, and we did add a white background to and but will sure check why it does not work as well as we would like. Thanks a million for the feedback

</comment></comment><comment><USER23> Great app, really.

What I would really like woube be 1) an API 2) ability to sync with dropbox.

My team has about a dozen diagrams in out Git repository, so I'd really like a faster way of exporting vecta->folder.

<comment><AUTHOR> Well received, will work on it up next. Please do allow us to buy some time, we're a small team of 5. Thanks a lot for the inputs and kind words! :)

</comment></comment><comment><USER24> Demo wouldn't load (Chrome 59 MacOS).

      objects.685ed2904d.js:1 Uncaught (in promise) TypeError: Cannot read property 'type' of null

<comment><USER9> TQ, remedied will look into it further.

</comment></comment><comment><USER25> Please allow login and email verification after I have logged in. it took me extra few steps. thanx

<comment><USER3> Hey there, I believe the whole process does have email verification, depending on which login you use. Can you explain a bit further on this?

</comment></comment><comment><USER26> No pricing, doesn't appear to be open source, so why would I rely on this?

Too many SaaS apps go the way of the dodo these days - if I can't run it myself it's going to be a hard sell, and if you can't make a case that you're profitable, I'm not gonna take a risk on your flash in the pan project.

<comment><USER9> Thanks for the feedback. It's in beta now, and pricing is still in the works as we strive to provide value yet offer an affordable pricing. As the company behind Vecta, we have been profitable for a long time and has been making CAD software, for a while, and so we won't be going away anytime soon, well, at least that's the plan :)

<comment><USER27> I think those are the same words every new business ever have said.

You need to address pricing, even if it is stating that we're not sure yet. As it is, it looks like you just want to avoid the topic.

Also, assure me that my diagrams can be exported, backed up locally, etc. Maybe a github integration or something similar? Anything that lets me know I'm not locked in. I won't allow my data to be locked in.

<comment><USER2> >same words every new business ever have said

No.

Being backed by a longer term profitable entity that has related tech, is definitely not what most new SaaS vendors say. It's not a guarantee but it's a legit plus.

SaaS startup promises and unsustainable offers are a real and serious concern. But when a product is just getting launched, still in beta, there's nothing wrong with them taking some time to figure out the parameters.

The very thing you are demanding makes it prudent for companies to do everything they can to get pricing and promises right.

</comment></comment></comment></comment><comment><USER28> Feature request: Jira integration (atlassian marketplace)

<comment><USER3> Yup. It's in our plans! :)

</comment></comment><comment><USER29> It's awesome that you can try the product on the landing page.

<comment><AUTHOR> Yea, we think it makes more sense that way. Almost all features available on landing page aside from symbols & stencils and some team features. Thanks for checking us out btw.

</comment></comment><comment><USER30> Feature request: side-scrolling without pressing shift.

<comment><USER9> Thanks for the feedback, will surely look into it.

</comment></comment><comment><USER31> Why does the homepage repeatedly show 'c*nt'?

<comment><USER32> Someone seems to be playing with the demo in a not so nice way.

<comment><AUTHOR> Yea, we overlooked this part when putting up the demo page. Will be remedying it real soon. TQ

</comment></comment></comment><comment><USER33> It looks quite impressive, but a bit on the slow side.

<comment><AUTHOR> We'll have a check on that. Thanks for telling!

</comment></comment><comment><USER34> Pop-up for Single sign-on logins will loose you visitors. Consider putting that in a workflow in-page instead.

<comment><AUTHOR> Ok will look into it, thanks!</comment></comment>


I returned my 2016 MacBook Pro with Touch Bar - <AUTHOR> http://www.jeffgeerling.com/blog/2017/i-returned-my-2016-macbook-pro-touch-bar <comment><USER2> If you've got the previous generation of macbook pro and are wondering whether you should upgrade, here's an alternate suggestion:

I took my 2014 retina macbook pro to the Apple Store and got a "topcase replacement" (because my keyboard was beat up with overuse and starting to get flaky). That had the side benefit of giving me a completely new external case, so it looks brand new again. And it includes a brand new battery. And I got a new display for free, because there's a recall on that generation of retina displays for delamination issues.

It feels like I just bought a new laptop at one fifth the price. And the specs on it are still competitive with the 2016 models: 16GB ram, 3ghz core i7. Only the very highest 2016 configuration even beats it, and that by only a little.

<comment><USER3> > 3ghz core i7

I hope Apple hasn't succeeded in reducing processor comparisons to these two useless tidbits of information...

Based on just "3GHz core i7", a chip could either be painfully out of date or current top of the line.

<comment><USER4> > Based on just "3GHz core i7", a chip could either be painfully out of date > or current top of the line.

This has always bothered me too. I suspect that the ambiguity is intentional on the part of Intel and/or Apple marketing (though I'm not savvy enough to know why exactly).

<comment><USER5> Linus mentions it in one of his videos. The idea is that Intel doesn't want you worried about the generation, only whether it's i3/i5/i7. I guess this helps them mask over the fact that, year on year, CPUs aren't really getting any faster in single-threaded performance.

<comment><USER6> Linus Torvalds?

<comment><USER7> There's some YouTube tech review guy whose name is Linus.

</comment></comment></comment></comment></comment></comment><comment><USER8> I bought one when it was announced. I desperately needed to replace my 13', 128G MBA (couldn't change the disk).

My major concern about the touch bar is that it really makes things worse. I second the author opinion.

I use Spotify a lot. Before, on my MBA, I could change the volume or hit play/pause with one key tap, straightforward and easy.

Now I have to hit the tiny expand arrow to display these keys and then hit play/pause etc.

It could get even worse because Spotify added their own touch bar buttons when you use the mac native app. But the dynamic display is different depending on whether the app is the front or in the background. When in the background it becomes a shortcut you have to click to make a different set of keys appear. You get lost very easily, plus it becomes redundant with Apple native play/pause keys... So I'm always confused when I just want to hit pause/play.

From the settings, if I'd like to fall back to the always on standard set of function keys then I lose the dynamic app keys. Which is weird. The OS should be clever enough to expand the function keys when nothing else is available instead of a black unused zone and a tiny shortcut zone on the right.

The esc key (as mentioned in the article) is really hard to reach most of the times because you have to quit the current display (cross) before it becomes available. Why not keep it always on the left ?

It feels like the touch bar hasn't been thought through very much. It needs some more work... The good news is that it's mostly software improvements so let's hope Apple / App developers can fix that quickly.

<comment><USER9> I had the same issue with Spotify, so I switched the Touch Bar to only showing my customized layout at all times, regardless of which app is backgrounded.

This effectively makes the touch bar a useless feature, but at least I can customize the button mapping and always know the buttons will be where I expect them to be.

<comment><USER10> I've done this also. I have found it buggy though. About once a day the volume and brightness section stops responding until I do a restart of the machine. I assume this will be fixed in an upcoming update.

<comment><USER9> BTW if you have the issue with some of the buttons disappearing, killing the agent has worked for me:

/System/Library/CoreServices/ControlStrip.app/Contents/MacOS/TouchBarAgent

</comment></comment></comment></comment><comment><AUTHOR> Even if you don't care about the rest of the review, if you're interested in some real-world/empirical evidence about how the Touch Bar model's battery life compares to the Function Key model, please read through the Battery section of this post.

I open sourced the script and methodology I used to run heavy battery use tests: [https://github.com/geerlingguy/macbook-pro-battery- test](https://github.com/geerlingguy/macbook-pro-battery-test)

And I also published the raw results of the third full battery test on each laptop: [https://docs.google.com/spreadsheets/d/16H6TeKCOZRwzsd5bZJM2...](https://docs.google.com/spreadsheets/d/16H6TeKCOZRwzsd5bZJM2IHVqN9fU6GZhUrDiu_SK2zU/edit?usp=sharing)

<comment><USER11> I'm confused:

      				# Builds completed	Total battery life	Avg. Build time
      2016 Touch Bar - 3.1 GHz i5	49			4:54:00			0:08:45
      2016 Fn key - 2.4 GHz i7	30			3:54:00			0:07:52
      2015 Retina - 3.1 GHz i7	24			3:30:00			0:06:02

suggests that the 2016 model did 19 more builds, and had a battery life of 1 hour longer, suggesting a _better_ battery life...

<comment><USER12> Looking at the data in his spreadsheet, I think he has the models and build times switched.

<comment><AUTHOR> You're correct. Sorry about that, I fixed the table!

<comment><USER13> Ah, that makes so much more sense now!

</comment></comment></comment></comment></comment><comment><USER14> Apple should find it extremely disconcerting that developers are seemingly beginning to abandon them en masse. Every day there is something posted here, on Reddit, or Twitter by another developer moving to Linux and not looking back. A oft-used retort is developers are not a priority demographic anymore. Well who does Apple think will write software to run on their real cash cow iOS? Developers are the thin end of a large wedge.

FWIW I switched to Linux on ThinkPad X220 on the day of the MBP announcement. I've added 16GB ram and a SSD. I can't think of any reason to go back.

<comment><USER15> > Apple should find it extremely disconcerting that developers are seemingly > beginning to abandon them en masse.

You are reaching, I don't think there are all that many developers abandoning them. I don't know of a single one personally. I've heard of some vocal critics on the internet, but that's hardly representative of a movement.

<comment><USER16> The majority of the 20-something bearded hipsters sitting around the cafe coding away on their MBPs aren't using them because they're the best solution. They're using them because they're _fashionable_. When the trendsetters start using something else, the herd will follow.

<comment><USER17> I'm using them because they offer me a unix with a nice ui and more premium software options (sorry guys, I'll take something like pixelmator over something like gimp EVERY DAMN TIME)

<comment><USER16> And that's exactly why I switched from Linux to OS X many years ago (back then on a PowerMac G3). But the mac platform has taken on such a "consumer" focus (both in hardware and software), and in the meantime Linux has come such a long way, that switching back was a no-brainer.

</comment></comment></comment></comment></comment><comment><USER18> The ironic thing is how much simpler it would have been for Apple to give people what they actually wanted.

 _All anyone wanted_ was a retina macbook air. That's it. Everyone was perfectly happy and just wanted a nicer screen.

 _All anyone wanted_ was a mac pro tower with updated SATA and USB speeds and new processors, etc. That's it.

Instead, in both cases, we got silly weird things that nobody wants. I'm never going to buy the non-tower mac pro. Similarly, when the new touchbar macbooks were announced, I ran to the apple store and bought a nice, new max spec 11" air to hold in reserve in my closet.

Now I'm covered on the laptop front for at least five more years and apple has cumulatively lost out on 3-4 laptop and mac pro purchases from me.

<comment><USER19> Apple has never been about what "everyone" wanted though - their whole shtick has always been "the consumer doesn't know what they want until you show it to them." This attitude worked in the Jobs era because of his product vision but it's hard to sustain when you're continually regressing toward the mean in innovation after a string of outlier hits

<comment><USER20> But every time they took something away, it felt like they were giving you something in return. (Store your music library in our cloud, let your whole family access all music for $15)

<comment><USER21> But every time they took something away, it felt like they were giving you something in return _for more money_.

</comment></comment></comment></comment><comment><USER22> I actually like my 13" MacBook Pro with Touch Bar. Speed is fine with my upgraded model and the display is great. Touch ID is very useful too.

I rarely use the touch bar and I still miss direct access to brightness / loudness up and down, but I have also learnt that a barely use function keys anymore. ESC on the Touch Bar is good enough, however, ESC has become less important on Mac OS, Photos.App for example seems not be support ESC at all.

The battery is fine too. I use my MacBook mostly for long meetings, i.e., 5-6 hours, and up to now, there has always been plenty of battery left. That is of course with a rather new battery and for light news (using a text editor, viewing PDFs, some web browsing, distractions like e-mail / instant messaging / social media from time to time.)

The keyboard … well, I don't really like it, but whenever I use my old 13" MacBook Pro (Retina), I don't like the old keyboard either. The real annoyance is the noise resulting from my fast and obviously rather hard touch typing.

I am keeping my MacBook Pro with Touch Bar. On the other hand, I would immediately buy a MacBook Pro without Touch Bar if it came with Touch ID and more ports than the current MacBook Pro without Touch Bar.

PS: How do you call the effect that you are more likely to like expensive products as a kind of self-deception? ;)

<comment><USER23> That would be cognitive dissonance. There is dissonance between your action (buying the laptop) and your thoughts (not liking the laptop). You either change your action (return the laptop) or change your thoughts (actually, I think I do like this laptop).

<comment><USER24> [Edit to add: Though I read the parent comment a number of times, I missed a key line. Leaving my comment for context.]

I've read your parent comment a number of times. Where do they express general dislike for the laptop? They say the keyboard is loud, and that if a non-Touch Bar model were available, they'd buy one, but other than that, I read it as them being happy with it:

 _I actually like my 13 " MacBook Pro with Touch Bar._

<comment><USER22> syrrim was answering my PS questions and not qualifying my comment.

<comment><USER24> Ah, that's it. Don't know how I missed that as I read yours a number of times to see what I missing, but I very clearly did. Thanks for pointing it out!

</comment></comment></comment></comment></comment><comment><USER25> FWIW, I kinda like the touch bar. I know, I know, I'm not according the the Hacker News groupthink du jour, and am having my own, entirely unapproved opinion. But there it is, I quite like it.

<comment><USER26> I'll add my $0.02 as well. I didn't buy my MBP because of the touch bar and would actually have bought a 15" MBP without it if it had been available, because it seemed gimmicky and unnecessary.

I've had the laptop a few weeks now and I'm starting to like the touch bar more and more, now that I've adapted to using ctrl-[ instead of ESC in Vim. The touch menu's in most applications are still useless, but there are some exceptions that show that the idea has potential. I like the player controls, both the built-in ones and e.g. Spotify, for skipping, pausing, scrubbing and volume. I also like how I can quickly change colors and styles in e.g. numbers without having to use the trackpad/mouse to use the popover menu that may or may not be open. Say what you want but these are improvements compared to the static row of numbered F-keys.

When it comes to the 2016 MBP HN is the same echo-chamber it's always been. There's a lot to complain about the MBP, primarily the price and battery life issues (which I presume are a software fault considering the high variance for similar workloads, and the fact that I regularly get 8+ hours on mine). How people spin this here as if the thing is completely useless is comical though, as if everyone needs more than 16 GB RAM, and carrying a C-to-A USB dongle around kills you.

Pro OS X users that _actually_ need more RAM and better specs are probably much more affected by the pitiable state of the current Mac Pro. If you _really_ need to push a modern computer to its limits these days, chances are that you're much better off with a desktop system anyway. The fact that the Mac Pro is a much less popular topic to complain about on HN suggests that most of the people complaining do not actually need more power than what the MBP offers but just like to get on the current MBP sucks hype train.

<comment><USER27> > I didn't buy my MBP because of the touch bar and would actually have bought > a 15" MBP without it if it had been available, because it seemed gimmicky > and unnecessary.

You can still purchase a legacy MBP from Apple. Scroll down past the touchbar MBPs.

<comment><USER26> I've considered the 2015 MBP but decided against it. The old MBP cannot drive the LG 5K screen I ordered alongside the MBP to replace my ageing iMac 27. I also like the improved screen, and for future-proofing the improved graphics and the 4 USB-C ports, so I went for the 2016 MBP. Apart from the price I see few disadvantages to the 2016 MBP for my use case, the battery life might be slightly lower but I don't travel a lot, so it's not a big deal. Besides, so far battery life has been just fine for me, at 8+ hours at light load and normal brightness.

</comment></comment></comment></comment><comment><USER28>
      > Price: This is the kicker—you have to pay more for the
      > Touch Bar, even though it provides a worse computing
      > experience. And you can't get Touch ID, two extra
      > Thunderbolt ports, or a few other niche niceties without
      > also taking the baggage that is Touch Bar along for the ride.

This has arguably been the worst part of Apple for many years. There's all sort of little fringe price-cutting measures that push you to the top of the line. They'll routinely kneecap the mid-tier in order to emphasize the top tier. And things ebb and flow, sometimes Apple seems to understand the value of the mac goes far beyond pure profit numbers (it's driving iOS profits, after all), but it really seems that they've taken a strong turn away from that especially in the past year.

</comment><comment><USER29> You know, Lenovo tried reinventing the keyboard a few years ago with their X1 Carbons by putting on a touch bar with function keys, volume keys, etc. and it was horrible. Trying to do any terminal work was horrible; for example, my insert key was touchbar FN + I or something ridiculous like that.

AFAIK, they didn't reproduce that model. Surprised Apple didn't take note.

<comment><AUTHOR> Yeah, I remember reading all the comparisons to the Lenovo version, and thinking that surely Apple must've improved from Lenovo's version, or added something more compelling.

But instead, they may have made it worse, if that's possible, because the escape key is indented, just to make the Touch Bar's graphical layout even on both sides. Definitely the worst case of form over function I've encountered with an Apple product.

<comment><USER30> Even though the Esc key is indented, the empty space on the left still functions as Esc, meaning that the key is quite wide in practice.

<comment><AUTHOR> Not in my testing—if I touched around the left side without any part of my finger touching esc, it didn't register. And even when it did, the lack of any kind of feedback (Haptic feedback would be so nice here) makes it disconcerting at best.

</comment></comment></comment></comment><comment><USER31> I love how these articles begin by listing their pro-Apple credentials. We're so tribal that we have to say, guys, guys, I'm not an Apple heathen! I'm a believer! A follower of Jobs! So please do not dismiss my bad news as the mad ravings of a heretic.

<comment><AUTHOR> That's what makes it all the more painful. Irrational Apple fanatics like burning you at the stake if you can't prove you were more irrational than they at some point in your life.

<comment><USER32> Let's be fair though – this always happens with any kind of fanboyism. It's nothing unique to Apple.

<comment><USER33> There are similar trends for many brands, but Apple fans seem to be more extreme than most.

</comment></comment></comment></comment><comment><USER34> The battery comparison with the 2015 MacBook Pro is not really fair, because he turns the brightness "all the way" up for his benchmark, even though the new models have screens with 500 nits brightness while the 2015 model only has 300 nits.

<comment><AUTHOR> I'm less concerned with the 2015 -> 2016 battery life regression (general use with auto brightness bears this out as well, so the delta is there, it just might not be as great), and more concerned with the fact that the Function Key Pro gets 10% better battery life.

</comment></comment><comment><USER35> The thing designers are failing to understand this decade is that touch interfaces suck. Always. They are a _compromise_ , not a feature. This includes touch screens and capacitive buttons, both in vogue for the past decade.

Touch interfaces suck: they are too easy to press accidentally, and too difficult to press on purpose. In college, I actually taped pieces of paper onto my friend's TV with capacitive buttons so we could tell where the fucking buttons were in the dark. If you were off by a half centimeter, you'd turn the TV off instead of changing the volume. I regularly turn on my game consoles by lightly brushing my arm against them because of their awful capacitive buttons. Dumb, dumb dumb.

Touch interfaces provide no benefit over physical buttons except in cases where you _cannot have_ physical buttons. Phones are a good example: physical buttons add too much bulk to the phone or drastically reduce your screen size. You also don't have a defined set of functionality. A touch interface makes sense here.

But on a laptop keyboard? You've _already got_ a ton of keys there! Just add ten more! Instead, they've added the suckiness of a touch interface for no reason, since there was no compromise to make.

Touch interfaces aren't modern, they aren't stylish, and nobody likes them. You use them when you must make a compromise for form factor. Otherwise, stick with physical buttons.

<comment><USER36> This is even more true in cars, where a touch interface is arguably dangerous. Give me buttons, and I can fiddle while keeping my eyes on the road. Give me a touch screen with heirarchical menus, and I've _got_ to look away from the road in order to do anything at all.

<comment><USER37> Seriously. My guess as to the reason Tesla did this was to skimp on manufacturing costs. Now that they are established I wish they'd remove that screen or reduce its size.

<comment><USER38> I hope they move it to a full windscreen HUD and add dashboard hardware controls.

<comment><USER39> Wow, that sounds neat

</comment></comment></comment></comment></comment><comment><USER27> I recently purchased a Dell XPS 15. I was caught between purchasing a Macbook Pro 15 (legacy/non-touchbar, which is still available on their site) and the Dell. You can't upgrade the RAM on the new machines or the old machines now. I wanted a Macbook Pro 15 because of how great they are for development (being all Unix based and what not), but "non-upgradability" is just a no go. I don't mind paying for the extra RAM even, but no dice. Since Windows 10 has the Ubuntu subsystem, my decision is so much easier.

</comment><comment><USER40> The developer world isn't going to immediately switch _en masse_ to Microsoft or Linux laptops because of this. They're probably just going to hold onto their legacy Macbooks for an extra year or two, and it's likely the used market for pre-2016 Macbooks will be competitive.

But gradually, as the imitators catch up to the Macbook in weight and usability, we will see some migration away from Apple.

I hope and believe Apple's not so dumb as to suffer major attrition among power users and developers. They're a big enough company that they could come out with a "Macbook Classic" that restores some of the lost functionality (function keys at least, maybe non-welded components).

If you examine a pre-2016 MBA or MBP, there seems to be enough real estate above the function keys to squeeze in the touch strip thing as an additional feature rather than a replacement. Why not provide both, and let the users decide?

I wish there were a new Retina MBP with optical disk drive, USB, USB-C, Thunderbolt, and memory card slot. Also, make it easier to upgrade internal components. Is this really so hard? I'd pay extra. Even if the masses are going another direction, there ought to be a power user's version that has it all, and price it accordingly.

There's a certain cachet in being known as the power user's platform of choice and Apple really should try harder to hold onto that.

</comment><comment><USER41> Never owned a Mac but I have just bought a LG V20 phone which has a second always on screen that looks like the touch bar. On a phone it is actually very useful, for instance having the last five apps you opened readily accessible is excellent, it brings the alt-tab power to your mobile. Also I use the flashlight often and it's just right there. Maybe, probably it's a bad idea on a laptop, but having another screen that apps cannot fight for above the main screen on a smartphone or phablet is great.

<comment><USER42> The v20 always on screen is _right where you 're always looking_ on a phone, unlike MBP touchbar. I'd buy one tomorrow but LG feel Europeans are unworthy of them.

</comment></comment><comment><USER43> As a data scientist who spends most of my time in the terminal, I do not regret losing function keys. In fact, I find the touchbar to be vastly more useful and easier to operate in most contexts. That being said, I tend to eschew function keys in favor of key sequences.

<comment><USER44> What do you find yourself using the TB for in your context?

</comment></comment><comment><USER45> I think the most telling part of the story was that Apple seems to have lost the Good, Better, Best split. Way back in the olden days of Apple you had to really pay attention and work to find out which system would be best for your needs. Then Jobs came along with the 4 quadrants of computers (Personal Portable / Personal Desktop / Professional Portable / Professional Desktop) and suddenly everything was much clearer. Over the seasons that morphed slightly into Good, Better, Best laptop or desktop, but it was still pretty easy to pick your system. Fast forward to today and the Apple ecosystem is a soup of MacBook / Air / Pro / Retina / TouchPad machines that are nearly impossible to tell apart. And that's just the laptop line; forget talking about phones, tablets, and desktops!

I used to be able recommend the perfect device for almost anyone, right off the top of my head, without doing much (any) research at all. Now, I don't think I could recommend anything in the Apple lineup with confidence. This to me is a huge failing and saddens me beyond whatever particular piece of hardware Apple has built lately. :(

</comment><comment><USER46> I must be the only person that has no issues with their touch MBP other than the price I paid for it. Which was a joke.

<comment><USER47> Programmers are the only professionals in the world who complain about having to pay for quality tools. Can you imagine a dentist, truck driver, or doctor complaining about having to pay $2500 for a machine that would bring her hundreds of thousands of dollars over the next 5 years? Of course not.

<comment><USER48> I've heard doctors, truck drivers, construction workers and any number of other people complain about the cost of quality tools. For the same reason that people complain about the cost of Apple machines, they don't perceive enough quality difference to justify the price difference.

</comment></comment></comment><comment><USER49> My review of the Mac Book Pro (w touch bar):

I am a developer at Evernote (we are hiring fyi)

1\. Touch bar - By far and away this is the most annoying thing ever. IDEs use function keys all the time ... and the touchbar does not know how to display. > defaults write com.apple.touchbar.agent PresentationModeFnModes -dict-add appWithCOntrolStrip 'functionKeys'

> defaults write com.apple.touchbar.agent PresentationModePerApp -dict-add > org.eclipse.platform.ide 'functionKeys'

> defaults write com.apple.touchbar.agent PresentationModePerApp -dict-add > com.jetbrains.intellij 'functionKeys'

I hate that I get no tactile feedback when trying to use the function keys. I can no longer touch type the function keys.

2\. Keyboard - without the full travel I have to constantly readjust my typing pressure between my detached keyboard and the laptop keyboard. Painful on the fingertips.

3\. Memory size: 16g! WTF - my 5 year-old 17" MBP has the same amount of memory

4\. Performance - here is the kicker. I play a multiplayer game: World of Warships. The performance on the new MBP is WORSE than on my 5 year-old MBP. Mind you the 5 year-old computer does not have a SSD drive and its battery is EOL.

5\. No ports - seriously? I can't hook my laptop to any display in a conference room without a dongle. I have to haul the powerbrick around with me. So instead of just the laptop, I have to take a backpack of gear with the various dongles to meetings. Looks very unprofessional. I can't hook my external ethernet RAID drive to it. Nothing.

6\. Other missing things: you no longer get an extension cord with the power brick. This means you have to be right on top of the power outlet to use it. Like I can't use the power outlet right behind me at the dining room table.

7\. Siri - really. Like the last thing I am going to do is talk to my computer at the office.

Based on my personal experience with the new MBP, I am not spending my personal money to buy a new mac at this time.

I will just keep my older macs functioning as long as possible.

</comment><comment><USER50> This was surprising succinct with the issues. I'm not going to get one, I thought it was a bit of HN overdo as usual but the 200ms delay is clear a symptom of a bad Apple product from the point of their quality, not the perception of the user.

</comment><comment><USER51> Why couldn't they just add OLED programmable physical keys -- defaulting to the same layout/feature set as now?

They'd lose the ability to do sliders etc, but they have a huge bloody trackpad they could use for that.

Or make the trackpad a touch-screen itself.

<comment><USER52> A slim touchbar above the trackpad would have been amazing. All the use cases for a touchbar I can think of are when I'm trackpad mode, not typing mode. Replacing the function keys makes way less sense.

<comment><USER53> My first indication that the touch bar was probably not gonna be very good was thinking that there is no way that the function keys just happened to be in the ideal spot for a touch surface.

</comment></comment></comment><comment><USER54> What's the rationale behind offering the 13" pro the option of not getting the touch bar, but not offering that option on the 15"? I want to buy a 15" but I do not want that silly touchbar

<comment><USER55> The rationale is that they needed something to replace the low-end Air models that they are phasing out of the line-up.

</comment></comment><comment><USER56> One concern with the Touch Bar, is the low adoption rate among applications in my daily usage. Chromium development has not ramped up, forcing users with Safari if they want the touch bar experience on websites.

And maybe never will Chrome allow for full customization for webapps or extensions. Rendering it useless in many contexts. The Chromium bottleneck also restricts developer tools such as VS Code to adopt touch bar features.

None the less, I find myself looking down the keyboard more often than with the old fn keys, not really improving my workflow. This making me question my purchase.

But as stated earlier, software issues can always be fixed.

[1] [https://github.com/electron/electron/issues/7781](https://github.com/electron/electron/issues/7781) [2] [https://bugs.chromium.org/p/chromium/issues/detail?id=660126](https://bugs.chromium.org/p/chromium/issues/detail?id=660126)

</comment><comment><USER57> I love my 2016 Pro. Touchbar takes some getting used to. As far as speed, battery and performance the thing is a beast. Very happy. I have 4 VMs running at all times and many apps and browser windows and I haven't noticed it chug once.

As for touchbar, I don't think it's just a novelty. I think this will only become more apparent as apps start to implement features with it. It's great for media scrubbing, for instance. I have started to adopt pressing the buttons it shows for confirm/cancel and other dialogs.

The escape key no longer being a physical button feels odd to the finger and took some adjustment, no question.

At first I didn't like the volume / brightness adjusters because I wasn't used to them and much preferred the buttons, but the sliders that popup are just as easy to use and I fiddle with them less to find the right level.

<comment><USER58> No issues with the escape. My biggest complaint is that I keep accidentally toggling siri when I hit backspace. I'm just going to move siri over a bit or disable it altogether as I don't even use it.

<comment><USER55> I had that problem a lot as well. I removed Siri and now I just accidentally mute my machine. That being said, my typing accuracy has improved as I've gotten used to the keyboard, so accidental touches are pretty infrequent now. My girlfriend just received her TB machine and she does it all the time, so I think it is something that improves over time.

</comment></comment></comment><comment><USER59> I considered the 2016 MacBook Pro, but ended up buying a MacBook. I was concerned about the M3 CPU, but it seems good enough running IntelliJ, RubyMine, XCode, etc.

I have a 16 core, 60 GB RAM VPS that I start up for heavy processing, so a less capable laptop, but one with a great screen, works well for me.

</comment><comment><USER60> OT: My display was flickering last week, black and back until I rebooted. Does anyone had this problem as well? I filmed it and will ask apple what to do.

</comment><comment><USER61> This generation of MB hardware generally seems to have issues from trivial through severe. I purchased my fiance one of the new Macbooks for school along with one of the USB-C dongles to allow her to connect to an external monitor.

She constantly has flickering issues when it's connected without a reboot after connecting. It seems to be an unacknowledged issues with video and the macbook, which was attempted to be solved via a visit with Apple where the replaced the dongle to no effect.

The machine is fantastic in terms of weight, screen, and layout. I don't really mind the single USB-C and would love to have one, but the hardware issues have made me decided to sit this generation out and wait for what's next.

</comment><comment><USER25> So, unless I'm missing something, the primary complaint is "I don't like the position of esc on the touch bar". That's not a lot to hang a rant on, but clearly that's all it takes to get to the top of Hacker News these days.

<comment><USER62> That's rather odd, since the touch area for the escape key extends all the way to the left edge of the bar, even though that's not visually covered. I wonder if maybe the author just never realized that.

<comment><USER52> From Gruber's account (Apple sycophant #1), no it doesn't extend all the way to the left edge.

<comment><USER62> I don't own one, but it was one of the first things I tried when I was able to test a friend's, and it worked exactly as I described.

<comment><USER52> Hopefully they fixed it in a software update

</comment></comment></comment></comment></comment><comment><USER63> >> I have been using an 11" MacBook Air as my primary computer since 2011

So I think he's using this thing plugged into an external monitor most of the time? Can anyone actually use an 11" monitor as a primary monitor? If so, what do you do? I only ask because I struggle to work when I'm on the road using my 13" laptop and I can't imagine being able to get much done every day on an 11".

<comment><USER64> Depends on what you do, but 13" or less means e.g. you won't be able to do vertical split of windows in Xcode. Which is annoying, because at times you have to have two windows open (such as one source and one IB storyboard or XIB, plus the navigators on the left and right hand sides). But this is still workable. I've written 3 or 4 iOS apps entirely on a 13" laptop. If there is an itch to finish and release something, suddenly those limitations aren't anymore.

<comment><USER63> >> If there is an itch to finish and release something, suddenly those limitations aren't anymore.

Good point :-) Funny how things become less important when there's a push to get it done no matter what!

</comment></comment></comment><comment><USER65> What I like about my new MBP 15" with touch panel:

1\. The size is almost the same as my 2011 mbp 13"

2\. Retina screen

3\. I actually like the touch bar.

4\. No more magsafe! Finally I can get the damn thing to charge reliably!

5\. No more annoying illuminated logo on the lid.

6\. All usb-c is nice.

What I don't like about it:

1\. The keyboard is terrible. The older ones are FAR nicer. The keys get stuck down randomly, then after a few days come unstuck, but even the very feel of the keys is pretty gross.

2\. Trackpad isn't as nice as the one on the 2011 mbp. Drag and drop is flaky at best, especially in Finder. Press feedback is simulated, and doesn't feel as nice as an actual button.

3\. Not much speed improvement. It's a big improvement for compiles since I went from 2 to 4 cores, but single core performance has hardly budged.

4\. Stability is iffy. Many apps just crash when you suspend (including Sublime Text, VLC, Firefox. Even the Firefox crash reporter crashes). I also get system freezes (where everything freezes except the mouse).

So upgrading was nice because of the 4 cores, but I'd probably have been happier with a 2015 model.

</comment><comment><USER66> > Even after two weeks' use, my pinkie could never find the escape key.

The touch bar accommodates this. The space to the left of the "key", as well as the "key" itself, all triggers ESC. In other words, the escape key has a target much larger than the physical key, about the size of the physical tab key.

<comment><USER67> That, and in System Preferences -> Keyboard tab -> Modifier Keys button, you can map Caps Lock to Escape. Works great, in my opinion.

</comment></comment><comment><USER68> I'm happy with mine. I'm plugged in to power, and nice big monitor and an external keyboard 99% of the time and it makes a fine dev machine. Do people really spend a significant amount of time writing code directly on an unplugged laptop? Sounds really painful no matter the model or brand.

<comment><USER55> I do, but I work from home and need to get out of my apartment from time-to- time. I think there are a lot of people in that boat.

</comment></comment><comment><USER69> Just to add a data point as a developer - I bought the 15" second-tier tMBP and absolutely love it, but have to agree the Touch Bar, though intriguing, is currently a bit "meh".

But all the strong points he mentions in the article are more than just "nice", they are really amazing. The big ones for me are:

The SSD speed - I scanned all 300 GB of my current usage with DaisyDisk in 8 seconds. 8. Seconds.

The keyboard - this is easily the most satisfying keyboard I have ever had.

I can see why you'd go for the "MacBook Escape", but the 15" model only comes with Touch Bar, so that decided the issue for me. Plus, I think Apple may still have some tricks up their sleeve for the Touch Bar - allowing us to create our own custom touch bar buttons per app which run our own actions would be incredibly useful, I think.

<comment><USER70> Thanks for mentioning DaisyDisk - I've been looking for something like that, and all the alternatives I've tried are horrible!

</comment></comment><comment><USER71> More terrible first hand reports about the Touch Bar Pro.

So it seems many power users are saying Touch Bar is useless at best and annoying and interfering at worst. And the battery life is terrible. And you pay more for less. Who is this thing built for?

I really hope Apple fixes this situation in the 2017 update.

</comment><comment><USER72> These are my personal opinions:

I don't like the touch bar because it forces me to look at my keyboard, which is inefficient and probably unhealthy(moving my neck like that).

I don't like the keyboard because it's too noisy.

I'm disappointed that Apple seemingly ceased to care about the professional user. I'm expecting the top Mac Book Pro to be a machine that's optimized to get work done, the touch bar and the overemphasis on making it thinner and lighter suggest otherwise.

It seems that my next main machine will not be a Mac Book Pro, I will most likely go with a Windows laptop, since Linux still has issues like Wayland vs. Mir.

</comment><comment><USER73> All different decisions from Apple in last 12 months made me clean up the dust from my ancient linux pc. Reinstalled arch and I am feeling normal again.

I have few Mac / iOS apps to maintain but I use vnc or synergy to do that.

</comment><comment><USER74> Really, now that apple is only making products for the humans in WALL-E and not developers, we only have one option. That's to stock up on the last good developer MacBooks (up to 2015) and spare motherboards. Once those give out or become too incompatible, load them with linux, or switch to better machines from other companies who still care about developers.

I guess the era of MacBooks being the choice for professionals is over. However, I guess all good things like this have to end sometime.

</comment><comment><USER75> This is so funny. I just boxed mine up and shipped it via UPS back to apple not 5 minutes ago and was thinking to post something here on hacker news!

I did not like the touch bar for programming. Maybe when my ide supports the touch bar it will be better. But the clincher was the poor battery life.

I've been a mac user since the mac plus days. First time I retuned one.

<comment><USER76> Same here. Wrote about the experience here: [https://news.ycombinator.com/item?id=13098257](https://news.ycombinator.com/item?id=13098257).

tl;dr: Touch bar is in the way, and provides near-zero utility; at best, it's a distracting visual element for touch-typists. Other than that, the new features are not worth the hassle/price. The only feature I really do like is the fingerprint reader.

</comment></comment><comment><USER77> We get it, honestly. Enough with the dramatic MacBook articles.

There are literally thousands of laptops out there. Buy one.

<comment><USER78> There's a large captive audience who only wants to run Mac OS "properly", so their only option is to complain loudly and hope Apple listens for the next model.

</comment></comment><comment><USER79> so... long story short, a guy who repeatedly states that he was used to using his MacBook Air and has used that and it's form factor and utility for five years doesn't like the the new MacBook Pro - which is a differently-styled product targeted at a different audience. Now this is not to say that he doesn't have some (read: several) objectively valid points. ( __ _cough_ __battery-life __ _cough_ __) but it seems that chunks of his user experience might have been improved by choosing a product marketed as being a little closer to his most recent previous experience.

</comment><comment><USER80> These machines are unfortunately already obsolete (relative to their premium price) now that Intel Kaby Lake machines are starting to appear. Kaby Lake offers significant battery life improvements over Skylake.

</comment><comment><USER81> What developer uses an 11" screen? Are you serious?

<comment><USER82> Free business idea: Notebooks with tiny screens... that come with zooming glasses. :)

</comment></comment><comment><USER83> > Maybe it would work better as a neat gimmick in the 12" MacBook.

Please no, my 12" Macbook is the best development machine I've ever owned.

<comment><USER84> I chuckled at your defensive reaction. Apple's TouchBar has such a bad reputation that people genuinely fear it will spread to their beloved Mac models.

</comment></comment><comment><USER85> Thanks for this review. The data is enlightening.

</comment><comment><USER86> I hadn't thought about this until I read this article, but what do you use the FN-key for when there are no function keys?

</comment><comment><USER87> About the battery issue, couldn't he buy an extra battery? That wouldn't be too cumbersome.

</comment><comment> vladimir-y Someone has to make Apple great again.

</comment><comment><USER88> I wish Apple had figured out a good way to make the MBP touch pad double as a touch screen.

</comment><comment><USER89> > I nearly lost it when my laptop was under 10% battery remaining after only > three hours of use. ... With my older 11" MacBook Air, I was used to 3-4 > hour battery life

does not compute

</comment><comment><USER90> Would love to see the i7 Macbook Air 2013 also in the benchmarks (mainly because this is my laptop too ;) Very interesting review for me.

<comment><AUTHOR> I still have it... might be able to do a test run.

</comment></comment><comment><USER91> best part of the whole article what how you named it the "Function Key Pro"

hahaha, gold.

</comment><comment><USER92> > I use a Mac as my daily driver

What does the author mean by 'daily driver'?

<comment><AUTHOR> Sorry about that, I try to use idioms that are a little more widespread, but outside of car culture, you might not hear the term that often. It basically means 'the computer I use for day-to-day work' (see this for example: [https://www.reddit.com/r/nexus4/comments/2b7pm5/what_does_da...](https://www.reddit.com/r/nexus4/comments/2b7pm5/what_does_daily_driver_mean_exactly/)).

It would be opposed to an exotic car or computer I'd use only in certain special circumstances (like the Raspberry Pis I use for testing cluster configurations, at www.pidramble.com).

<comment><USER55> I really only ever hear the term from the tech press. Those folks might have 5 phones and 3 laptops sitting on their desk at any given time, so the term "daily driver" makes sense to describe the one they actually use. For the rest of us, we just have "a laptop" and "a phone."

</comment></comment></comment><comment><USER93> I don't understand why people are still going on about this

<comment><USER94> There's several obvious reasons:

1\. Every time someone brings this up other people say "It's fine." and it really isn't fine.

2\. We want Apple to hear that their core customers are unhappy and they should rethink the current course for their hardware.

I love Apple computers but they currently don't provide a serious upgrade option for my 2012 15" rMBP. The 2016 15" is a joke by comparison.

<comment><USER95> > their core customers are unhappy

I honestly don't think HN posters (nor bloggers) are anywhere near Apple's "core customers" \- that's the millions of people who just want something workable from a shop they trust, not a few thousand (being optimistic) forum posters and bloggers.

e.g. After 5 days, it was already crushing the competition and approaching 18 months of Macbook 2015 sales.

[https://www.cnet.com/uk/news/apple-macbook-pro-sales- already...](https://www.cnet.com/uk/news/apple-macbook-pro-sales-already-set- to-surpass-2015-macbook/)

<comment><USER94> Developers are the core customers for MacBook Pros. In volume the Air used to be the top seller, because yes there are more people who just want "a computer" that works and don't care about specs and won't look at battery life, etc. before buying.

But do you know what those people base their purchasing decisions on? The recommendations of the developers and engineers they know who do care about those specs.

I can't tell you how many people have moved over to Apple computers on my recommendations over the years. It's a lot. Right now I have a hard time recommending the 2016 models. If people can get a refurbished 2015 on the cheap I honestly think it's a better choice.

> After 5 days, it was already crushing the competition and approaching 18 > months of Macbook 2015 sales.

This statistic is very popular but it's also extremely misleading. Everybody knew the lineup was due for a refresh so 2015 sales were lagging because of that, the higher numbers represent a dam of pent up purchases waiting for upgrades bursting. It's like pointing out that the number of people complaining about the 2016 models is way higher than the people complaining about the 2015 models. Of course it is. That doesn't tell the whole story and is somewhat misleading on its own.

My point is just because initial sales of the 2016 models is high, doesn't mean that it will stay that way. Once they get into people's hands and people find out "Oh the battery life is terrible and I really don't like the TouchBar." those sales may plummet (if that indeed is people's reaction.)

Apple needs to really re-examine. The current 13" and 15" MBP models should be the base "MacBook" models, and they should come out with a serious pro machine and label it as such (which restores MagSafe and has higher battery life.) The TouchBar should just be thrown off a bridge. It's a terrible gimmicky attempt at stuffing a touch screen onto a laptop.

<comment><USER95> > The recommendations of the developers and engineers they know who do care > about those specs.

None of the non-technical people I know (and I'll admit that's a small number) who buy Apple kit do not take recommendations from developers and engineers because they're non-technical people - they don't read HN or tech blogs. They look at things like Which? reviews or BBC think pieces or that glossy insert that comes with the Sunday paper.

Or they go into an Apple store where they can touch the machines, use them for browsing the web, get answers to their questions (ok, bit slow at peak times) vs something like a PC World where you can't use the machine or they don't have that particular model in stock despite it being on display or there's no- one around to answer your question or you can't tell which particular constellation of stickers on the laptop means it'll work for you or ...

> Apple needs to [...]

People have been saying this since 2005. They're still here, printing money. _shrug_

</comment></comment></comment></comment></comment><comment><USER96> You hate the Touch Bar, even though the MacBook is closed most of the time? Strange.

</comment><comment><USER97> The 'Touch Bar' is a plainly stopgap measure that only exists because Apple is delaying the painful transition to touch in OS X.

Microsoft underwent that pain early in Windows 8 and the first few not- particularly-good Surface devices, and (with Windows 10 and the SP4) is there now.

<comment><USER98> > The 'Touch Bar' is a plainly stopgap measure that only exists because Apple > is delaying the painful transition to touch in OS X.

The transition to touch already happened with iOS. Apple still needs to keep macOS alive for a few legacy use-cases, but the long-term strategy is probably to move the remaining applications over to iOS, instead of converting macOS to iOS.

<comment><USER51> People keep saying that, as if it means something.

Some huge breakthrough in CPU power and technology aside, including changes to the laws of physics and basic ergonomics, we are not going to be doing desktopy-style work on iOS style devices -- unless they get the ability to drive large 4K+ monitors, connect to multiple peripherals at once, talk to disk drives, etc.

And even that would require hooking them with keyboards, stands etc for comfortable working.

People care for laptops/desktops for all the OTHER work and usage patterns that are not good fit for iOS/iDevice form factors.

<comment><USER99> > drive large 4K+ monitors

Driving 4K screens from a tablet isn't that far off. It depends what you want to show on them of course, but just outputting 4K isn't that hard.

> connect to multiple peripherals at once

You're not supposed to have peripherals any more. Your touch screen, the cloud, and that's it. If necessary, hardware devices now connect to the cloud directly (while joining a botnet).

> talk to disk drives

You're supposed to buy more iCloud storage and have an infinite throughput connection.

<comment><USER51> > _You 're not supposed to have peripherals any more. Your touch screen, the > cloud, and that's it. If necessary, hardware devices now connect to the > cloud directly (while joining a botnet)._

As I wrote, work that people can do with tablets, which fits with the above, they already do. But people care for desktops/laptops for all the other work you can't do without "peripherals", and with just "the cloud and that's it".

If we all just used web apps nobody would have cared for a desktop that much.

Besides, last time I've checked, the speed of light, which provides the lower limit for latency, is not changing anytime soon.

> _You 're supposed to buy more iCloud storage and have an infinite throughput > connection._

A, I get it, it's a mockery of some supposed Apple idea. I don't think they are to that. If anything Google, with the Google office suite, Google run- everything-within-Chrome chromebooks etc is.

Apple is not really about convergence on the iOS -- they get the different uses cases for PC vs tablet-phone form factors and have made several statements to that effect -- they just don't care that much for the former.

<comment><USER98> > But people care for desktops/laptops for all the other work you can't do > without "peripherals", and with just "the cloud and that's it".

I don't disagree. But is that market large enough for Apple to care about? Apple is pretty focused with its product line and it might not make sense for them to continue investing into the desktop market.

<comment><USER51> Well, let's ensure their mobile offerings don't end that well then. It worked for Microsoft.

</comment></comment></comment></comment></comment></comment></comment><comment><USER100> As Steve famously said, if you don't want a tbMBP, don't buy it. If you buy one and you don't like it, take it back.

Since that is/always has been the working approach, any chance the HN hive- mind could avoid posting EVERY single MBP->other laptop or macOS->*nix article?

<comment><USER62> OK, sure. What else do you suggest I buy?

When the best available product is no longer available, I don't think the "just don't buy it" approach is really a good response.

(Full disclosure, I think the new MPB looks pretty decent, but for those who don't like it there's often no good alternative now.)

<comment><USER100> So, I reject the premise of your question & the groupthink, namely that the best product "is no longer available." Just like every other Revision A  product, people are considering the tradeoffs vs whether they still want to be on the platform ("If you don't like the iPhone 4..." ). Cupertino also likely needs to fix some bugs.

Since that's a normal part of life I'd fully agree if this were the first time, but this is the 15th take or so on the tbMBP since it came out. Simply going by my history, people seem to like the XPS 13 Developer edition, machines from System76, the Thinkpad T460, as well as mentioning the Surface Book and/or Studio in every article as incontrovertible proof that Apple is doomed. Full disclaimer that YMMV, as ultimately, buying a machine is a subjective decision that will always have tradeoffs (this stunningly controversial take was flagged last time).

Perhaps, just maybe, people who chime in "I find this article useful" could do the rest of the community who doesn't think Apple is dying on a daily basis a favor and do a search when they're in the market for a new laptop. But now we're just degrading into basic forum etiquette, a tale as old as time...

<comment><USER62> If you understand that buying a machine is a subjective decision, then you should also realize that you can't reject the premise that the best product is no longer available, because "the best product" is likewise subjective.

A lot of people saw the old MBP as the best out there, and now it's gone, and that upsets them. "Buy something else" is not a good response to that.

</comment></comment></comment></comment><comment><USER101> He says the only thing he wants is a better keyboard and retina display.

So he wants the 12" MacBook which has been out for over a year now... Why did he even buy the new 13" MBP in the first place?

<comment><AUTHOR> Because the brand new MacBook is still slower than my 3-year-old i7 Air. I'm a developer, and I need speed still, too. If Apple could fit a competent i5 or i7 in the MacBook form factor, I'd be all in.

<comment><USER102> I switched to the 2nd gen m5 Macbook from the '13 rMBP 13", and would argue the m5 is surprisingly more than capable.

Granted it's not as fast on paper or benchmarks, but it's so capable I am having a hard time trying to justify my next purchase (not enough screen real estate in rarer circumstances: Chrome DevTools alongside the browser window is impossible, OmniGraffle and other apps can feel cramped at times).

The machine did feel a little slower than the i5 when I first started using it but nothing obnoxious.

Context: As a devops guy I regularly build large RPMs, run grunt against a huge codebase, compile packages from source, and all the while with Docker running OpenShift and a bunch of LEMP apps in the background.

</comment></comment></comment><comment><USER103> Reads to me that,

You did not simply went to an apple store and tried it before you bought it? You could have saved yourself a purchase & return and the internet a review of which there are already uncountable amounts.

Also you write you build enterprise grade products, but you cannot find alternative tools for covering that last 5 percent? Reads a bit strange. You can come up with clever solutions for enterprise stuff, but you can't properly get tools on linux to do what you need to do?

Soldered-in-everything.. vs "I wish Apple made enterprise SSD controllers for my database servers—who needs RAM when disk I/O is so fast?!" make up your mind please.

<comment><USER104> For him, the kicker was the battery life. How do you test battery life in the Apple store? You're not allowed to unplug the thing. (And even if you could, who's going to spend several hours there to assess the battery life?)

You also speak as if fast SSDs and replaceability are mutually exclusive. They're not—check out the specs of the Samsung 960 Pro: 3.5 GB/s read, 2.1 GB/s write.</comment></comment>


Exquisitely Fair Pre-Pay Discounts - <AUTHOR> http://blog.beeminder.com/fair

<comment><AUTHOR> Short version: If you offer users a discount for paying yearly instead of monthly, why not generalize that and give them a slider to choose how often they'll pay. Every 2 months, every 6 months, every year, every 2 years, every 5 years, ... You can even let them pay once for a lifetime subscription. We made a little demo of it and give the equations for computing the discounts perfectly fairly for any payment frequency.

It's pretty great (if your users happen to be huge nerds)!

</comment><comment><USER2> I think this gives users too many decisions to make. Too much choice can be daunting.

<comment><AUTHOR> I did think it sounded too crazy to actually do, but I really like the way it turned out (did you try our demo slider?). And it is just a single slider, so not as bad as multiple decisions, exactly. Admittedly it's harder than "monthly vs yearly" though.

In any case, I won't be surprised if you're right and it only makes sense if your users are nerds who will like it for it's own sake. :)</comment></comment>


Dynomite with Redis on AWS – Benchmarks - <AUTHOR> http://techblog.netflix.com/2016/01/dynomite-with-redis-on-aws-benchmarks_14.html <comment><USER2> I'm super excited to see this! This is my favorite Netflix OSS project and the one I thought had the most potential when I first heard about it internally.

I wish I had this tool about eight years ago...</comment>


Show HN: SpringZKAuth – Spring application with zero knowledge password proof - <AUTHOR> https://github.com/maxamel/SpringZKAuth <comment><USER2> You seem to seed the SecureRandom object with the current time. I think this reduces security and it would be better to omit the seed and let SecureRandom seed itself.

It also looks like you do normal String equals to compare secrets, which could be vulnerable to a timing attack.

Are you sure you are qualified to implement crypto?</comment>


Anti-counterfeiting agreement raises constitutional concerns - <AUTHOR> http://www.washingtonpost.com/wp-dyn/content/article/2010/03/25/AR2010032502403.html

<comment><USER2> Interesting focus on the legality and Constitutionality of how ACTA might be accepted. Rather than Senate approval, the Obama administration has suggested the use of "sole executive agreement" option for approval. Scary to think ACTA could get all the way to approval without public discussion and debate!

EFF has a page for asking your Senator to investigate ACTA here: [https://secure.eff.org/site/Advocacy?cmd=display&page=Us...](https://secure.eff.org/site/Advocacy?cmd=display&page=UserAction&id=383)

<comment><USER3> Its weird that something like this would be suggested by Obama since he taught constitutional law at Chicago; I'm sure he knows the supreme court won't just let him slide by without some kind of appeal.

</comment></comment><comment><USER4> Two things:

1\. This is why there is a need for some true tech-savvy people to stand up and run for political offices starting yesterday. Policies such as this and net-neutrality are a bigger issue about our true and natural rights as citizens of the U.S. and not just someone imposing limits on our beloved internet. People need to stop looking at this as some fantasy or digital extension of oneself and realize that it is becoming a major part of our life and how we navigate through it. I feel like this is why people don't see that the implications are about stomping all over our constitution because it isn't a physical property.

2\. Among the many concerns one could raise in this article, the most alarming is even considering allowing anyone but our own people and government to control this policy on our soil.

</comment><comment><USER5> What if Obama's approach to the ACTA is a sneaky way of appearing to support the agreement, while provoking Congress (on totally understandable grounds) to step in and strike it down out of principal? Thus, Obama is seen to support IP law, but in the end it doesn't actually do anything ;)

I like to think our President is exceedingly clever, regardless whether it has a chance of being true. (though not in a, 'I'm going to fool the public' sort of way)

<comment><USER6> Both Obama and Biden are pro-copyright and for the rights of copyright holders. I wouldn't put much hope into him doing anything that enables or protects copyright infringement, or even maintains the current situation where consequences are hilariously unlikely.

<comment><USER7> I'm pro-copyright too, since that's the legal basis that gives open source licenses their power. I'd like to see reform along the lines of _reasonable_ financial damage limits based on acknowledging the nature of digital goods, mainly lack of scarcity, and move away from the rhetoric that copyright is useful solely because without it people wouldn't create.</comment></comment></comment>


Introducing IE9's User Agent String - <AUTHOR> http://blogs.msdn.com/ie/archive/2010/03/23/introducing-ie9-s-user-agent-string.aspx

<comment><USER2> The most interesting part is this story they linked to: [http://www.nczonline.net/blog/2010/01/12/history-of-the- user...](http://www.nczonline.net/blog/2010/01/12/history-of-the-user-agent- string)

Quite strange how it came about that nearly every User Agend String starts with Mozilla/5.0. Submitted the whole thing, just for kicks: <http://news.ycombinator.com/item?id=1215716></comment>


Heavy Hangs The Bandwidth That Torrents The Crown - <AUTHOR> http://ihnatko.com/2012/02/20/heavy-hangs-the-bandwidth-that-torrents-the-crown/

<comment><USER2> Sorry, but Andy Inahtko is a moron. He completely bungled the whole iPhone mute switch thing. And now he suggests that torrenters claim they are "forced" to steal? Puh-lease. Saying "no one's entitled to anything" is just a stupid argument. And anyone with half a brain has moved beyond comparing the theft of atoms and bits. Sheesh.</comment>


Why do RET instructions have a REPZ prepended on x86? - <AUTHOR> http://repzret.org/p/repzret/ <comment><USER2> Each cycle, a modern x86:

\- Fetches 16-32 bytes

\- Finds instruction boundaries (because of variable-length encoding)

\- Branch predicts any branches in the fetch group

\- Decodes 3-4 instructions in the fetch group

\- Issues 3-4 decoded operations to the rest of the pipeline

This whole process has to happen every cycle (though it's pipelined over 3-5 cycles in the front end), and the performance of this process gates the rest of the pipeline. As a result, many of the micro-architectural "gotchas" in modern x86 processors tends to be in the fetch/decode phase.

<comment><USER3> You are overgeneralizing. Being front-end bound is true for some code but not for others.

We see our gotchas typically in terms of not being able to issue instructions due to data dependencies and filling up the RS with things that can't make progress (informally, a big tree of "ORs" where one source for everything has missed L1 and held everyone else up).

Other people will be hopelessly bound on cache or memory bandwidth, or floating point multiply, or whatever. Or disk access :-)

If one is curious about whether this applies to one's own code, you don't have to speculate - just bust out the Optimization Guide ([http://www.intel.com/content/www/us/en/architecture-and- tech...](http://www.intel.com/content/www/us/en/architecture-and- technology/64-ia-32-architectures-optimization-manual.html)) and go figure out where your bottlenecks are by looking at counters. VTune can do some of this stuff for you.

<comment><USER2> I'm speaking from an architectural design standpoint. Exceeding the ability of the OOO engine to cover cache misses isn't a "gotcha" it's a design limit of the hardware. Being able to only predict three branches in a 16-byte fetch group, even though more than 3 branches can fit in a 16-byte stretch of code, is a gotcha. Being able to execute only 3 SSE operations per cycle is a design limit. Not being able to hit 3 SSE operations per cycle depending on which registers you use and how many prefix bytes they require to encode is a gotcha.

</comment></comment></comment><comment><USER4> Things like this are why I got out of writing ASM for anything back in the 1990s. It's gotten to the point where while a tight loop might be doable by a person in a performant way, anything else might entirely be far too complicated to make it perform well all over. Along with that you can't make it portable on other architectures.

<comment><USER5> > Along with that you can't make it portable on other architectures.

Not only that, but it seems from other stuff I've read that you'd have a hard time making x86 code performant on more than one microarchitecture or family thereof, which means re-writing the same code for different manufacturers and different generations from the same manufacturer.

It seems that if you accept the façade that says "x86 is x86" you're better off writing in C or even Haskell, but if you peel the façade back to write fully performant code you're doomed to either keep re-writing it or doomed to see it languish as processor technology moves on.

I'm immediately reminded of the early RISC design concept of "moving the microcode into the compiler"; having extremely simple hardware that explicitly exposed design details like pipeline length in the form of delay slots becoming ISA features and saying that compilers would handle all the resulting complexity much like how microcode handled it in the System/360 and similar.

It turns out architectural branch delay slots were a mistake, but compilers _have_ gotten better at turning obvious source code into performant machine code unless you need so much performance you have to dig into architectural details anyway.

It's unavoidably complicated. And now we're moving towards multi-core CPUs, which bring to the fore another area which is unavoidably complicated.

<comment><USER3> This is spot on. We use a lot of intrinsics, as we want to get at some of the underlying features of the architecture, but we almost never write asm. It's becomes obsolete almost immediately and is often far worse than the compiler's first cut.

We had a former performance guru who once put a huge #ifdef I_DONT_CARE_ABOUT_PERFORMANCE around the "naive" C version of a loop and had his favourite x86 asm version on the #else branch of the ifdef. Needless to say, much hilarity resulted when defining this macro _improved_ performance. I suspect that the naive version may have been a bad idea at one stage (Pentium 4, perhaps) but became a better version from Core 2 onwards...

Ocassionally I'll get on a wild tear and think "Oh, I can do better than the compiler" after it generates some ridiculous-looking instruction sequence that seems to not be using enough registers (or whatever). I then find that hand- writing and hand-scheduling everything in accordance to what looks really good to me - actually works _worse_ than the insane-looking code in the compiler. Put it down to stuff like store-to-load forwarding, dynamic scheduling, register renaming, etc.

<comment><USER6> > Ocassionally I'll get on a wild tear and think "Oh, I can do better than the > compiler" after it generates some ridiculous-looking instruction sequence > that seems to not be using enough registers (or whatever).

Compilers are _very good_ in some things like instruction scheduling and register allocation but only poor to mediocre in other things like instruction selection. In addition, compilers are not allowed to do some optimizations, like change the order of function calls to other translation units or do arithmetic optimizations with floating point numbers.

So if you have a piece of performance critical code, you can still be smarter than the compiler alone by co-operating with your compiler by writing compiler-friendly close to the metal code. Inline assembly code is not good for the compiler, it can't really optimize it at all. But using CPU and compiler specific intrinsics to use your hardware capabilities (SIMD, special cpu instructions) you can get your code to run close to the speed of light without compromising readability or maintainability.

Yes, compilers these days are smart but thinking that you can't do better than that is a lazy man's fallacy.

<comment><USER7> "Inline assembly code is not good for the compiler, it can't really optimize it at all."

Actually it can, if you have a way to specify register usage (gcc does) and the programmer gives the right specification. Unfortunately, that almost never seems to happen in practice.

<comment><USER6> > Actually it can

Yeah, I found this out the hard way. Turns out it's really ridiculously difficult to get GCC to put the rdtsc instruction where you want it :)

But you get the point, the compiler can optimize better if you use C and intrinsics than inline asm.

<comment><USER7> Truth. I only use asm for stuff I _can 't_ do in C, like access architecture- specific registers or use instructions for which there are no C operators. Anything else strikes me as a bit of an exercise in machismo at the expense of sound engineering.

</comment></comment></comment></comment></comment></comment></comment><comment> iso-8859-1 It's fortunate, since it made Intel able to encode the new XACQUIRE/XRELEASE of the Transactional Synchronization Extensions' Hardware Lock Elision using these short ancient prefixes:

"Hardware Lock Elision adds two new instruction prefixes XACQUIRE and XRELEASE. These two prefixes reuse the opcodes of the existing REPNE/REPE prefixes (F2H/F3H). On processors that do not support TSX, REPNE/REPE prefixes are ignored on instructions for which the XACQUIRE/XRELEASE are valid, thus enabling backward compatibility."

from [http://en.wikipedia.org/wiki/Transactional_Synchronization_E...](http://en.wikipedia.org/wiki/Transactional_Synchronization_Extensions#Hardware_Lock_Elision)

<comment><USER8> And REPNE RET, among others, similarly has an interpretation in _Intel® Memory Protection Extensions_ (lawyers made me write that) to help make the new pointer bounds checking ABI transparent & interoperable with other code.

[1] [http://software.intel.com/en-us/articles/introduction-to- int...](http://software.intel.com/en-us/articles/introduction-to-intel-memory- protection-extensions) [2] [http://download- software.intel.com/sites/default/files/31943...](http://download- software.intel.com/sites/default/files/319433-015.pdf)

</comment></comment><comment><USER9> While we're at it, why did Ahmed Bougacha register an entire domain for this topic?!?! (srsly, I'm wondering if he's just super-passionate about this topic and had the resources to spare? Is this the beginning of a much larger set of questions related to the topic, etc.? )

<comment><USER10> Both! I have plenty of drafts in the area. Right now I'm working on binary analysis / translation / decompilation using LLVM (I'm actually gearing up for an RFC/patch on the mailing list): [http://dagger.repzret.org](http://dagger.repzret.org). If you're curious, I gave a talk at the LLVM Euro conference about the kind of problems you'd have, and some interesting use cases.

We've been quiet ever since, I'll get back to writing about the meat once we have something out there, and more feedback from the community!

</comment></comment><comment><USER11> This was really interesting, but one thing it didn't fully explain was why the fact that ret imm16 was fastpathed would make it a worse choice for this optimization than repz ret. Excuse my noobiness, but can anybody explain that to me?

<comment><USER12> _" in the K10 family, the ret imm16 instruction is now fastpathed"_

I understand that as follows: on the K8 both _repz ret_ and _ret imm16_ were microcoded; hence, the shorter _repz ret_ was preferred.

On the K10, _ret imm16_ got fastpathed. That made it the preferred code, even though it is a byte longer.

<comment><USER11> Ah, thanks. I missed that that whole part was talking about the K10.

</comment></comment></comment><comment><USER13> And there are people who say the x86 ISA is just fine, that such kludges are absolutely normal...

I get the x86 is immensely successful, but being popular is not synonymous with being well engineered. Or engineered.

<comment><USER14> Right, because ARM cores exhibit completely predictable behavior with, say, assignments to IP or instruction predicate bits?

All architectures are insane. MIPS, probably the epitome of a minimal/clean architecture, still has a vestigial 1980's pipeline stage (the branch delay slot) baked right into the ISA such that it can never be removed.

Is the x86 ISA a big mess? Yeah. But ARM is hardly better (anyone remember Jazelle?) Basically, if you don't want to look at the assembly stick to your compiler. That's what it's there for. But don't pretend that this stuff isn't present everywhere -- real engineering involves tradeoffs.

<comment><USER15> As someone who's fought for months with the ARM cortex-a9 cache prefetch behaviour and behaviour of the various memory attributes (not intuitive and only partially documented), I wholeheartedly agree with you.

Those are bits of hardware which are supposed to run around GHz speeds, they might look clean enough on the surface but when you dig deep enough "hic sunt dracones".

</comment></comment></comment><comment><USER16> Deep pipelines, single cycle RISC and the history of MIPS (eg Hennessy is a badass)

[http://en.m.wikipedia.org/wiki/MIPS_architecture#History](http://en.m.wikipedia.org/wiki/MIPS_architecture#History)

</comment><comment><USER17> This is why I like having compilers.</comment>


Ask HN: What is better for privacy, US or non-US based companies? - <AUTHOR>

I have seen lots of advice given about hosting things like your email, documents, etc. with a non-US company to avoid the NSA from getting hands-on access to it. I have also read about the different protections offered to the US citizens vs non-citizens; namely, that according to the US law, it is legal for the spy agencies to collect data about any foreign citizens as long as the data is outside the country. At least in theory, when a US citizen is involved or the spying has to take place on the US soil, a warrant is required (which in the NSA's case is granted by the rubber-stamp FISA court). When I start thinking about how this affects, for example, non-US companies with offices in the US or vice versa, I get completely lost.
On a practical level, what is the best solution for a US citizen, living in the US to store personal data in the "cloud" with regard to government spying?
P.S.: Obviously, storing your data where you can physically control the storage medium is best, but not always practical. I am wondering about the next best thing. <comment><USER2> > On a practical level, what is the best solution for a US citizen, living in > the US to store personal data in the "cloud" with regard to government > spying?

Encrypt it before it leaves your systems. Then they would need a warrant and for practical reasons would need to inform you before they could get at it.

No cloud vendor is really safe. The pipes between your residence and the cloud is tapped, so the data being outside of the US is irrelevant if you cannot get it from A to B.</comment>


The End of Human Doctors – Understanding Medicine - <AUTHOR> https://lukeoakdenrayner.wordpress.com/2017/04/24/the-end-of-human-doctors-understanding-medicine/ <comment><USER3> Speaking from personal experience I think the medical profession is ripe for disruption and it does look like increasing automation is inevitable - <USER2> anything we can do to disrupt the god complex and compassion fatigue that is rife in the medical profession must in the end be good for patients.</comment>