Mistakes we made adopting event sourcing and how we recovered - <AUTHOR> http://natpryce.com/articles/000819.html <comment><USER2> Well this seems like refreshing honesty. It makes a change from the usual "why paradigm/technology/methodology sucks!!" tech people love to write, which upon closer inspection is almost always a reflection of their own shortcomings.

 _As well as using event-sourcing, the application has a Ports-and-Adapters (aka "hexagonal") architecture. Loading the current state of an entity was hidden from the application logic behind a Port interface that was implemented by an Adapter class. My colleague, Ivan Sanchez, was able to switch the app over to calculating an entity's current state from its event history and treating persistent entity state as a read through cache (as described above) in about one hour._

Ports and Adapters is great, though I found it hard to sink my teeth into as it has a thousand different names. But regardless, I am never doing n-layer architecture again if I can help it.

</comment><comment> UK-AL You certainly can drive activities from events in event sourcing applications. Having built many like this. You don't have to, but you can.

Just make sure services that perform actions based on events, and the services that rebuild current state based on events are different. So you replay the state building without the activities being performed.

<comment><USER3> Also it's good if you go very very conservative on having actions generate other events.

Since event systems are frequently meant to scale up, and tend to process events in the order of receipt, they will tolerate ('hide' might be more accurate) a percentage of all events occurring in an infinite loop before anyone even thinks to notice. Discovery phase on this sort of regression can be embarrassing, to say the least.

Due to delegation and composition it's easy for this to sneak up on you. And always, always, attach some sort of origin ID (eg, correlation ID) that follows all generated events through the system. Because trying to come up with repro cases will be hard enough without having to divine where the problem comes into the system.

<comment><USER4> I'm curious, do you have valid examples for generating events? I'm sceptical of allowing this as well.

</comment></comment></comment><comment><USER5> > Not separating persisting the event history and persisting a view of the > current state

This seems like the classic half-way that people take when adopting ES without buying into CQRS.

In my experience you need a minimal amount of historical knowledge about an aggregate to validate business rules, and that is strictly orthogonal to ways you may want to build projections over the data.

If I understand OP correctly they are saying that rather than deriving state by consuming their events, they were maintaining a kind of snapshot that served as both the read/write model representation of a given aggregate in addition to storing the events.

It can be very, very tempting to try and reuse "models" in both parts of an application, but some basic scrutiny and some hard-won experience will lead to examples such as how.. in a view model for a User there's almost certainly no need to ever consume PasswordChanged type events, but in the write model (business logic) you may need to consume not only the newest state (to compare for authentication purposes) but maybe some kind of analysis over time of how frequently passwords have been changed recently. This asymmetry is a bit contrived in this case, but I'm sure OP has similar examples from their own codebase.

In reality I have found that at most a handful of fields on otherwise quite rich models ever end up being "rehydrated" in the write model, and rarely ever as dumb attr setters; in the read models by comparison the vast majority of events recorded against any given aggregate end up being used by one projection or another.

<comment><USER6> In my experience CQRS is useless these days when I can use something like MongoDb that has great read speeds. The idea of splitting reads and writes is fine conceptually but doesn't make sense to me when databases are so fast.

I worked on multiple Event Sourcing CQRS based systems and I see no advantages vs traditional databases.

The event stream is exactly the same as a commit log in a regular DB. Building "projections" is the same as making views or calculated columns. In my experience storing the whole event history is not useful and consumes huge amounts of space. Just like everyone compacts their commit logs, you don't have to, and if you don't, isn't ES the same thing with extra steps? It stores all the changes to tables and views, which are exactly the same as projections. With ES + CQRS combined you're basically replicating a database, badly.

Sorry to be so negative about this topic but I've worked on several of these projects at a decent scale and it's been the biggest disaster of my professional life. The idea may be viable but tooling is so bad that you're almost surely making a huge mistake implementing these patterns in production code.

<comment><USER5> > Sorry to be so negative about this topic but I've worked on several of these > projects at a decent scale and it's been the biggest disaster of my > professional life. The idea may be viable but tooling is so bad that you're > almost surely making a huge mistake implementing these patterns in > production code.

Quite, which is why I'm both writing a book, and developing tooling to help with this problem. ES/CQRS is a nice pattern that you can explain to someone on the back of an envelope in 5 minutes, but the devil really is in the details.

<comment><USER6> I agree it's a nice pattern. What you really need though is a "database in code". A library that handles all the projections, event stream, and especially replays and upgrading event versions automatically.

I'm hopeful that one day it will be a common and useful pattern but it desperately needs language integration to help with the details. That's why right now I can just say stay the hell away. Looking forward to advances in the space to make it viable in production

<comment><USER7> It seems like you have problems with the language here. Using pg and a language with ADTs, we have no trouble doing everything ourselves.

</comment></comment></comment></comment></comment><comment><USER8> ES is a wonderful concept, but comes with many pitfalls and design contraints that are very different from the classic CRUD workflow, which is what most devs are familiar with.

The biggest problem is the lack of available tooling.

The only custom built ES database is Eventstore [1], and it has many issues.

Many are abusing solutions that were not built for the use case (like Kafka), and end up hand-building a lot of related functionality that often ends up brittle.

Ad new purpose-built DB could do wonders for the space if it had these features:

* Horizontally scalable

* schema validation for events

* schema migrations and event upcasting

* Built-in projections + state rebuilding

* index projections

* something to help out with cross-aggregate sagas and coordination, and maybe even cross-aggregate transactions

* Spinning up mirror replay databases up to a certain time/event

[1] [https://eventstore.org/](https://eventstore.org/)

</comment><comment><USER9> I have a pseudo-event sourcing setup because I imagine could help in better sync mobile devices (yes it work).

But instead of using eventually consistent and get rid of the RDBMS? I invert the operation:

1- Post data to the table (as normal) record the event in Postgres with JSONB: All integrity and validations work great and without complex logic.

2- 90% of all the queries need only the most recent data. Not stupid "reload the history" for each simply operations

3- Still get full history & auditing.

This is not much different to "audit tables" actually.

Most events are Table + CRUD operation. If a table is well modeled and normalized you don't need to detail much of the event.

What I miss in the first iteration was diff the changes. This lead to much extra info. Diffing the changes auto-magically turn the event more semantic!

\----

Still is an imperfect setup and rely much on dynamic data to my taste. I wish modern RDBMS support algebraic types and better ways for this scenario but with this I avoid a lot of extra work and complications...

<comment><USER10> Sounds cool. The thing I'd say is, in this type of setup you can use somtehing called a "view." It's like a query that makes a virtual table.

So you can then have this "virtual table" of the most recent of each audit record, and query against that. It helps keep stuff clean, very underused in my experience.

<comment><USER11> In most relational database management systems (RDBMS) views are not persisted/materialized or indexed separately.

Some RDBMS have materialized views that update concurrently and meet atomicity, consistency, isolation, and durability (ACID) requirements, but others do not and a separate command is needed to update views, in those cases you lose many of the benefits, but the view is fine for say, analytical queries in which a little lag is fine.

I am personally a fan of temporal tables, a technique in which rows are versioned, and you can query for the state of the database "at" a point in time. Here support is even less uniform than with materialized views, but if you have control over your database access layer or object relational mapping, you can brew your own. This gives you history if you need it (rare, but incredibly helpful) and fine grained control over indexing.

I recommend the latter approach for anyone looking to implement event sourcing and auditing. Including in each table a column for the source or cause of a change for example gives you an audit log for almost free.

<comment><USER10> >> In most relational database management systems (RDBMS) views are not persisted/materialized or indexed separately.

Right, which is why they're great. You can materialize a view, but then you have to manually refresh. And they are actually incredibly performant.

How they work is they are basically treated as a query clause. For example you query "Select * from my_view where key = 1" and it intelligently executes "Select * from base_table where key = 1 and record = latest" (That is to say, it doesn't stupidly requery the whole base table each time, nor is there any risk of inconsistency)

The query optimizer is incredibly smart and honestly pretty sure this can scale beyond the needs of any startup.

<comment><USER11> I know how views work in several RDBMS, and I don't think that description lines up with what I understand.

> That is to say, it doesn't stupidly requery the whole base table each time, > nor is there any risk of inconsistency

I mentioned materialized views, but then you mention the base_table. I think this statement is inaccurate whether it's a materialized view or not:

1\. With materialized views as implemented by PostgreSQL and MS SQL Server, it doesn't query the base_table, it queries an artificially generated table. In the case of PostgreSQL, that table will be out of date (inconsistent) the moment there is a change to base_table. A manual refresh is necessary _and expensive_ every time the view becomes inconsistent.

2\. With non-materialized views, you are incorrect with at least PostgreSQL and MS SQL Server, the view does not "cache" its filters or joins or clauses. The view just functions as a query modification, and it does in fact query the "base table each time".

I think what you need to satisfy your requirements is actually a filtered or partial index, of the form:

        CREATE INDEX latest_idx
            ON base_table (some_base_table_keys, ...)
         WHERE record = latest;

That index _will_ be consistent and will keep the query optimizer from, as you say, stupidly requerying the whole base table, as long as the criteria holds and the keys your searching for are a prefix of those keys.

</comment></comment></comment></comment></comment><comment><USER12> It seems like sometimes event sourcing is what happens when someone hears a requirement for audit logs and instead of just setting up the database audit logging system they decide to completely re-architect their entire system. So in the end it is more fun but often not necessary.

<comment><USER13> Event sourcing is most powerful when the data necessary to recompute the state is small but the amount of state you are potentially interested in subsequently accessing is large, most of which is computed.

It is also incredible useful for financial applications where risk models (credit risk, market risk, fraud, etc) need backtesting. If you can't read the time-ordering of state events directly, a Risk/Data Science team spends an inordinate amount of time reconstructing time histories of events inferred from a mix of static db tables, audit logs and periodic data warehouse snapshots.

</comment></comment><comment><USER14> I've had several clients lately who have either built or needed to rescue an architecture that worked from events in a log. I'm amazed at how many teams seem to get it wrong. Like the author here, there are apparently a lot of different ways to interpret the design, and therefore a lot of subtle mistakes to make. I tried to summarize what I've learned in "Why are software developers confused by Kafka and immutable logs?"

[http://www.smashcompany.com/technology/why-are-software- deve...](http://www.smashcompany.com/technology/why-are-software-developers- confused-by-kafka-and-immutable-logs)

<comment><USER15> I agree with your post but...You almost certainly shouldn't be doing EventSourcing with Kafka. EventStreaming sure, Kafka is pretty idea for this (as your source of truth).

EventSourced aggregates need to reload their entire history (unless you are snapshotting too) before applying a command, so you shouldn't have all your aggregates in a single Kafka topic, as you would have to read all events since forever, for all aggregates, every time you loaded one.

If you put each aggregate into a separate topic, everything is fine, until you want to add projections - how do your projections know to subscribe to all the new topics being created for each aggregate?

You can probably engineer your way around these limitations, but at that point, why not use a tool which is more suitable for the eventsourcing and keep Kafka for the "Business Process Event"?

<comment><USER14> About this:

" _how do your projections know to subscribe to all the new topics being created for each aggregate?_ "

Isn't that precisely why people use ZooKeeper?

</comment></comment></comment><comment><USER16> > Seduced by eventual consistency

Indeed. I work at a very, very large firm suffering from problems caused by this. The system crawls and is quite expensive to run. But it's so entrenched there are no plans to replace it, only more layers put on top to mitigate it.

RDBM people took a bit more time before implementing temporal features (SQL 2011).

</comment><comment><USER17> Sorry to be that guy - the title tag has a typo: Mistaeks instead of Mistakes.

I promise that I will contribute more substantial feedback once I've read the piece :D

<comment><USER18> I believe that's the intentional name of his blog.

<comment><USER17> Whoops, now I feel dumb.

<comment><USER19> You just made a mistaek. :)

</comment></comment></comment></comment><comment><USER20> a cqrs based service I deal with in prod can probably best described as write anything other last two json records > /dev/null. It's stupid and brain dead way of dealing with data, and is not worth anything other creating deadweight of unqeuriable and unmanageable json blob history.

It sounds like author is unfamiliarity with properly and automatically dealing with schema evolution tools. cqrs is not a way out of that.

</comment><comment><USER21> Very hard to read on my mobile phone

<comment><USER22> I saved to pocket then read in mobile friendly way. It's helpful when you cannot modify the style as on PC.</comment></comment>


Interview with Max, an open-source deep learning engineer - <AUTHOR> https://remotehabits.com/interview/interview-with-max-a-deep-learning-engineer-with-a-winning-strategy-for-distractions/?ref=hackernews <comment><USER2> Stop deleting and resubmitting this.</comment>


Six Degrees of Francis Bacon - <AUTHOR> https://www.cmu.edu/news/stories/archives/2015/october/francis-bacon-launch.html <comment><AUTHOR> And a video here: [http://www.sixdegreesoffrancisbacon.com/](http://www.sixdegreesoffrancisbacon.com/)</comment>


Year of Upheaval for Restaurants That Ended Tipping - <AUTHOR> http://www.nytimes.com/2016/12/13/dining/restaurants-no-tipping-service.html <comment><USER2> > Tips are also handled differently in different states, but in New York, by > law, they can be pooled and distributed only to "front of house" employees: > those who work in the dining room, like waiters, bartenders and backwaiters > (formerly known as busboys).

That really makes no sense to me. When I go to a restaurant, I value the food a lot more than the service. I've come back again to restaurants where I hated the service but loved the food. I've never returned to a restaurant where I loved the service but the food was so-so. So, if I had to choose, I'd be tipping the kitchen staff only.

But as a European, I don't really like the practice of tipping and the rather pushy service from waiters trying to increase the bill (and come every 5 minutes asking me if everything's alright) that comes with it. It's also so much easier to not have to think about tipping at the end of a meal.

<comment><USER3> The kitchen staff are paid much higher hourly and usually work full time. If you heard what kitchen staff say about customers you probably wouldn't want to tip them.

For example when I was a waiter we made $2.13 an hour. Kitchen staff were usually in the $10-$15 range and many of them got overtime.

Tipping is just a way for owners to increase profits by passing more cost to the customer.

<comment><USER2> Ok, in the article, they mentioned: > "There was regularly a 500 percent deficit between the back of the house and the front of the house," said Abram Bissell, the executive chef of the Modern. "Like every kitchen in New York, we were having trouble attracting and retaining talent at that pay grade."

and

>An experienced line cook who carries $40,000 in debt from years of culinary school earns $12 an hour, while a new server can reap three times that much.

So it was my understanding that the Kitchen staff weren't paid that well. Also, I don't really care what they say about customers as long as the food is great :) They're not customer facing anyway.

But yes I do agree, tipping is just a way for owners to increase profits by passing more costs to the customer. It's exploitative and it creates bad incentives in term of customer interactions. I don't think that the customer service in restaurants is better in the US than in countries without tipping culture but on the other hand, I've seen quite a bit of pushy obnoxious behaviors from waiters that were trying to increase their tips.

<comment><USER3> You are talking about high end restaurants in New York. Chains and smaller mom/pop restaurants and not hiring line cooks with degrees.

Servers do make much more money but sometimes having steady pay and full time benefits can even out. Being a career cook can earn high pay later and/or you can even start you're own restaurant.

Front of house can be rude and pushy in US and abroad. The one difference I've seen in the US is they are slightly more attentive but its also not really needed. The customers demand it at this point. Latin America was much much slower than US or EU. Italy had a decent balance between too little or too much attention. EU were not as friendly but it wasn't necessarily a bad thing.

</comment></comment></comment></comment><comment><USER4> No tipping is tricky when it's not mandated, because prices always look and feel more expensive comparatively, even if it works out the same in the end. People are very impressionable to their initial sub-conscious impressions. Hence pricing like $9.99. It seems marketers have been aggressively going the other way over the last few years: do whatever it takes to minimize the sticker shock, then siphon as much as possible from the relationship.

\- new car for only $149! (every two weeks)

\- cheap tickets, but charge for seat-choice, blankets, bags, etc.

\- collect hundreds of tiny taxes instead of one equivalent (simpler) income tax

\- loss lead then recoup on servicing and insurance

\- cheap plans with punitive overages

\- access fee, upgrade fee, change fee introduced at the cash

I'm personally finding it more and more difficult to calculate total cost of ownership of products and services.

If your prices are advertised at 20% higher than everyone else's, I can't see this working except at the most inelastic high-end restaurants.

<comment><USER5> On the other side, it reduces cognitive overhead. For this, see unlimited plans (e.g. all you can eat, all inclusive holidays, unlimited streaming like netflix, etc) which may or may not be more expensive than paying as you go. Even bags of veg costing more than individual items in the UK is common.

It reduces the effort of making the decision, and so makes it the easiest path.

All you can eat restaurants are probably the simplest counterexample for your list.

It can remove the decision between places from "Well X is a bit less than Y but then the service is better, what's 20% of that vs 15% of ... added..." to just "It costs $X".

</comment></comment><comment><USER6> This transition (from a tipping system to a "service included" system) happened in France in the 70s.

I'm personally, as a French and as a customer, much more confortable with the new system, and I always a bit ill at ease when dining out in countries that still use the old system: fear of making a miscalculation, of forgetting the tip, of not giving an amount that would be satisfying for the waiter/waitress, of the money not going to the actual person who would deserve it (especially when paying with a credit card), etc.

</comment><comment><USER7> I hate tipping for all the awkward situations that can arise, when there is confusion about the expected amount for the "average" tip. Recently I attended a dinner for which the attending group had gotten a food voucher and only had to pay the drinks. Which we did with a nice tip - for the drinks. Neither we nor the giver of the voucher had preempted, that the waiter expected a tip for the food too. Which of course is debatable, as here in Germany, service is considered to be included in the prices. So, at the end, no one was happy, without any malicious intends on our side.

Traditionally, there was little tipping here in Germany, as service is included in the prices. One would usually just round up the cents. But with growing internationalization, tips started to grow - while technically still not required, there is now a strong expectancy of some tipping, adding to the confusion about the right amount.

At least, as long the basic service is included in the posted price, one can use the tipping as a feedback instrument. Rarely, I cut the tip to zero when I was very unhappy with the service provided, while I am happy to pay a generous tip, if I thought I had been serviced very well.

</comment><comment><USER8> Surprised it doesn't mention the somewhat unspoken agreement that at least some of tip wages go unreported by those that receive them, although, I guess that is possibly disappearing with the increase in credit card tipping perhaps?

<comment><USER9> If you really like your server, pay the bill with a credit card, but leave no tip on the card, then pay the tip with cash.

<comment><USER10> Because that facilities tax evasion?

<comment><USER11> Yes

<comment><USER10> It seems crazy to me that you're doing this as a kind of social service for the waiter or waitress, while helping to withhold owed tax revenue that could be used for other people who may be in need of social services.

<comment><USER12> Why would one prefer to pay for abstract social services extended to people who are TBD instead of rewarding a specific person to whom one is actually grateful?

<comment><USER10> Because of the law? You can still reward them as much as you want, but the law says that some of that reward has to be sent to the government. I can understand not agreeing with that law, but I can't understand justifying helping someone to breaking it in a non-emergency situation.

<comment><USER13> I don't think most people would comply with the law (at the expense of even minor personal gratification) unless there is a possibility of penalty.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Even if these restaurants succeed, one risk is that 'no tipping' is just something that upscale restaurants in rich areas adopt because only they can afford to.

Waiters in those restaurants are already compensated much better than your average waiter on a roadway diner -- this would literally only be helping the already better off.

<comment><USER15> Or you know just pay people minimum wage at least. I am not sure why certain service based jobs in America attract a tip and some do not.

<comment><USER16> That article indicates that there are both tipped, and untipped minimum wages - i.e. tipped staff earn less at minimum wage.

<comment><USER17> If they earn less than minimum wage, the restaurant has to actually compensate them up to the minimum wage. They only earn a lower nominal wage because it's expected they get more from tips.

</comment></comment></comment></comment><comment><USER18> Wage slavery is especially rampant in the food and beverage industry where low margins and high competition are the norm.

Including "tips" (you could still _tip_ for extraordinary service) as well as sales tax in the price might be the first step towards more transparency and _fair pay_ for everyone involved (owners to waiters) in what essentially amounts to a luxury service anyway.

<comment><USER19> I am in Thailand now, where the amount you see on the menu is exactly what you pay.

I just spent 10 days in New Delhi, India, where they add between 25% and 33% to your bill, before tips, in the name of VAT, Service Tax and Service Charge.

It's a world of difference. So much trust is lost.

<comment><USER20> In many restaurants in Thailand they add 10% + 7% (service charge and VAT) to the prices listed on the menu. However, the menu must disclose this, typically in fine print at the bottom.

</comment></comment></comment><comment><USER21> This Freakonomics episode from 2013 is well worth spending 37 minutes on before commenting. Or tipping...

[http://freakonomics.com/podcast/should-tipping-be-banned- a-n...](http://freakonomics.com/podcast/should-tipping-be-banned-a-new- freakonomics-radio-podcast/)

<comment><AUTHOR> As is this one from March 2016: "The No-Tipping Point" [http://freakonomics.com/podcast/danny- meyer/](http://freakonomics.com/podcast/danny-meyer/)

</comment></comment><comment><USER22> I've been to many restaurants here in the UK (and in Europe) where the "service charge" is automatically applied to the bill. You're not expected to tip at these places.

Many people don't realise; If you receive bad service, complain and the charge can be either reduced or waived altogether.

[edit for clarity]

<comment><USER23> I don't really like the trend of automatically adding a service charge to bills in London. It's a bit dishonest as it's just used as a way to reduce the prices on the menu outside the door to draw more customers in and the staff do not directly receive the money raised.

<comment><USER22> In a lot of places they don't directly receive the tips either, they all go in to one pot to be shared.

Have you ever tried asking for the charge to be removed if you're not happy with the service?

</comment></comment></comment><comment><USER24> _slightly related:_ I've never been to the US but have been aware of the mandatory tipping situation for a fair while. I'm curious though; when I was first made aware of it (2 or 3 decades ago), I am sure that the 'standard' tip was supposed to be closer to 10% than 20%. Is this correct? Has the actual % amount changed?

<comment><USER25> Two or three decades ago 15% was modal (and it might still be), but I hear the mean crept up to 18% sometime in the past five years.

<comment><USER24> Interesting. I wonder why. Maybe compensating for stagnating wages? Or maybe falling food and beverage costs (in relative terms)?

<comment><USER26> I live in the US and have noticed the same phenomenon. I assumed it was just social pressure and growing awareness of inequality and poor living conditions of some wait staff. Giving an extra $2 is an easy way to feel good about yourself. Then more people started doing it, and to keep feeling good about yourself you had to tip more and more. I'll give exactly 15% if the service is bad, 20% if it's good.

</comment></comment></comment></comment><comment><USER27> To avoid the sticker shock: List the prices minus a service charge of 15%. On the menu prominently display that a service charge is added. Perhaps it's a bit confusing but at least the prices are comparable.

</comment><comment><USER28> I don't see why they can't just keep prices the same and add a "mandatory 20% service charge" at the bottom.

<comment><USER29> Because then you're just adding a mandatory 20% tip, when a tip is supposed to reward good service. Of course, it really doesn't mean that any more (they're more or less expected/required) but I usually get pretty annoyed when I see a "Mandatory 18% gratuity for parties of 6 or more" thing at the bottom of a menu (even though I usually tip 18-20%). If you're going to require a 20% gratuity, increase all prices by 20% instead of making me multiply every price by 1.2.

At least when tipping is "optional" restaurant owners can pull the "Well you can tip whatever you want, including nothing" card, but if you require 20% then you're just adding a hidden fee.

If you went to walmart and there was a sign at the front of the store saying all prices would be increased by 20%, that wouldn't be acceptable. Why should it for restaurants? If you really want to give 20% of every bill to the wait staff, then increase the prices of everything by 20% and give it to them automatically.

<comment><USER30> I much prefer "everyone pays the same" rather than "(the most aggressive and able-to-rationalize why they can tip less this time) get subsidized by people with qualms".

The case of Walmart would seem to go against your point; they're much closer to the tip-free model. "You see this price? That's what you pay." (With the caveat that some items are taxed.)

If anything, modern/Western retail stores closely parallel the transition that tipless restaraunts are making: there _used_ to be an ad-hoc, inefficient, confusing, anti-introvert system for vending goods. It was called "haggling". It was replaced by a higher-volume, fixed price system that provided greater assurance that customers weren't getting ripped off or subsidizing those who were better at the dance.

Lots of parallels to how tipping works.

Edit: A closer parallel would be if Walmart replaced pretax prices and "you just have to know that some of these are taxed at whatever-the-current-local- rate is" with tax-inclusive prices.

</comment></comment></comment><comment><USER31> I know that I would avoid no-tpping restoraunts as a customer - losing ability to give direct feedback on the quality of service is not something in my interest at all.

</comment><comment><USER32> i'm curious to know if abolishing tipping reduces performance? it seems like there's no reason to put in extra effort if all of them are paid the same and that the worst performer could be paid the same as the best.

<comment><USER33> If a restaurant has bad service, people will eat elsewhere. That means restaurants will hire waiters who provide good service and fire waiters who provide bad service. It seems to work out well enough in countries where you don't normally tip.</comment></comment>


PAW Web Server for Android - <AUTHOR> http://www.appbrain.com/app/paw-server-for-android/de.fun2code.android.pawserver <comment><USER2> What is a good use of an Android-based webserver?</comment>


Why USB sucks (2005) - <AUTHOR> http://www.technozeal.com/topic2.html <comment><USER2> This seems odd to me, as a consumer I remember the days before USB was around, and it _really_ sucked. Maybe USB is less lovely if you are a driver developer, but thats because its pushing more work away from the consumer and onto the driver developer. As a consumer, USB has been pretty awesome.

edit: I suppose you could argue that something much better than USB could have been possible, but thats how it is with technology, the standard that takes off isn't necessarily the best, its just one thats _good enough_ and gets traction somehow.

<comment><USER3> Developing USB drivers is actually totally fantastically easy nowadays with libusb(x). You can more-or-less just pretend your USB device is a server you talk to through a socket. No need to even write a single line of kernel-code, you can do it all in python in userland, if you so desire.

For many USB devices this is also a totally feasible thing to do, too, because most USB devices that are not providing some standard interface that the operating system takes care of (keyboard, mice, controllers, tablets, mass- storage, ...) just provide some sort of service that typically only one application would interact with, so just having the driver inside that application that interacts with it works well.

</comment></comment><comment><USER4>
      the USB connectors have no locking mechanism. [...] users
      will scream in frustration when they realize their USB
      mouse has been inadvertently unplugged from the back of
      the computer because it wasn't locked into place.

Is this really a problem, except for high-vibration industrial applications?

I'd rather have USB than be fiddling around trying to reach thumbscrews on the back of my computer in the dark under my desk.

<comment><USER5> I don't know about you, but I really crank on my mouse. If your shoulder isn't moving you're not doing it right.

<comment><USER6> Better for the cord to come out the back of the computer than the front of the mouse.

Besides, even PS2 connectors will come out if you yank on them hard enough. I can't remember owning a mouse with a locking cable ^^;

<comment><USER7> I've actually wondered why almost all mice and keyboard come with fixed cables instead of mini/micro-b connector. I guess it saves couple of cents in part costs.

<comment><USER8> Why would I want my mouse/keyboard cable to be removable? It's completely useless without it. The only possible effect is to make it easier to lose.

<comment><USER9> The cable tends to get damaged fairly easily.

<comment><USER10> This has literally never happened to me in like, 10? years of USB use.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> Grounding. That's why USB sucks. If you work with precision instrumentation, USB introduces ground loops and forces unpleasant grounding configurations.

I've been looking for a USB 2.0 High-Speed (who came up with these names, where Full Speed is slower than High Speed?) opto-isolator for years. (Corning's new "3.Optical" cabling looks great, once it makes it to market)

HN have any pointers?

Edit: Looks like 3.Optical cables appeared for sale ten days ago! [http://www.corning.com/news_center/news_releases/2014/201404...](http://www.corning.com/news_center/news_releases/2014/2014041501.aspx) , [http://www.eaccu-tech.com/usb-3-0-optical- cables/usb-3-optic...](http://www.eaccu-tech.com/usb-3-0-optical- cables/usb-3-optical-cable-a-plug-to-a-receptacle-10-meter/)

Hm. They may be "for sale", but availability may be slim.

<comment><USER12> A USB over twisted-pair extender, like [1] works. They just look like an extra hub to the USB stack.

[1] [http://www.digikey.com/product- detail/en/B203-101/B203-101-N...](http://www.digikey.com/product- detail/en/B203-101/B203-101-ND/4438264)

<comment><USER13> I don't see any mention of isolation in that datasheet, nevermind an actual voltage spec. Granted I haven't looked super hard, but any USB isolator I've seen only ever does full speed. I recall seeing one _chip_ from ADI that was meant for high speed USB isolation, but that's the closest I've come.

<comment><USER11> Ethernet is transformer-isolated [1]. If you just need to break a DC ground loop, a CAT-5 connection will do it.

If you look at the Tripp-Lite's installation manual [2], you'll see that the external power supply is connected to the remote unit.

[1] [http://electronics.stackexchange.com/questions/27756/why- are...](http://electronics.stackexchange.com/questions/27756/why-are-ethernet- rj45-sockets-magnetically-coupled)

[2] [http://www.tripplite.com/shared/techdoc/Owners- Manual/933116...](http://www.tripplite.com/shared/techdoc/Owners- Manual/933116.pdf)

<comment><USER13> Yes, but RJ45 and cat5 don't necessarily imply Ethernet.. DC losses on their own would be high enough to warrant that remote power supply.

<comment><USER11> Agreed. In the absence of a solution like the 30m 3.Optical, we're desperate enough to try it. We have a working solution using daisy-chained repeaters (for distance) landing in a powered hub, but it's hardly elegant. People make nifty USB-->WiFi interconnects too, but the one we tried can't handle full- bandwidth usage of USB 2.0.

It was a sad day when the opto-isolating ADI development board arrived and we discovered, to our chagrin, that Full Speed != High Speed. We were so stoked to have finally found it.

<comment><USER13> Those terms ("high" vs "full") are especially tricky somehow. Perhaps that ADI chip I mentioned was the same one, and they tricked me as well. At least I was just researching to determine how bad I would want an Ethernet port if I got a PC scope. (I determined the answer was "pretty bad")

I don't know why bona fide high-speed isolators are not a common thing. Maybe 12Mbit ends up being sufficient for 98% of cases? It seems like the only way is to find a type of product for which they _can 't cheat_, like those optical 3.0 cables or an actual GigE->USB protocol converter.

Then again Tripp-Lite is a big name, and you really would want some isolation for a 300ft run. Good luck!

<comment><USER13> Answering my own question, I ran across an EEVblog post where someone pointed out the problem is the bidirectional data line. OFC that's why you can't just feed them into a GBIC etc. USB 3 has two unidirectional pairs, and so should be easier to isolate.

However, don't get your hopes up for those 3.optical cables to do what you'd like either. USB3 actually just implements 480/12/1.5 by having a parallel USB2 bus the whole way. There is _no_ conversion between the two, which also means you can't actually aggregate 480mbit devices with a USB3 hub the way you'd hope. So who knows if Corning has actually created a full implementation or also just punted.

<comment><USER11> Corning's specs state "Compatible with USB 3.0 and USB 2.0 devices __" , so I'm still an optimist. We tried to get one early from them, and nearly did, but ultimately couldn't. At $100, I'm sure we'll be trying it out when they're available.

Our applications already function well without isolation [1,2], but I'd love to know for certain that the last little bit of ADC noise we see is intrinsic to our readout system and not a little bit of hash on ground.

[1] [http://arxiv.org/abs/1309.4828](http://arxiv.org/abs/1309.4828) [2] [http://arxiv.org/abs/1401.4412](http://arxiv.org/abs/1401.4412)

<comment><USER14> Isolating mains-powered devices sometimes is tricky, for example in one device of [1] we resorted to specially wound transformers with increased spacing to minimize capacitive coupling to mains/ground, accepting the resulting higher losses in the low-voltage power-supplies.

If you want to research if "ground loops" are indeed of concern, try to inject them artificially (split up protective earth, feed in current from a function generator) and check the influence on your measurement, then you can quantify the "ground loop rejection ratio" of your setup. This will also tell you which frequencies are most susceptible to disturbance in your specific setup.

In your paper, you seem to only have a CCD line camera taking the data, most likely it will be easier to cut open the grounding here, mount it using plastic screws and spacers, if not already done. {EDIT:} ...or not feasible because of the heatsinking...

[1] [http://arxiv.org/abs/1302.6092](http://arxiv.org/abs/1302.6092)

<comment><USER11> Agreed, and we've tried that with other USB DAQ systems. The +5 rail is still referenced to the inferior ground. You can split that guy out too, and bring in external power; but then there's the question of the signal lines - to whom are they referenced, and will they function reliably?

It's so much more satisfying to know that you have truly isolated connections than to worry about whether you've gotten a complicated system laid out correctly. I don't trust me to get the details right :).

(As you say, for cleaning up AC from the mains, isolation transformers are fabulous.)

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> >>> I note that more than a few chip companies have created USB-to-serial bridges (with accompanying drivers). This is a sure sign of USB's technical failure. Which isn't to say that USB won't thrive.

Here's my thought about those chips. I do a lot of simple prototyping, testing, data acquisition, and so forth. To these ends, I often build my own little gadgets that combine some sort of microcontroller with some analog electronics, etc. I wouldn't be insulted if you called me a hobbyist. Still, the stuff that I make works, and solves problems.

There are "USB microcontrollers" that contain a built-in USB port. Then you have to wade through each manufacturer's peculiar documentation, and hope that their demo code does what you need, or prepare to roll your own on both the embedded and desktop sides.

Or, you hook up a USB-to-serial bridge. There's nothing magic about serial, except that it only robs you of two pins, and setting it up is 100x easier. Also, the bridge chip runs independently, making it 100x easier to write real time code on the microcontroller.

If I went to any other kind of interface, I'd use the same approach of a "bridge" module plus a microcontroller. There are such modules for virtually every conceivable interface.

I've had the pleasure of watching my gadgets work on multiple platforms with no extra effort on my part. I think a platform needs to have at least one "people's port" and the FTDI chip meets that need nicely.

<comment><USER14> Exactly! While some people claim that this robs USB of some of its strength, surely having a 10 line cross platform python script control your ADC/blink the LEDs is the ultimate deal breaker for USB2uart.

And even IF your micro comes with built in USB, it's just so convenient to just let it emulate a cdc compliant serial port working everywhere out of the box.

Libusb is almost as good on non-windows (which needs some pseudo driver to allow the library to generically talk to the device)... but then one would need a serial-terminal substitute to send packets off data to arbitrary endpoints.

<comment><USER16> > Libusb is almost as good on non-windows (which needs some pseudo driver to > allow the library to generically talk to the device)...

If it's _your_ USB-device, you can add a WCID descriptor [1], and use the WinUSB/libusb API. No driver installation necessary post Vista (on XP you need to manually install the WCID driver, but only once).

[1]: [https://github.com/pbatard/libwdi/wiki/WCID- Devices](https://github.com/pbatard/libwdi/wiki/WCID-Devices)

</comment></comment></comment><comment><USER17> Some of the complaints hold true, others just sound bizarre now:

> But for the vast majority of devices, you had better have your driver disk > handy

Driver disks... yeah, I think I remember those?

My biggest complaint with USB isn't there, the ports can be kind of fragile. Even without regular swapping (which the design seems to encourage), USB drives and cords slowly pry them out of position. Forget about the port if anyone bumps the USB stick or trips over the cord while it's plugged in.

<comment><USER18> Even then, using USB devices WITH drivers beat the hell out of configuring IRQ and DMAs. I remember the ordeal it was when you wanted to add or change something and you had conflicting IRQs... pfff..

<comment><USER19> When PCI replaced ISA (which was prior to USB taking off), dealing with IRQs and DMAs was a thing of the past, making that a poor reason to say USB is superior.

<comment><USER18> Uhmm... I guess you are correct. I indeed remember going from PCI to ISA. Also to AGP! oh my.. the speed of that thing. But I think the point still stands, maybe not that much with that specific example, but how about PS/2 keyboard and mice?

Woops... disconnected the mouse/kb by mistake? off you go rebooting the computer. I think that does indeed make it a good reason to say USB is superior.

</comment></comment></comment></comment><comment><USER20> [http://i.imgur.com/kYGTLjc.png](http://i.imgur.com/kYGTLjc.png)

<comment><USER21> I never understood these jokes, I always put the USB key/cable in the good position. 99% of times you can rely on the USB logo (which has to be at the top).

<comment><USER22> I'm looking at a USB memory stick right now. On one side is the company name (Kingston). The other side has the device name (DataTraveler). There is no USB logo on the thing.

So, which way does it plug in? Oh, and the USB ports on the front of my computer (tower) are vertical, nor horizontal.

<comment><USER23> Ever tried reaching in the back of an iMac to plug in a USB drive? I have a 2011 iMac, and to this day I still have NO idea which way the slots are oriented. I usually just give up, stand up, and angle the entire computer just so I can plug it in.

</comment></comment></comment></comment><comment><USER24> The vendor ID device ID issue is/was real. I think there was a story here a while back about a manufacturer making it so hobbyists could use their ID or something.

<comment><USER25> There is a great talk by Ian from Dangerous Prototypes on this from the 2012 Open Hardware Summit.

[http://www.youtube.com/watch?v=1pegVYODsn4](http://www.youtube.com/watch?v=1pegVYODsn4)

</comment></comment><comment><USER26> From a developer standpoint. I could get a minimal output via a serial port with a few lines of assembly on a bare hardware.

USB requires a lot more work and on Windows the API is atrocious. On Linux the API (libusb) quite a bit nicer, but still a bit of work.

The plug and play part, device naming and unique identifiers are a special "joy" of USB.

If serial port is sufficiently fast I'll take it any day over USB.

<comment><USER27> I was able to build a serial bridge between an SNES and a PC on a simple breadboard with stock parts: [http://i.imgur.com/sPKGvl.jpg](http://i.imgur.com/sPKGvl.jpg) (the output is from a Teensy that is running as a USB<>serial device, so the PC sees it as /dev/ttyUSB0 ... the input and passthru connect DB9 to the controller port on the console, and the switch allows the original controller to work in place of the comm board.)

The Teensy driver code was around 10KB, and the PC code that opens /dev/ttyUSB0 was around 15KB.

Have been trying for over a year to implement a true USB version so that we can take advantage of the full bandwidth capability of the system, which is 2.68MB/s, which only USB high speed can do, and it's been nothing but a nightmare.

I will be really sad in the future when little toy projects like this are out of the hands of hobbyists due to costs and complexity. We've already lost that in the desktop operating system field, where video cards alone are more complex and undocumented than entire OS kernels these days.

<comment><USER7> You mean connecting to the EXT port at the bottom of SNES? I didn't even know that it had such thing. Sounds interesting, what are you trying to do?

<comment><USER27> Well, we are currently connecting to the controller port because it's really easy to connect to those. But of course you can only hammer at those registers at around 40KB/s.

So yeah, a friend made a PCB and found some female edge connectors we can cut to size to connect to the EXT port, where we can DMA at 2.68MB/s through using eight data lines. On the other side of the PCB, we just stuck a custom sized 28-pin IDE header. Easy to do whatever with that: wire to breadboard one-at-a- time or with an IDE cable.

The hope would be to then have some device that monitors each clock rise, grab the eight bits on the data bus, and send it to the PC. It can buffer a bit and have _some_ latency, that's not a big deal.

But even with ICs that can latch the data quickly enough, we don't have enough bandwidth over serial nor USB1 to send 2.68MB/s of data. It'll have to be high-speed USB2, and will almost certainly need to be some kind of custom driver, as I doubt you can do some kind of super baud-rate of 16,000,000+bps.

<comment><USER7> > It'll have to be high-speed USB2, and will almost certainly need to be some > kind of custom driver, as I doubt you can do some kind of super baud-rate of > 16,000,000+bps

The venerable FT232H claims "data transfer speeds up to 40Mbytes/s":

[http://www.ftdichip.com/Products/ICs/FT232H.htm](http://www.ftdichip.com/Products/ICs/FT232H.htm)

I'm not sure what is needed to actually accomplish such rates. Might be easier to do it with USB-enabled MCU. Either way, I wouldn't discount the standard USB classes too early. I'm "pretty sure" that you should be able to push some tens of Mbps through USB-CDC class.

</comment></comment></comment></comment></comment><comment><USER28> Seems to have forgotten that before USB any strange/unique device required an interface card. And resolving IRQ conflicts... what a giant pain. Oh and then they changed the interface bus (ISA, EISA, MCA, VLB, PCI, etc) every few years.

</comment><comment><USER29> Remembering the RS-232 ports and configuring for the devices speed, parity, etc. makes me think I can overlook a lot of flaws in USB.

</comment><comment><USER30> #1 is just the nature of cables. If you think blutooth is the answer, try using blutooth for a while.

#2 is actually a really big deal with developing software to interact with anything USB. Well, I should say anything based on the FTDI chipset. I don't have any experience with anything else. Which is increasingly the case, given the modern proliferation of hobbyest hardware projects. There are no connection status events. RS-232 never developed any because a loss of connection with a cable that is physically bolted into the computer should be a catastrophic event.

Oh, I cannot tell you how many hours of my life I'll never get back debugging connection status issues. And it doesn't necessarily have to be a physical break in the connection that causes the problem. It could be an every so small short in the connector that only triggers once in a blue moon when you shift yourself in your seat and accidentally bump the wire with your chair handle while also plugging in your headphones.

Luckily, the latest versions of Windows (don't look at me, clients don't seem to care that they'd save a ton of money using Linux) are pretty robust to USB connection cycles. It used to be, if you lost a connection before closing the connection, you wouldn't be able to close the connection. The USB device would get assigned to the same COM port, which you couldn't open, because you still had it open. But couldn't close. Because you lost the connection. In the later days of XP, it often led to having shutting down the program, recycling the USB connection, and start the program again. In the _early_ days of XP, it required a whole system reboot.

#3 I don't actually begrudge anymore. It's a situation that occurred due to evolution. Regular B connectors are too big for small devices, so Mini-B was developed to accomodate. But it turned out that the design was significantly flawed, creating a board connector geometry that was not very robust against repeated pluggings and unpluggings. Micro-B was developed to be significantly stronger, to support a greater number of cycles (if you look closely, they aren't just a different shape, the pins are set in the plug completely differently). Then smartphones turned into micro-microcomputers and people started to want to plug devices into them. Suddenly, what was strictly a slave interface before, needed to have the option to become a master interface at will. USB-OTG was the result, and it's actually a rather clever compromise that maintains backwards compatibility well.

#4 can be a significant problem when doing any sort of real-time data collection. It's nearly impossible to connect a variety of sensing devices to a PC and be able to synchronize the readings of them in time. For the most part, I take the system timestamp for everything, then generate a best-fit curve and use _that_ for my calculations. There's just no confidence in the precision of the time resolution in USB.

#5 isn't USB's fault, it's device manufacturers. Hardware developers are some of the worst programmers in the world (and yes, they will say the same thing about programmers and circuit design, but you don't see me designing circuits, now do you?). Your printer has a really shitty system for installing drivers because the driver developer can't be arsed to learn how the operating system works with drivers. And he can't be arsed because his manager is probably bugging him to "get back to real work".

His list of new problems are largely obviated by FTDI. However, FTDI has its own problems, both technical and political.

<comment><USER31> Micro-USB has been terrible, reliability wise. The ports survive pretty well, but cables wear out at an unacceptable pace.

I buy stocks upon stocks of micro USB cables, and I've switched to wireless charging, because I simply keep running out of them.

It's not simply me being reckless, my wife's cables wear out, as do my brother's and various friends.

Also, none of us had any of these issues back with mini-USB (though admittedly we used those cables much less than we use micro today).

<comment><USER32> I agree. Micro USB was not an improvement over Mini USB. I've never had a Mini USB cable go bad, but easily a third or more of Micro USB cables I've owned are faulty, with barely any stress. Also, Mini USB cables were a huge improvement over standard USB, because I could orient them by feel alone. I've lost that ability with Micro USB, where it often takes three tries to plug it in.

<comment><USER33> That's all intentional. Mini USB cables were stronger than Mini USB ports. Its generally better to make the weaker side of a connector the cheap easy-to- replace cable.

</comment></comment></comment></comment><comment><USER34> The team that wrote the Plan9 Use code remarked "It's not Universal, it's not Serial and it's not a Bus"

<comment><USER34> s/Use/USB/

</comment></comment><comment><USER35> i was plugging in a usb into the back of my computer and i saw a firewire port. wow i forgot those existed, i remember they were all the rage and going to replace usb

<comment><USER36> FireWire preceded USB by a couple of years.</comment></comment>


How accurate is the iPhone GPS? - <AUTHOR> http://www.cannonade.net/blog.php?id=1563

<comment><USER2> This is awesome. So useful, thanks!</comment>


Ask HN: Have you started a business because nobody wanted to hire you? - <AUTHOR> Also, how did that turn out? Did your business become profitable to the point where it replaced the need to look for a job?
I'm curious if you've ever been driven to start a business simply you had little or no alternative choice for making a living.
The business could be any kind of legitimate enterprise big or small. Doesn't need to necessarily be software or tech related, could be something from more traditional trades or disciplines. <comment><USER2> I'm trying to find a job right now and it isn't going well. I have my PhD in computer science and I've run my own bootstraped company before and took it to over a million in profit for a couple years. I want to find a job as a engineering manager or something similar, but the feedback I'm getting is I don't have enough corporate experience for that type of job, because I've just been doing my own thing for so long. I could find a job as a programmer, but I really don't want to. After running my own company, I just like management better. And I know I wouldn't enjoy programming for someone else for 8 hours a day.

So, I'm currently starting a tech business, but it is just going to take a bit to get started and it may not work. So in the mean time, I'm going to work on starting a plumbing company. I live in an affluent community and I think I can get the plumbing business to $400k-$500 a year, with just myself and a van. I'm going to just hire a plumber to take calls with me until I get comfortable going on calls on my own. I apprenticed this fall with a plumber; I like the work way more than programming and got an idea of how much I could expect to make. Which is way more than I could make programming for someone.

Thinking back on it, as my PhD was finishing up, I was having trouble finding a job, which was one of the things that pushed me to start my own thing anyway.

So I guess not being able to find a job and starting my own thing is something I have done a few times now. It is way more motivating to start something when you have no other good choice.

<comment><USER3> I've been incredibly tempted to do an electricians apprenticeship, so it's cool to hear someone from an academic background that's actually done something similar and gone into a trade. My study was Electrical and Electronic Engineering so I imagine the career swap would be trivial, but it's a large time investment.

How did you find the time to do it? To become a licensed electrician in the UK apparently takes about 4 years, and I'd earn pittance until qualifying so that's the only thing stopping me currently. I assume plumber would be as similarly stringent.

<comment><USER4> I had a roommate who had both and EE degree and was a licensed electrician. He could get a high paying job with just a phone interview. All the more amazing because he was a felon who served five years for drug smuggling and would reveal that in the interview right off the bat.

</comment></comment></comment><comment><USER5> A famous anecdote along these lines are the whatsapp founders.

I haven't done so personally yet but it's starting to look like I might consider this route.

Several years ago, I would have leaned toward a SaaS business targeting some super niche vertical, not to make 1000x VC style rocket-ship returns of course, but as a way to bootstrap into a nice business. I get the sense most verticals with a TAM worth going after are now very competitive.

Interested to see if people see opportunities in non-tech routes.

<comment><USER6> Another famous anecdote would be Elon Musk, who tried to get a job at Netscape in the '90s and failed [1], and claims that he created his first company because he couldn't get a job at any existing internet companies.

[1] [https://www.cnbc.com/2018/06/18/how-elon-musk-tried-to- get-a...](https://www.cnbc.com/2018/06/18/how-elon-musk-tried-to-get-a-job-at- netscape-in-the-1990s.html)

</comment></comment><comment><USER7> I worked in construction for 20 years. I thought I was doing the right thing by going back to college to advance my career but it didn't work out like that.

I only got half-way on my route to becoming a surveyor since I simply could not afford the time away from work. So I found myself in a situation where I was better qualified than my boss but not so well qualified that there were many alternatives other than looking for similar work elsewhere.

By then, at the age of 40, I was, in the eyes of potential employers, over qualified for the roles I was applying for or just too old. So I gave up.

After a spell of unemployment while tinkering around with different ideas I fell into web development and started earning a bit of money. I figured I may as well pursue this since there wasn't anyone around at the time to tell me not to. After struggling for a few years I got to the stage where I was earning as much as I was in my previous career so stuck with it.

Some years later I have a lifestyle business that enables me to travel whenever and wherever I like and work whatever hours I want to (within reason). I don't earn a huge amount of money but I do earn enough to live on and save for my retirement.

I'm reasonably happy with the way things worked out.

</comment><comment><USER8> I did.

It was 2012. I was kind of 33.000 USD in debt, wife pregnant with the first baby.

Trying to interview at significant companies (Dell, HP, Atlassian, etc.) none was given me nothing.

One friend of mine who had access to the HR feedback said I was too confident and I should try to appear less skilled as the manager was kind of afraid.

The situation was so bad I had a google spreadsheet with places I sent resume, results and etc. Kinda my personal job analytics.

(checked the spreadsheet now...that was depressing)

No money, no jobs, a kid on the way and wife declared:

\--- "It is very disappointing having to pay the bills for you."

Then I got one call from a person willing to do consulting, they had some problems with their billing system.

Solved the problem and watched them work thinking about how I can help them more. I saw two employees matching online payments with the billing system.

That struck me... The whole process was old and archaic and prone to errors. So I propose to them do a payment processor.

They had that idea before, and another specialist told it will cost 300K and 1 year to make it, so they are not sure about all that investment.

Well, I offered: 1\. I do for you in 2 months; 2\. I want X% of payments 3\. If I fail, you don't pay anything; 4\. Honesty

Now we are on the 3 years going strong, and I think I will expand it more. I am not rich but I can pay some bills, and my customers are pleased.

Six months ago I asked my customer: "When was the last time you had a billing or payment problem?"

And he really paused and realized that it was long ago.

Got my Cheque and sent a cake to their team. Win-WIn

Tl-Dr; Being a loser is a TEMPORARY stage keep fighting and looking for opportunities to serve and help your customers make more money.

<comment><USER9> > One friend of mine who had access to the HR feedback said I was too > confident and I should try to appear less skilled as the manager was kind of > afraid.

I just got reject from an interview even though I passed multiple technical interviews. I was more annoyed because they found people more junior to interview me (the job was to be their team lead). The third interviewer was asking such a simple question, I didn't even understand what he was asking for 10 minutes until I realise I was over thinking it (it was a poorly formulated question that wasn't well thought out). It was a question I didn't expect because at my level, they shouldn't be asking those questions. I would have expected that question for a boot camp graduate. So I already knew, their level was below par. And the interviewer felt so smart for stumping me. Needless to say, I wasn't disappointed when they rejected me, but more relieved I dodged a bullet.

<comment><USER8> " And the interviewer felt so smart for stumping me. Needless to say, I wasn't disappointed when they rejected me, but more relieved I dodged a bullet."

I got 3 interviews like that. On the last one when I openned the door and there was two guys looking at their hipchat channels talking about our interview in the middle of the interview it was clear it was a fail.

I try no to blame others so I can be more on charge of my destiny.

</comment></comment></comment><comment><USER10> Absolutely. I wanted to move away from the technical side of business as I really enjoy the commercial aspects too, but once you're a CTO, it's very hard (and unusual) to become a CEO in an established business.

Now I get to do a bit of everything I enjoy.

</comment><comment><USER11> Realizing the amount of value you can create as a programmer working for a company is an eye-opener.

I've worked at a startup making millions of dollar in revenue every quarter. Realized that I was just making someone else rich and got paid in pennies. Quit the job and took the plunge.

</comment><comment><USER12> I'm starting my own software consulting business. I only have about 1.5 years of experience (full time), mainly self taught. I just recently started to go look for clients and realizing that after learning programming, now I have to learn sales, lol.

<comment><USER13> If cold calling scares you, but you feel like you have to do it, feel free to reach out. My email is in my profile and I'd be glad to help you work on a script. You can even practice on me if you want.

Good luck! Sales can be a lot of fun and your programming mind will help you figure out a good sales system.

</comment></comment><comment><USER14> I started consulting. Now it would be really hard to go back to doing a single aspect when as a consultant, I get to do many (GUI/computer vision/graphics/embedded).

<comment><USER15> What sort of customers? That's a similar set of skills to me, but I am struggling to see a path to consulting.

<comment><USER14> Small companies and a couple of big ones.

The golf ball vision project was a small company, like 6 people. Another vision one is for a tiny medical startup. The laser product was for a large company. I'd worked for the director like 10 years earlier. The radar graphics is for a medium (50?) sized company.

3drocketsurgery.com

I get the gigs mostly through friends.

<comment><USER15> Interesting, thanks

</comment></comment></comment></comment><comment><USER16> I am thinking about it a lot lately. I have worked with a high growth startup (outside SV) for 2 years. And another year with a SV based but slightly less growth startup in early stage. Last year I emigrated to EU for a new job. After few months I din't like the job. I stared looking for a new job and I am getting lowball offers from everywhere. I am thinking if it makes more sense to start my own business instead of finding that perfect job.</comment>


Code not physical property - <AUTHOR> http://www.wired.com/threatlevel/2012/04/code-not-physical-property/?utm_source=twitter&utm_medium=socialmedia&utm_campaign=twitterclickthru

<comment><AUTHOR> So if our code isn't a physical thing and can't be stolen, can we say the same thing for other digital files, like movies and music?

<comment><USER2> Yes, we already do. AFAIK, the number of people who have been prosecuted for _theft_ of a digital movie file (as opposed to violations of copyright law) is zero.

<comment><AUTHOR> I've definitely read things, and maybe they were just statements from the RIAA/MPAA, that said copyright infringement was exactly the same thing as theft. Or am I making that up?

<comment><USER3> If such an assertion were true, it would be terrible for their business. Theft of a $20 object is not generally punishable by a fine of $100,000.

</comment></comment></comment></comment><comment><USER4> Interesting that they did agree that digital money (wire transfers) is property. So one set of bits is theft but another set isn't.

<comment><USER5> Which is particularly ridiculous, as _money_ is not physical at all. Even physical money -- bills and coins -- is just information, just as when you write down your phone number on a piece of paper.

<comment><USER6> Well no. Physical money is _scarce_ information.

<comment><USER5> True, but money is not limited to the physical form.

</comment></comment></comment></comment><comment><USER7> Now _that_ is an interesting monkey in the wrench. A 2nd Circuit opinion that allows that

 _"He (the defendant) argues that:

[1] the source code was not a "stolen" "good" within the meaning of the NSPA, and

[2] the source code was not "related to or included in a product that is produced for or placed in interstate or foreign commerce" within the meaning of the EEA.

The judgement of the district court is reversed."_

Which narrows the opinion to the definitions in the NSPA and EEA but I think some creative lawyering should be able to get this into things like code to compress images for example.

It will be interesting to see if anyone can use this as leverage in the ongoing copyright/patent/IP discussion.

</comment><comment><USER8> It would be lovely to read an IP lawyer's opinion on this story's implications.

Does this mean that a programmer working at a firm can walk away with code without breaking any laws?

<comment><USER3> No. You will probably be breaking some laws, but not laws against theft.

</comment></comment><comment><USER9> I like that he got off, but does that means for the hackers that took googles code. What happens to all patents on software.</comment>


A worthy Ultrabook appears: the ThinkPad X1 Carbon reviewed - <AUTHOR> http://arstechnica.com/gadgets/2012/08/a-worthy-ultrabook-appears-the-thinkpad-x1-carbon-reviewed/ <comment><USER2> Depending on who you ask, the "stiff hinges"--common to all ThinkPads--are a feature, not a bug. The hinges will still be in great shape several years down the road when other laptops will be floppy or unable to stay open. I can hold my hefty W530 by the screen bezel, open, and walk around with it without the base moving at all or stressing the case.

This is a case of being built to last rather than being built to feel buttery in the showroom.

<comment><USER3> Amen. This is why I'll never buy another inexpensive Dell laptop.

Stupid things like hinges or fans will fail and the way these laptops are contructed, it's more trouble than it's worth to try to repair them, even when you know te rest of the components are doing fine.

Disposable Computers.

Fail.

In the end, I'd rather have an older ThinkPad, say a T61, than a new Dell.

There's one great thing about older computers: there are fewer problems with non-Windows drivers. Lots of non-Windows OS's will run great on, say, a T61.

<comment><USER4> Spot on.

T61 user here. eBay is a veritable goldmine of bits for T61's. There's not a single bit you can't replace for trivial amounts of money. I've spent about 150GBP on this T61 since I got in a couple of years ago (and that included the purchase price!). All I did was chuck more RAM in it, buy a genuine mains adapter (after the shitty clone one zapped me) and a new key scissor after I bounced the TV remote off it by accident.

I'd also say that the T61 works better with Windows than some of the new machines as well. It has proper hardware and no corner cuts like shitty network interfaces, "odd" graphics devices and b-rate media devices.

Also screw mag-safe - this thing just bounces if the kids trip over the cable (much better engineering IMHO).

<comment><USER5> Mag safe is the only thing I miss after moving from a macbook pro to a thinkpad.

It really makes me mad that apple was granted a patent when magnetic power adapters were invented by UL in the 90s for deep fryers.

<comment><USER6> > It really makes me mad that apple was granted a patent

Is that why no one else has implemented this feature?

<comment><USER4> Actually a company I worked for had prior art on that and had working implementations in the field but as it was the defense industry, they aren't that fussed.

</comment></comment></comment></comment></comment></comment><comment><USER7> Here is the engadget review. It has comparisions to many more ultrabook models than the Ars Technica review does.

[http://www.engadget.com/2012/08/14/lenovo- thinkpad-x1-carbon...](http://www.engadget.com/2012/08/14/lenovo- thinkpad-x1-carbon-review/)

There are definitely some compelling Ultrabooks besides this Lenovo. What about the similarly priced Samsung Series 9, or if you have a tighter budger and can accept lower specs, the Toshiba Portege Z935?

[http://www.engadget.com/2012/07/06/samsung- series-9-review-1...](http://www.engadget.com/2012/07/06/samsung- series-9-review-13-inch-mid-2012/)

[http://www.engadget.com/2012/06/05/toshiba- portege-z935-z835...](http://www.engadget.com/2012/06/05/toshiba- portege-z935-z835-ivy-bridge-refresh/)

<comment><USER8> Don't overlook the 2nd gen Zenbook Primes from ASUS, 1920x1080 IPS screens on both 11.6" and 13" models.

[http://www.anandtech.com/show/5843/asus-zenbook-prime- ux21a-...](http://www.anandtech.com/show/5843/asus-zenbook-prime-ux21a-review)

<comment><USER9> do you know of any issues with backlight bleeding? The Amazon reviews got me worried

<comment><USER10> UX31A here. I have no qualms in recommending this as the best 13" ultrabook.

</comment></comment></comment></comment><comment><USER11> Looks nice, but you would give me one I'd refuse it.

They removed the single feature that made me buy my current X200s : the full keyboard. A real keyboard, with real touch and real keys : <http://bit.ly/P3NmYd> A keyboard with Ins Hom PgUp Del End PgDn.

<comment><USER12> Meh. This complaint is widely overblown IMO. I came from a T61 and an R61 and recently switched to a W530 which has the same keyboard layout as the Carbon. I contemplated the upgrade for an _extremely_ long time and finally jumped.

After a little more than a month of use:

For one, the "real keys" v. chiclet style keys issue is a non-issue for me at this point. They have the same keypress feel for me and there's part of me that prefers this keyboard more.

The Home-PgUp-Del-End-PgDn key issue is going to differ per person is a tricky one for me to elaborate. I hated this keyboard at first since the PgUp and PgDown replaced the forward and backward keys that I used HEAVILY. After cooling down my hatred, I'm completely fine with those keys and the top row of Home-End-Insert-Delete.

After getting used to those my only long-standing complaint is the god damned print screen button. Why in the hell it's next to Alt and Ctrl is beyond me. It's absolutely horrible positioning and I don't think I'd ever forgive Lenovo for this decision.

<comment><USER13> I really hope they have a "Pause" and "Scroll Lock" button on there, too, because...what the hell is a Print Screen button doing on a laptop keyboard in the first place?

<comment><USER14> Screenshots? Weird to have a dedicated screenshot key, but that's what Windows has done with it for nearly eternity and I'd imagine a few people expect it.

As for the positioning; only logical reason I can fathom is they ran out of room and you can't split up Home/End, etc. (Then again, Microsoft drops Insert on some of it's full keyboards, why not Lenovo?)

<comment><USER13> That Windows needs a dedicated key for screenshots but usually has _two_ perpetually useless Windows keys that few people ever use still baffles me.

Windows is a museum of bad design decisions that have become so entrenched it's impossible to eliminate even the most obscure ones.

</comment></comment></comment></comment></comment><comment><USER15> Lenovo messed up on the default calibration of that panel. You have the same problem with the t430s which I own. I used a ColorHug to get the correct ICC profile at which point it looks a lot better. More details and the profile from G+ [https://plus.google.com/110166527124367568225/posts/bLg18FtS...](https://plus.google.com/110166527124367568225/posts/bLg18FtS8KZ)

(Lenovo do ship an ICC profile with Windows, but it was made in 2010 and is simply for a 60% gamut screen of that resolution and doesn't take into account the actual panel used.)

Screens have been the major area where Lenovo have been taking backwards steps, while everything else have been (sometimes debated) improvements. We now have low resolution and 16:9 instead of 16:10 losing vertical resolution. My laptop has over 5cm of wasted vertical space (just plastic) that would be better served by being pixels.

<comment><USER16> It's worse than you suggest, and the trend has been going on for years. Highest resolution available in a Thinkpad, by year:

2005: 2048x1536

2010: 1920x1200

2012: 1920x1080

And the old ones were IPS. I like the old keyboard lights better than the new backlit keyboards too. This is not arbitrary; they're useful for reading things other than the letters on the keyboard.

<comment><USER15> It's even worse that the worse you suggest from my worse suggestion! Viewing angles on the new screens are pitiful, with very rapid colour representation as you move out of the small sweet spot. The _only_ thing I have found any improvement on is that my 2012 screen is brighter than my 2007 screen - sufficiently bright that I can actually use it ourdoors.

The new keyboards are more subjective - unlike the screens which I can't imagine anyone defending. I got the backlit keyboard on my new system and am happy with it - the old thinklight is still present so I switch between the modes as suits my whims but mainly use the backlit mode. When you press Fn- Space it cycles between keyboard backlight low, high, then thinklight (with keyboard off) and finally all off.

On the 6 versus 7 rows, I am okay with the changes. But then I'm not that big of a Thinkpad keyboard snob.

<comment><USER16> That's because the old high-end screens are IPS. That generally implies better viewing angles, contrast ratios and color reproduction.

<comment><USER15> I'm comparing my 2007 vintage T61 screen which wasn't IPS - just a regular LCD panel to a 2012 vintage T430s screen. The viewing angle on the new screen is _really_ small (both horizontally and vertically).

<comment><USER16> That's interesting. I rate the 4:3 T61 screen as not very good, but I'm comparing it to my UXGA Flexview so that may be a little unfair. I have to wonder if Lenovo thinks people just don't care about viewing angles.

<comment><USER15> I have the 1680x1050 (IIRC) 16:10 T61. That was the upgraded screen not the standard at the time. It was perfectly acceptable, and has decent viewing angles, but not comparable to the IPS panels of previous generations.

On the Lenovo blogs almost any post will have comments complaining about the screens. Lenovo's response has been that they could only get better screens if they had large orders and that doesn't happen (apparently it would take tens of thousands of orders to get a screen manufacturer to change tooling for a 16:10 run). But somehow Lenovo charge $1,000 to have 16GB of RAM in a laptop (the most expensive place I have found for buying the RAM as a component is $200), yet don't offer better screens for any money.

I am very grateful for Apple making screens an issue that can no longer be ignored on decent laptops. I'm very happy with all other aspects of the Thinkpad, but the screen made me seriously consider an Apple product instead. Lenovo are just lucky that some of the non-screen aspects of the Apple products are sufficiently annoying to this Linux user that I didn't switch.

<comment><USER16> Apple is well known for being able to get what its wants from suppliers, but I'm sure Lenovo sells enough laptops that if it cared enough to make screens a big issue with suppliers and a selling point for customers, it could get good screens too. When IBM wanted good screens, it _created a new company_ (IDTech, since sold to Sony) as a joint venture.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> This could be my new machine if Apple continues destroying OS X for me.

<comment><USER18> That's what I'm thinking too. For the past year or so, I've been wanting to swap my MacBook Pro for an Air, but I'm becoming more hesitant now. I just feel like OS X is going down the road of iOS, and their lawsuits as of late are rubbing me the wrong way.

Maybe I'll give Linux on the laptop an honest try. I know for sure it won't be Windows.

<comment><USER6> > Maybe I'll give Linux on the laptop an honest try. I know for sure it won't > be Windows.

Just install Ubuntu, it works very well with ThinkPads and it's made to be easy to use for end-users.

<comment><USER19> All my responses on using Ubuntu on a Lenovo were summed up nicely on <http://news.ycombinator.com/item?id=3964530> (Ubuntu visits Google.)

For my developers getting new machines, I tell them to split the HD into 3 partitions: Windows, Ubuntu and Mint - give each a one-week shot and then stick with what feels best.

<comment><USER20> I'm loving Ubuntu 12.04 w/ cinnamon instead of unity on my x201t.

</comment></comment></comment></comment></comment><comment><USER21> Asus Zenbook Primes seem to be a very high quality Ultrabook series as well (be wary of the differences between 32VD/32A and 31 models)

Also, the Zenbook Primes mostly have 1920x1080 resolutions. While the X1 Carbon was upgraded from a pitiful 1366x768 to a 1600x900 resolution, it's a shame they are still a bit backwards on that. I'm wondering what people think on the 1600x900 vs. 1920x1080 issue and how much of a difference it makes.

<comment> T-R Why do you say to be wary of the 32VD? I was literally just about to buy one.

<comment><USER21> The 32VD is bigger/thicker than the 31 models and has a hybrid HD(24GB flash) rather than full SSD. It's got a dedicated graphics so I guess it's just targeted towards a different market.

</comment></comment></comment><comment><USER22> I have Ubuntu with my X1 (less than a year old but not carbon). While it works great from a drivers standpoint, the trackpad is extremely messed up. My only dislike for the laptop is the poor trackpad. Other than that it's solid.

<comment><USER23> Can you be more specific than "messed up"? I'm actually looking at this very device as my next Linux laptop. Do you mean it performs badly? That the hardware is bad? That the drivers don't support something you want to do?

<comment><USER6> His device is the X1. The X1 Carbon has a drastically better trackpad.

That said, you should try to use the TrackPoint, since it's a much more efficient pointing device once you get used to it.

<comment><USER24> Used a trackpoint for a long time. Big glass touchpad is way more efficient. You move your fingers more, but because you have more control over the larger range of movement than you do over the smaller range of movement, you can jack up the tracking speed a lot higher.

<comment><USER6> > you can jack up the tracking speed a lot higher

I just increased the sensitivity of the TrackPoint. When I use a MacBook (supposedly the pinnacle of trackpad technology), I feel like the cursor is moving in slow motion.

</comment></comment></comment></comment></comment><comment><USER25> This is all fine and dandy, but I would have much preferred them to put the effort into producing a decent X* tablet again. Since the X201T, every upgrade they did, starting with the switch to an even flatter and wider resolution and most recently switching from having one of the few decent keyboards remaining in the market to yet another clone of that hybrid style between TV remote buttons and the metal anti-vandalism keys found on airport internet café terminals that Apple popularised, has been feeling like more of a downgrade.

</comment><comment><USER26> I bought an original Thinkpad X1 at the start of the year and after using it since then I have to say the biggest problem it has is the battery. It's more like a large capacitor than a battery, something to keep itself powered while your run between power outlets. It is actually quite disappointing when the sole reason you buy an ultra-thin "ultraboook" is for mobility and portability, but you have to stay tethered to a power outlet.

It's great to see that they have addressed this issue in the X1 Carbon. Engadget suggests a 3:30 battery life for the original X1 which seems about right, so I trust their measured battery life of 5:07 to be pretty close. I presume real world usage will be even better than the extra 1:07 from the original X1, as moving to the matte screen should mean a lower display brightness, since you're not fighting the reflectiveness of the corning gorilla glass.

The second biggest issue I have had is one of quality. My first X1 was RMA'd for faulty mouse buttons and wireless antenna right after I opened the box, and the second one I received reported incorrect battery capacity, had dead pixels centre screen and some other hardware faults which escape me. Thankfully I was able to salvage a completely working X1 out of the two (original and replacement), returning to Lenovo a very broken, but brand new Thinkpad.

Despite the carbon fixing my number one issue of battery life, I'm still not sure if I would upgrade to it, given then chance. I originally bought this Thinkpad X1 because it was supposed to be a Thinkpad, something that was nearly bulletproof and would withstand the abuse of travel and the outdoors. Lenovo has lost my trust in Thinkpads for now, but hopefully this X1 Carbon is better than the original.

</comment><comment><USER27> Somewhat annoyed that their three comparison computers are all Macbook Airs. Ignoring the fact that you're comparing different OS and most people will choose based on that alone, there are several decent Windows-based ultra- portable computers out there. The Samsung Series 9 was the first 'Macbook Air killer' and is still solid. There's also the Asus Zenbooks (as mentioned already) and the Toshiba Porteges (Z set), among others.

<comment><USER28> I'm not entirely convinced that being a "Macbook Air killer" is even that important of a goal. It proves that you can do it & there's a bit of a halo effect but I've not seen enough people using MBAs to think that it's really a major market segment to chase.

</comment></comment><comment><USER29> The keyboard looks a bit strange. The massively wide right-hand set of keys (Backspace, \, Return, Shift) could be made a bit narrower, surely, and the navigation keys squeezed in next to them.

Judging by the keyboard layout, somebody reckons people still use PrtSc a lot! Well, with my suggestion, you could put PrtSc in this extra column, give us a right-hand Windows key where PrtSc is, AND you'd still have space left over for not just Pause/Break but also the vital Scroll Lock.

This would also make it difficult to put an inverted-L return key in, because it would be ridiculously thin. So they'd pretty much have to do the non-US version with the same layout for that section. So if you lived in a 102-key country you could finally get all the extra keys you know and love, AND a proper Return key. I would buy that.

But as it stands: meh. Odd keyboard, HD4000, max 8GB. Looks nice though...

<comment><USER30> broken record: just bought a t530 and the prtsc key makes me crazy. Who thought this was a good idea?? That and switching the left ctrl & fn (so it's like a mac). I suppose these things are just not for programmers/power users; anyway it's a big PITA to switch from ctrl under shift bottom left (every other PC keyboard) to "ctrl somewhere else, you just dimmed the screen."

EDIT: Thank you for BIOS keyswap tip. It's still not as good as a properly placed, properly _sized_ ctrl key but this helps!

<comment><USER31> I thought everyone remapped caps lock to control anyway, but maybe I'm in a vocal minority here? I can't stand it any other way, and it feels much more ergonomical. Do yourself the favor of trying it for a while.

<comment><USER32> Or Escape if you're a Vimmer (theory, I'm an emacser, so it's Ctrl for me).

</comment></comment></comment></comment><comment><USER33> Am I missing it, or does that review fail to discuss if the screen is matte (usable) or glossy (I'll never buy another)?

Also, I look forward to the day when 1600x900 is no longer considered high resolution. That should be entry-level for a 13" screen.

It looks nice otherwise.

<comment><USER34> ' Display (Premium) 13.3" (338mm) HD (1366x768) TFT color, anti-glare display with glossy infinity Corning® Gorilla® Glass LED backlight, 350 nits, 16:9 aspect ratio, 300:1 contrast ratio

[http://www.lenovo.com/shop/americas/content/pdf/system_data/...](http://www.lenovo.com/shop/americas/content/pdf/system_data/x1_tech_specs.pdf)

<comment><USER21> That's the original X1, the X1 carbon I believe switched to matt.

<comment><USER34> Ah, thanks. I was needlessly disappointed.

</comment></comment></comment></comment><comment><USER16> I've read some comments on this machine at <http://forum.thinkpads.com>. The complaint I see a lot of there is that the screen is _terrible_. It's bright, and has what passes for a high resolution these days, but the color reproduction, contrast ratios and light leakage have all produced complaints.

Disclaimer: this is a forum where people hack together T61/T60 hybrids so they can have 8gb of RAM and a UXGA IPS panel, so they make have higher standards for their screens than most people.

</comment><comment><USER35> My Lenovo Brick... uh oh I mean T410S is still sitting on my desk. Within 2 months of getting it, the screen started having large white lines in it. Within 4 months the plastic started cracking, and within 7 months I got a fan error. I just won't trust a lenovo again.

<comment><USER36> I am currently using a Lenovo T60p... a laptop from 2005. Lenovo is known to be a reliable business laptop.

<comment><USER37> The T60p's were absolutely fantastic machines. I used mine (got it early in 2007) fulltime until a couple of months ago when the fan died (for the second time. Made very loud grinding noises whenever it tried to spin up.) I still use it on occasion without the fan, making sure to suspend to ram as soon as I see the temperature go past 75C or so. I didn't bother fixing it this time since the price of a new fan/heatsink assembly and a new battery would have been more than the cheapest eeepc I could find on newegg, but I've wanted to get another thinkpad ever since.

<comment><USER16> Heatsink/fan assemblies are under $10 on ebay, and these laptops are straightforward to disassemble. The official hardware maintenance manual will tell you step by step. It should take less than an hour to replace.

<comment><USER37> Ah, they were around 30-50USD on ebay last time I looked; thanks for the tip.

</comment></comment></comment></comment></comment><comment><USER38> i can haz ubuntu?

<comment><USER39> exactly what i was thinking. we linux users need a good laptop that looks good, perform well, and something that isn't apple!

<comment><USER40> And for the record, Linux and the Retina MBPs don't get along.

[http://www.linuxinsider.com/story/Linux-and-Apple-Which- Is-t...](http://www.linuxinsider.com/story/Linux-and-Apple-Which-Is-the-Lemon- Which-Is-the-Lemonade-75981.html)

(FYI: the Phoronix post has an overlay ad)

<comment><USER41> I really like how those guys think it's somehow Apple's fault. Fonts are too small because Linux doesn't have resolution independence? Apple sucks for building a laptop with too many pixels.

<comment><USER42> Wow, the original Phoronix article was much more reasonable. [http://www.phoronix.com/scan.php?page=article&item=apple...](http://www.phoronix.com/scan.php?page=article&item=apple_mbpr_linux&num=1)

</comment></comment></comment></comment></comment><comment><USER43> The Verge has a nice video review of this unit: [http://www.theverge.com/2012/8/13/3232132/lenovo- thinkpad-x1...](http://www.theverge.com/2012/8/13/3232132/lenovo- thinkpad-x1-carbon-review)

</comment><comment><USER44> I don't understand why two-finger scrolling works in some applications but not in every application...

Isn't two-finger scrolling basically a hw emulated wheel scrolling as far as the OS is concerned ?

<comment><USER31> I think the issue is with discrete (line-at-a-time) vs. smooth (pixel-at-a- time) scrolling. Two-finger scrolling typically sends the latter type of event, which is not yet widely supported in Windows and Linux software (although I have it working on my thinkpad X121e with the latest gtk3).

<comment><USER44> I thought the "smoothing" was done entirely in software because my old genius mouse wheel behaviour changes according to firefox "smooth scrolling" setting.

It still seems weird to me that if the smooth (pixel-at-a-time) event is sent two-fingers scrolling fails while a mouse doesn't. The OS or the application is accepting pixel-at-a-time event and fails or succeeds regardless of the originating device (mouse, touchpad, wacom, etc.).

</comment></comment></comment><comment><USER45> How is the noise profile? My 4 year old t400 (upgraded to 8gbyte ram and a SSD) is still dead silent except when playing hd video.

</comment><comment><USER46> Too bad it's limited to 8GB of RAM.

<comment><USER47> Eh, I think 8GB RAM for a laptop is pretty damn good. It's an ultrabook, not a server replacement!

<comment><USER48> Is the RAM user upgradable? Otherwise it's an unconscionable $250 to go from 4GB to 8GB and no option to go higher.

<comment><USER49> Apparently the ram is soldered on the motherboard, so no.

</comment></comment></comment></comment><comment><USER50> No RJ45, No VGA? There is a lot of old hardware / circumstances requiring this in a professional setting. An adapter is not an option because I am going to loose it all the time.

<comment><USER51> Then you're not in the market these machines serve. I have been rocking the MBA since it came out, and the latest rev is I think the best computer ever made _for me_. When they go Retina (and use a discrete graphics card) I will be in hog heaven.

People occasionally ask me what laptop to buy, and I always admit that I know nothing about the Windows laptop market. Is Thinkpad still the only game in town?

<comment><USER50> I also know nothing about the Windows laptop market. But in Linux land Thinkpad is just working perfect.

<comment><USER51> More accurate I guess would have been "the ~OSX laptop market." Precision in language!

</comment></comment></comment></comment><comment><USER52> Ouch. They _still_ make notebooks with the "nipple" mouse? I actually thought it was a Thinkpad from the 90's on the first pic.

BTW, who invented the term "ultrabook"? It's cheesy as hell. Reminds me of the "laser disc" days.

<comment><USER53> I _love_ the nipple mouse. I find it much less irritating on my wrists than a trackpad. Plus, it allows for a rapid transition between keyboard and mouse.

<comment><USER54> I agree and I have disabled the trackpads in the bios settings for both of my Lenovo laptops. I just wish they could solve the slight movement drift you experience sometimes when using the ThinkPoint.

<comment><USER55> Oh. You echo my very pet peeve with the trackpoint. I hate the slight drift.

I have a script that disables the trackpad. I will figure out how to do it in the bios.

<comment><USER56> I've found that pressing directly down very hard on the stick will sometimes kill the drift.

<comment><USER57> The trackpoint always auto-calibrates itself when you let go of it. If you begin to get a drift, let go for a few seconds and it'll fix itself.

<comment><USER56> The drift I see is when your finger is _off_ the stick and the cursor keeps moving. And it goes more than a few seconds.

<comment><USER58> Yeah, it'll do that because it's used to your finger being on the stick and thinks that's the neutral position. It's supposed to stop and recalibrate itself eventually, especially when it reaches the edge of the screen. I've never had that take more than a dozen seconds on my Thinkpads (X31, T60) but of course YMMV, yours might be actually buggy.</comment></comment></comment></comment></comment></comment></comment></comment>


Docker just announced the Docker Store - <AUTHOR> <comment><USER2> A link to the relevant blog post was posted here earlier: [https://news.ycombinator.com/item?id=11946799](https://news.ycombinator.com/item?id=11946799)</comment>


How do you get an Indian Minister to tweet what you want? - <AUTHOR> https://twitter.com/free_thinker/status/1095571793233043456 <comment><USER2> In a World in which we worry about bots, this does highlight how real people can be hoodwinked into being human bots.</comment>