The Evolution of Lisp (1993) [pdf] - <AUTHOR> https://www.dreamsongs.com/Files/HOPL2-Uncut.pdf <comment><USER2> To refresh your ideas on CL (I know I needed it): [https://github.com/CodyReichert/awesome- cl](https://github.com/CodyReichert/awesome-cl) There may be more libraries than you think. Also recently some usual complaints have been fixed:

\- hard to set up environment ? -> [http://portacle.github.io/](http://portacle.github.io/) There's also Lem, and Atom is getting good. [https://lispcookbook.github.io/cl-cookbook/editor- support.ht...](https://lispcookbook.github.io/cl-cookbook/editor-support.html)

\- horrible website ? [http://common-lisp.net/](http://common-lisp.net/) (they fixed it last year) Also [http://lisp-lang.org/](http://lisp-lang.org/)

\- no cross-platform, featureful GUI library ? -> [https://github.com/lispnik/iup/](https://github.com/lispnik/iup/) (alpha) There's also Qtools for Qt4. And Ltk, but Tk lacks widgets.

\- no object-oriented, generic math or equality operators ? -> [https://github.com/alex-gutev/generic-cl/](https://github.com/alex- gutev/generic-cl/)

\- no decent library for numerical computing ? -> [https://github.com/numcl/numcl](https://github.com/numcl/numcl)

\- waiting one month to publish your library into Quicklisp is too much ? -> [http://ultralisp.org/](http://ultralisp.org/)

\- lack of online beginner friendly documentation ? -> [https://lispcookbook.github.io/cl- cookbook/](https://lispcookbook.github.io/cl-cookbook/)

<comment><USER3> The lack of a really good open source IDE or IDE plugin is a real road block for a number of people. Pointing folks to Emacs or an Emacs derivative is is not the solution. I know there is a couple of IDE plugins for Clojure and I think it would help if there were similar options for Common Lisp.

I know there used to be a plugin for Eclipse (Cusp) but that appears to have died.

<comment><USER4> I watched a fascinating presentation and when I saw the speaker typing (lambda ...) and having it change to (λ ...) and not having to deal with parens.. I was jealous.

Does emacs do this?

EDIT: the presentation:

 _William Byrd on "The Most Beautiful Program Ever Written"_

[https://www.youtube.com/watch?v=OyfBQmvr2Hc](https://www.youtube.com/watch?v=OyfBQmvr2Hc)

<comment><USER5> Some languages understand λ directly (and in all lisps that support unicode, you can explicitly alias it) - I've occasionally mapped AltGr+L to λ, when playing with those. It's really nice.

APL perhaps goes a little far, but I'd like to see more standardized symbols in programming languages. Imagine how nice it would be to succinctly use things like the actual outer-product operator ⊗...

<comment><USER4> > APL perhaps goes a little far

When I learned APL long ago in a languages course, it was on a dedicated APL setup with an APL keyboard.

In that context, it was a "how SHOULD things be" sort of design decision. I know I started off quickly thinking in terms of math and the language, not composing symbols.

Of course, APL keyboards have gone the way of the dodo and so the language has a higher barrier to entry.

</comment></comment></comment></comment></comment><comment><USER6> I've always thought it unfortunate that fexprs were dropped for macros in lisp. For a language that touts homoiconicity and first class functions/objects, it feels strange that macros aren't first class.

My understanding is that fexprs have some perfomance problems over macros, but I'm not really sure why or if the state of the art has advanced since then.

A really interesting evolution of lisp is Shen. The license is terrible and I seriously doubt it will ever achieve widespread use. And while the idea of a kernel lisp sounds great, in practice I doubt that it actually works.

The performance trade-offs that you're going to need to make become very unclear when you have a language that can run on A python, CL, js, or whatever runtime. The JVM is successful because it unifies language and implementation, instead of fragmenting it further like Shen does.

Racket is the clear horse to pick in this race, I think. Hopefully Racket on Chez will improve the performance to close to that of native binaries. If so, I really think that it would be the last piece of the puzzle.

<comment><USER7> I'm not sure what the relationship between fexprs and homoiconicity is supposed to be. If anything, the arguments to an fexpr in a Lisp with lexical scoping are opaque and cannot be manipulated, since they are wrapped up in a closure by the interpreter. Plus, not every macro can be written as an fexpr (for example, LOOP). In contrast, fexprs seem to work well in PicoLisp because it uses dynamic scoping exclusively.

Traditional Lisps are only functional in the first-class-function sense, but not in the mathematical sense where functions give the same output for the same inputs. Furthermore, they use an eager reduction rule for function applications, and not lazy reduction. Put together, programmers rely on knowing the implicit control flow so that effects occur in their proper order. All fexprs really do is let the programmer define constructs that manipulate this control flow in non-standard ways. If you think about it: why have fexprs be part of the language if all you need to do is wrap each argument in (lambda () ...)?[1] (If you make { and } be a reader macro for (lambda () (progn ...)), then you would possibly save a little typing.)

(In Haskell, the eager evaluation is sort of abstracted into the IO monad, and pervasive lazy evaluation is that everything is an fexpr.)

I think of Lisps (Common Lisp in particular) as actually being two languages joined together: the metaprogramming (macro) language and the core Lisp language. It can be a bit confusing distinguishing them because of how metaprogramming stages are interleaved and how the metaprograms are written in Lisp itself. The macro expansion language is a simple tree rewrite language, where for each node, the system looks to see whether there is a corresponding rewrite rule (a _macro_ ), then replaces that subtree with that rule's result. This continues until quiescence, at which point the completed program is passed to the core Lisp interpreter/compiler.

One strange Lisp variant is Mathematica, where the _entire_ language is based around these tree rewrite rules --- it's all basically macro expansion. In principle, this means Mathematica does not need macros, but in practice it can be very difficult to control the order of the rewrites.

Lisp macros _are_ first class in a certain way, at least in that you can refer to them with (macro-function ...). I know what you mean though, how you can't just apply #'and to a list of booleans and get the actual boolean "and." I sort of think that Common Lisp should have distinguished between the function and macro slots of a symbol. That way you could define both a macro and function version of a symbol if they both make sense. This would also better distinguish the metaprogramming and evaluation stages.

Something I wish were true about Lisp is that eval(eval(x)) == eval(x) (at least if the expression x has no side effects!). There are a few things in the design that make this difficult or impossible: (1) evaluating a symbol gets its lexical or global binding, so double evaluation of 's will give the value of s and (2) there is no distinction between a form and a list literal, other than through quotation. A way around (1) is to use MDL-style explicit accessors to get the bound value of a symbol and make symbols self-evaluating (so .x gets the lexical value of the symbol x), and a way around (2) is to have tagged lists like in MDL, where the tag is part of the pointer to the first cons cell. Mathematica does this too, to some extent. For example, {1,2,1+2} in Mathematica is short for List[1,2,Plus[1,2]], which evaluates to List[1,2,3]. "List" is not an element of the list, but rather the tag (called the "head"). (There's a hole in my proposal, however: if the lexical value of a symbol is a form, then double evaluation will evaluate to what that form represents. I don't know away around this. This might simply be a formal logical contradiction from trying to collapse different levels of representation into one, a Russell-like paradox.)

I'll just throw something else I've been thinking about here: the old Lisp-1 versus Lisp-2 debate is about whether a symbol should refer to a single thing, or whether using it as a function vs using it as a value should refer to different things. The utility of two namespaces seems to be than when Lisps were dynamically scoped, setting the value of a symbol wouldn't cause a clash if that symbol happened to be used as a function elsewhere. However, with the advent of lexical scoping in Lisps in the 80s this became a bit less of an issue, though it remained in the design to avoid collisions in macro expansion. I wonder if the "correct" Lisp-2 ought to be global vs local bindings for a symbol, at the cost of needing to annotate symbols like .x and ,x for local and global bindings, like in MDL. As a convenience, (f .x) would be short for (,f .x).

[1] This is the paper in which Kent Pitman argued against fexprs in Lisp: [https://www.nhplace.com/kent/Papers/Special- Forms.html](https://www.nhplace.com/kent/Papers/Special-Forms.html)

<comment><USER8> > One strange Lisp variant is Mathematica

I wouldn't call Mathematica a Lisp, given that it is a runtime rewrite system and not based on a defined evaluator (which also makes Lisp relatively easy to compile and also compilable to relatively efficient code).

> That way you could define both a macro and function version of a symbol if > they both make sense.

There is a variant of that in CL called 'compiler macro'.

> The utility of two namespaces seems to be than when Lisps were dynamically > scoped

One still has the same problems with global symbols in Scheme.

       (define (foo list) (list list))

Here the parameter variable LIST shadows the global function LIST.

<comment><USER7> > Mathematica

It's derived from Wolfram's conception of Macsyma, and it is designed so that all code is made out of numbers, strings, symbols, and arrays (sure, not cons cells). I guess it's nice to know you wouldn't call Mathematica a Lisp, but I didn't say it was strictly in the Lisp family, just a strange variant. (Does this mean you do not consider PicoLisp a Lisp either, since it is not really compilable, as far as I can see? Or is it fine to you because it has a defined evaluator?)

Mathematica does have a built-in compiler, but granted it is unclear exactly what subset of the language it is compiling.

> There is a variant of that in CL called 'compiler macro'.

I am aware, but that certainly does not have the same effect because CL is not required to invoke your compiler macro. This means you cannot rely on compiler macros for control flow manipulations, like what 'and' requires. (I know you said "variant," but they are more of an optimization than what I was talking about.)

> (define (foo list) (list list))

As I said, with lexical scoping "this became a _bit_ less of an issue." What I had in mind is that at least any of these kinds of shadowing errors will be entirely local. You won't have the problem that by using 'list' as the name of an argument, if it were dynamically bound in a Lisp-1 it would mess up any function you might call that itself uses 'list'. Lexical scoping at least prevents this spooky action at a distance that you would need a Lisp-2 to prevent under dynamic scoping.

<comment><USER8> > I guess it's nice to know you wouldn't call Mathematica a Lisp,

Thanks!

> but I didn't say it was strictly in the Lisp family, just a strange variant.

Right, that was my point, I don't consider term rewriting systems as Lisp variants, even though they may have numbers and strings as data types. The actual execution engine is too different.

Fexprs had the interesting property that it sees the actual source at runtime (which makes it very different from lazy evaluation or wrapping things in lambdas), which appeals especially to users/implementors of computer algebra systems (see Reduce written in Portable Standard Lisp, which provides Fexprs) or other math software dealing with formulas (like R, which has a feature similar to fexprs).

> Mathematica does have a built-in compiler, but granted it is unclear exactly > what subset of the language it is compiling.

From what I read of its very unspecific documentation, I doubt that it does the term rewriting at compile time (like Lisp does macro expansion at compile time) - does it? To me it looks like the compiler targets numeric code and basic control flow...

They probably have better documentation of their language implementation, internally. Or is there an externally available document, which actually describes their implementation?

Mathematica as a rewrite language

[https://www3.risc.jku.at/publications/download/risc_342/1996...](https://www3.risc.jku.at/publications/download/risc_342/1996-11-01-A.pdf)

</comment></comment></comment></comment></comment><comment><USER9> Nice discussion starting around page 23 discussing how the end of / limitations of the PDP-10 led to an explosion of innovation including the development of continuations (still so unfamiliar back in 1993 that they had to be explained in simple language).

</comment><comment><USER10> \---- 7 Conclusions [The following text is very sketchy and needs to be filled out.] We're still working on this. [End of sketchy section.] \----

</comment><comment><USER11> I have this printed in a three-ring binder, lying on the floor under the desk here.</comment>


The Data Behind Purchasing Behavior at UserVoice – Pricing for Conversion - <AUTHOR> http://500.co/2013/07/18/the-data-behind-purchasing-behavior-at-uservoice-pricing-for-conversion-part-i/

<comment><USER2> The surprising bit here is that dropping the requirement for a credit card had no effect on conversions or trial signups. I've only ever read the opposite, and my own testing at Improvely matched what I've read: the trial signup rate more than doubled when a credit card wasn't required.

At the same time, the extra people signing up were not good leads. These new users rarely completed the steps to start using their account, those that did submitted more support requests, and the conversion rate to paying customers at the end of the trial was more than halved.

I ended up putting the credit card requirement back in.

<comment><USER3> I too am surprised by this. Another benefit of requiring a credit card is that you prevent abuse of the trial system. Obviously this applies more to some businesses than others. For instance, we are setting up a VPN business right now and considering a free trial option. In that case, it seems like it would be necessary to require a credit card so that users could not keep signing up for the free trial with different email addresses.

<comment><USER2> You're probably going to have to go a step further; something like Sift Science or MaxMind MinFraud along with automated SMS/voice verification of a unique phone number per trial. There isn't a carder in the world that wouldn't love to use a VPN service that offers free trials. They want the VPN to use as a proxy when testing stolen credit card numbers on other ecommerce sites... and they have _plenty_ of cards to use to sign up for free trials with you first.

<comment><USER3> This is definitely true and something I've experienced running a proxy service with 500+ clients. Fraud percentages are WAY too high right now. We're solving it by simply checking the billing address vs. IP geolocation. Hopefully that helps.

</comment></comment></comment></comment><comment><USER4> Glad to see other companies sharing their experiences with iterating quickly on pricing. Marketing really isn't that different than code.

</comment><comment><USER5> All the images are becoming rate limited by google.

<comment><USER6> Contacted them about fixing the images. In the meantime here's a PDF version with them:

[https://dl.dropboxusercontent.com/u/28/UnSexy- PricingforConv...](https://dl.dropboxusercontent.com/u/28/UnSexy- PricingforConversion-Part1.pdf)

</comment></comment><comment><USER7> This is really useful, thanks for posting!</comment>


Rumor: Apple Building Bluetooth Smart Watch  - <AUTHOR> http://techcrunch.com/2012/12/27/rumor-apple-building-bluetooth-smart-watch/

<comment><USER2> Really now. I understand there might be some small market for "smart watches," but who, honestly, still wears a watch? And who would want to wear a watch that you will (possibly) have to charge daily? This is a watch in name only.

That aside, I can see benefits to connected devices such as this. I'm just not sure I'd call them watches.

<comment><USER3> I'd actually be quite interested in purchasing one of these. To address your points:

 _> Who still wears a watch?_

I do. (I'm young, too.) It's nice to be able to tell time by glancing at your wrist rather than fishing through your pockets for your cell phone. Especially if you're at a meeting that's dragging on—you can surreptitiously glance at a watch without being rude; it's significantly more obvious when you pull out your cell phone.

 _> have to charge daily_

I don't sleep with my watch; I imagine most people don't. I'd honestly much prefer a watch that I throw on a charging stand each night. Finding a damn screwdriver that's the right size and hunting down the correct watch battery (if only they'd all just take CR2032s...) is a huge pain, even if it's only once every few months.

Maybe you're right that they're not watches in the traditional sense. But might as well capitalize on the customer familiarity. It is a device on your wrist that tells time.

<comment><USER2> I wore a watch up until my last year of college (2002-2003). Don't remember why I stopped wearing it (didn't have a cellphone until 2 years later), just that I did. Never once did I have to change batteries "every few months." One of the more advanced watches/stop watches/gizmos I wore lasted six YEARS on one battery. Sure, I didn't sleep with my watch on (at least not intentionally), but the idea of needing to charge it every night? And probably replace it outright after two years because it's a sealed device and the battery can't be replaced? ? That seems wacko.

But I'll admit (slightly off from my first post) there's an obvious market, and that yes - plenty of folks do still wear watches. This whole thing just seems odd.

<comment><USER3> Now that I think about it you're right—it's been every year or two for me. (On a standard Timex Ironman.)

</comment></comment></comment></comment><comment><USER4> I don't see why this suddenly appears to be 'revolutionary' when Sony has had this for a long time?[1] Heck you can even buy an Android powered Sony watch WITH THE SAME DESIGN even now!

[1][http://www.sonymobile.com/gb/products/accessories/smartwatch...](http://www.sonymobile.com/gb/products/accessories/smartwatch/)

<comment><USER5> From the piece: "It won't be revolutionary, per se — many have already entered the smart watch space"

Anyway, I would buy this. I stopped wearing a watch when I got my first cell phone back in the late 90's but recently (last year) started wearing an iPod nano as a watch. I use it for listening to the radio/music during my commute and it's great.

It's also a conversation piece as most people haven't seen anything like it and the idea of a multi-touch interface on a watch blows their minds. The only drawback is a lack of bluetooth connectivity, I yearn for the ability to get data/updates from my phone while it's pocketed or stream music to an external device from my 16gb watch. Also there is no audio output except for the headphone jack which makes timers/alarms pointless unless you always have headphones on.

It's really to bad that nobody has hacked the 6th gen nano as it would be great for home-brew. Something else I want is a "stealth" bootable usb device on my wrist. :o)

</comment></comment><comment><USER6> Spoiler alert, Apple constantly build various prototypes to toss around ideas, most of which never make it past that stage.

</comment><comment><USER7> I have gone the complete opposite direction of the many questioning who wears a watch anymore. Recently I picked up my first automatic, a Seiko of course. I have worn it for about 2 months now, and am about to tear into it. There are a lot of sites that sell after market hands, faces and of course straps. The movement I picked up is well documented and will allow me to get into it without too much problem. There is something magical about a device that requires no power other than being worn. It tells decent time, but loses a few seconds a month. Thats part of the charm of it. Can your GPS Mobile device tell better time? Of course it can. But that isn't really the point. After only two months, I feel quite an attachment to it and actually feel naked without it. I do use it functionally though. A quick flick of the wrist will always be faster than pulling a phone out of the pocket, pushing a button and putting it back in your pocket. There is of course the aesthetic/fashion aspect as well. Currently I have a nice nato strap which has received a ton of compliments. After many years of no watch and relying on PDA's and Smart Phones, I can safely say I am now a watch wearer for life.

</comment><comment><USER8> I also wear a watch in the form of the Nike Fuelband. It sleeps when I'm not actively looking at it, so the battery lasts several days. The clasp is also a USB connector, so it just plugs into my laptop when the battery gets low. 30 minutes later and im good for another few days.

I also frequently get complements on it because it looks like a sleek wristband until the LEDs light up.

I would love to see more wearable accessories go this route and conserve power until I actively look at or wake up the device.

If someone added streaming music or mp3 functionality that could pipe music to a Bluetooth headset, that would be something I would definitely pay money for.

</comment><comment><USER9> I remember the Fossil Write PDA(<http://en.wikipedia.org/wiki/Fossil_Wrist_PDA>)

The charging was a problem, but I couldn't find a killed application or use for it that wasn't covered by a regular watch. The only thing I used it for was a watch!

I think that these products face an existential crisis that asks "what can a watch do better than my Android cellphone?"

</comment><comment><USER10> As they should. This is a sector that has truly suffered for innovation. I've tried to use two or three between a Sony watch to a palm connector watch. Nike has done a pretty cool thing with their sport bracelet, but it fails on Android horribly. At least make an device/app that does a crap load more than track forward motion and time. PLEASE do so.

</comment><comment><USER11> Doesn't seem too likely to me, or at least it would be a fairly significant reversal of Apple's approach to things. It's such a niche market. That's not the kind of space Apple cares to play in it. Where's the opportunity for the kind of mass-market world changing that Apple likes to focus on?

<comment><USER12> I think it depends on what the intended use is. A watch would be a waste of time. But I suspect this device will primarily be used for easily composing and viewing text messages without taking one's phone from one's pocket/purse. I expect texting will soon be the dominant form of communication.

</comment></comment><comment><USER13> If Apple is smart, they will build only the watch face and allow people to install it in any number of 3rd party wristbands ala the iPod Nano. In fact, I would wager that their entrance into this market is a direct response to the popularity of using the 6th Generation iPod Nano as a watch.

</comment><comment><USER14> I actually like the idea of having an smart watch, but the problem I see with the technology is the battery time, I don't really want to be charging my watch every 8 hours, I don't want to charge it at home, and at work. The more you can do with the watch the less it's battery will last.

<comment><USER15> If this is a real thing, I'm sure the watch will be a mostly dumb display that gets "smart" by connecting to your iPhone/iPod/whatever.

Something like an ARM Cortex-M4 hooked up to an OLED screen with a bluetooth radio for talking to the devices that do the real heavy lifting. You wouldn't need to recharge the battery on something like that every 8 hours.

</comment></comment><comment><USER16> "Apple has long had a small hold on the watch market thanks to its iPod nano, which is easily attached to a wrist band turning it into a full-functioning watch."

Err, for small, you mean 'infinitesimal'. I don't think I've seen anyone, ever, wearing a nano as a watch.

</comment><comment><USER17> I remember thinking when the iPhone rumors were swirling that if apple DIDN'T build a phone then they would have to be complete idiots. therefore they were obviously working on a phone.

</comment><comment><USER12> This watch will not be used primarily to tell the time. It will be used primarily to read and compose text messages, possibly with a curved touchscreen for better ergonomics.

<comment><USER18> evn smlr kbrds, lol?

Then again people got used to texting on T9...

</comment></comment><comment><USER19> I foresee a flop.

<comment><USER20> No wireless. Less space than a nomad. Lame.

[http://slashdot.org/story/01/10/23/1816257/apple-releases- ip...](http://slashdot.org/story/01/10/23/1816257/apple-releases-ipod)

</comment></comment><comment><USER21> A smart phone bears little resemblance to a phone and I suspect a smart watch will be similar. There are already a bunch if amateur attempts but one from apple might be big hit, as MP3 players wane in popularity possibly this could be something new for Apple. I'd give it a try..</comment>


Ask HN: Is Dell XPS Developer Edition a Good Replacement of Macbook Pro? - <AUTHOR> Hi, I've been waiting few months for yesterday's MacBook upgrade and I'm dissatisfied, as most of you. I read many comments about alternatives and one of recurring favorite is Dell XPS Developer Edition. Could I ask you about your experience with this model? I'm interested in high-end version (16gb and UltraSharp screen). Is it worth this money (less than Macbook, but still)? I actually want to buy "best machine money can buy", which is powerful (for JVM development, besides personal stuff like movies and web), but still easy to carry-on while traveling. Most of the machines are Windows-oriented, which doesn't fit my workflow and there's a limited choice of laptop fully compatible with Linux. Dell XPS 13 seems like one. Do you have positive experiences with this? Would you recommend it?
I just get rid of normal desktop and use mainly my office machine - heavy, powerful ThinkPad W541 with 32GB ram and i7, but it's plastic and the screen is so-so.
Thanks! <comment><USER3> Yes,

I've been using a Retina MacBook Pro 13" (early 15) and 15" (mid 15) and just picked up the xps 13 9350 with iris pro.

There are definitely some quality control issues but once you get a working model with no faults (I had one that wouldn't reboot and had terrible coil whine, one that had loose trackpad and yellow tint on screen but this could also be because of Amazon's shitty packaging where the laptop was in a box with only some brown paper crumpled in) - atleast they took them back no questions asked. I'm amazed how far windows laptops have come along.

The only real downsides are that it power throttles (and thermal too, but I placed my own aftermarket thermal paste and it doesn't cross 66 C on full load now) due to the iris GPU itself consuming 18W at it's rated turbo boost with the SoC's TDP being 15W (long turbo) and 25W (short turbo). Perhaps go with the i5 model that has the HD 520 or the new 9360 that has kabylake with better thermal and power consumption (HD 620 is roughly similar to HD 540 but won't throttle). You can also use Intel's XTU to undervolt and better battery life and throttling if you're going to use windows.

Linux runs flawlessly, infact so does OS X if you can replace the wifi card. AMA

<comment><USER4> > once you get a working model with no faults (I had one that wouldn't reboot > and had terrible coil whine, one that had loose trackpad and yellow tint on > screen

I never understood how people can deal with multiple rounds of RMAing (or whatever) a defective product and still turn around and recommend it to other people. If a company can't consistently deliver their products intact and functional, why should I waste hours of my time (which effectively increases the price of the product by hundreds of dollars) picking up their mess?

The fact that this is still a thing kinda says to me that PC laptop OEMs still aren't ready to go toe to toe with Apple in the customer experience department, despite the overall improved quality of their offerings.

<comment><USER3> well let's not get into how bad Apple screws customers when it does so. I had the macbook (was it '12?) that had the gpu death issue - apple denied that the issue was a defect until a class action was brought against them; I was out at-least a thousand dollars as I had to toss the unit because apple wanted me to pay for the repairs which cost almost as much as a new unit in my country. Did I mention I faced the same bullshit with iPhone 4? Maybe I was just holding it wrong.

And as I said, `but this could also be because of Amazon's shitty packaging where the laptop was in a box with only some brown paper crumpled in` - I'm not even sure if the issue was because of improper shipping or factory defect. If you're all that worried about wasting your time, go to the nearest retail store and test your unit as you buy it.

I also forgot to mention, I bought the defective models through Amazon Warehouse Deals - so it could very well have been a return due to the said defects.

</comment></comment></comment><comment><USER5> I went with a ThinkPad P50. It's not nearly as bulky as some think. I specked mine with the Xeon processor, and 1080p screen (but 4k is an option). Also specked everything else as low as possible (HDD/SSD, RAM). I upgraded these items myself after. I now have a server grade processor, have put two 512 SSD in it (one M.2 NVMe), and 64GB of RAM. It's a beast. I can also swap out the LCD panel directly for the 4k panel if I so choose with an after-market one later if I so choose. Initial base price was only around $1400 (was on sale), and about $500 for the SSD/RAM on my own dime (would have been well above $1000 on lenovo's site).

So for ~$1900 I have something that blows the MacBook Pro out of the water.

<comment><USER5> P.S. I do own the a 2014 MB Pro as well, so not being ThinkPad bias. Just stating the options and route I chose as a replacement.

</comment></comment><comment><USER6> One gem I found when I was shopping for a laptop is the Dell Inspiron 7559 (part of their "gaming" series). I bought the most expensive $1300 version last winter and it's been great.

\- 4k touchscreen

\- i7 Skylake processor w/ identical stats to that on the $2400 15" macbook pro

\- 16 GB RAM

\- 128 GB SSD + 1 TB HDD (I replaced the HDD with a 500 GB SSD from Amazon)

\- NVIDIA GTX 960m w/ 4 GB GDDR5 RAM

It's sturdily made, I take it everywhere. The only thing I miss from my mac is the trackpad. You can't beat mac trackpads. However, the trackpad on the Inspiron is great, much better than many of the others I've tried. When you take into account it has better graphics acceleration than the $2800 macbook pro, you find that dollar for dollar, it's one of the best value laptops out there. (Seriously, compare it to even Dell's XPS 15, you'd have to pay ~$1650 for an XPS 15 to get comparable specs to the $1300 Inspiron 7559. The Inspiron even has _double_ the graphics card RAM of the $2550 XPS 15!)

<comment><USER7> Wow, those are great specs for 1300. what's battery life like?

<comment><USER6> It's one of those "it depends" answers, but mine lasts around 4-5 hours when:

\- cranked the screen to 80% brightness

\- have two browsers open with multiple tabs (plus YouTube playing in the background)

\- doing development

I'd say it's about average. If you play games the graphics card is going to soak up energy within a couple hours, but for heavy gameplay you'd want to plug it in anyway. I always want more battery life, but it does well enough and has such good specs otherwise that I can't complain.

<comment><USER8> Have you done any tuning with 'powertop'? If not, that can add some non- trivial time to your battery life.

</comment></comment></comment></comment><comment><USER9> I carried a 2013 Dell XPS Developer Edition and a MacBook Air in parallell for a while this year. Note that not all of this necessarily applies to more recent versions of the XPS.

* My XPS has a really awful touchpad. When I first got it, it was definitely my main reservation. I tried a 2014 model and noted that it wasn't much improved.

      * The battery life is much, much worse on the XPS, which is probably the main reason why I find myself reaching for the mac. I've kept Ubuntu 12.04 on it, so Linux power management has likely gotten better but there's still no comparison.

      * other than that, I've loved my XPS. It's super light, has a brilliant keyboard, excellent specs and still works well after three years.

<comment><USER10> Yeah, touchpad is crap if you're used to a Mac. I think the battery life is because the OS config is not optimized.

</comment></comment><comment><USER11> I have had a few models of the XPS 13 now and each one seems to get better and better. They're both light enough to carry around and they are still quite strong, I have seen a lot of them dropped without any damage.

Initially I though I would never use the touch-screen, but it is actually quite useful when reading things (scrolling) or quickly clicking basic things when not really sitting behind the keyboard on a desk. Same for the light in the keyboard, very useful when working at night and on airplanes etc. The screen in general is really really good, some colleagues have the 1920x1080 screen, I would pick the 3200x1800 screen again next time since it's much nicer to read from and allows you to use smaller fonts (= more code on one screen)

Linux support is generally much better than other relatively new notebooks I've had, but still sometimes things break. The Developer Edition is released a bit later than the Windows models, probably to stabilize Linux support. I've only used it with Ubuntu, but I see others use several other distros which seems to work without much issues.

<comment><USER12> Does Linux use the touchscreen?

<comment><USER13> It does on my install of Ubuntu 14.04 LTS

</comment></comment></comment><comment><USER14> My girlfriend recently bought one for her daily driver. We decided to go with Arch Linux to gain access to packages as they release, rather than wait for the next iteration of Ubuntu or Fedora to get updates.

Here are my pros and cons:

Pros:

1\. The hardware is great; the developer edition favors more Linux-compatible hardware (obviously), and for us, it didn't require very much setup. Usually the default configuration will be enough. The touchpad, like the MacBook, has a glass surface and feels excellent.

2\. Like the MacBook, it's very light. The screen looks great, and honestly on Linux I prefer 1080p.

3\. Dell has a very reasonable warranty, and is very quick to respond. Example: You can install whatever Linux distribution you like, replace the SSD (so long as you don't ruin anything while you're there, of course).

Cons:

1\. It's fragile. Unlike the Macbook, you have to be at least (more) careful with this thing. We ended up breaking the screen without much effort; I wager it was the fact that it was in a backpack that got dropped somewhat aggressively.

That being said, we also bought the $60 accident protection, and Dell sent out a technician from a local repair shop to fix it for us within that week. If the technician can't fix it, they will over-night you a shipping box and a FedEx label to send your laptop back in.

Just be careful with it; treat it like the $1000+ machine that it is.

2\. No replacing the RAM. It's soldered onto the board. That's not a problem for me because I barely push ~4GB.

Conclusion: I use a MacBook now; my XPS 13 is actually coming in tomorrow and I'm very excited. I think it's a great machine and a great MacBook replacement, and has excellent Linux compatibility. Dell's customer support is great, just be careful with it; it's not an aluminum body or several layers of glass in front of the screen. Make sure to buy the one with the right amount of RAM so you don't regret it later. If you're worried about storage, there's a $150 500GB M.2 SSD on Amazon, buy the lowest storage version and upgrade it. Get the protection plan. It's cheap compared to the cost of buying a new device.

<comment> vladimir-y I used Arch Linux for a few last years, but recently switched to the Manjaro (Arch Linux based distributive). Manjaro has a little better stability than pure Arch Linux since Manjaro before shipping packages does (I hope) some testing and verifying that core system components are not broken after updating. When you know what to do having you laptop not bootable after system update (not so likely, but it happens), then Arch Linux is for you :)

</comment></comment><comment><USER15> No. I had the Dell XPS 15 9550 and there were several issues.

• Trackpad much worse than on a Mac

• Coil whine

• Bad fan control means it was sometimes noisy in near-idle contitions (though in idle it was very silent)

• there were some flicker issues with the GPU (might have been resolved though)

• one key was bouncy, meaning it sometimes triggered twice

• it woke up from sleep randomly, sometimes while in my bag, often completely emptying the battery

In the beginning it also crashed very often, however this was resolved with an update.

So all in all the quality wasn't on the level of a Mac.

And I wouldn't even start speaking about the OS. If you're used to macOS, it's still such a day and night difference.

Connecting a normal low dpi display to the 9550 with HIDPI display lead to so many annoyances with Windows and all the programs that won't support this for the years to come. I'd barely consider it useful. Although the display itself was quite nice.

<comment><USER16> This I think is the Windows perspective. The Linux perspective (Debian in my case) is somewhat different:

\- Hardware wise the Trackpad is identical in performance to the Mac. All the same gestures are recognised - but the software doesn't use most of them. In fact the software side was terrible until libxinput took over from the old synaptics driver. Now if it works, it works well - but it's still a little lacking on the gesture front.

\- Coil whine should be no different - but I've never heard it.

\- Fan control is perfect, which is weird. Maybe it was old BIOS?

\- Intel's GPU firmware & driver has been a 18 month long cluster fuck. It's the same cluster fuck on Windows and Linux. It _still_ isn't perfect, but it's much better. At the rate they are going, they may get it right 2 years after the initial release of the CPU. Here's hoping. I don't know how Apple could escape this mess. Maybe they knew they couldn't, so escaped it by not upgrading the CPU's for donkey's years.

\- Oddly the wakeup problem happened on Linux too. Once I opened by bag and it was so hot I though I'd destroyed it. The issue has gone now.

\- Linux has the same issues a Windows when it comes to mixing HIDPI and normal displays. In Linux it's a fundamental limitation of X. It can be fixed in Wayland.

One piece of advice: update the BIOS religiously. At least until Intel fixes their Skylake GPU issues.

</comment></comment><comment><USER17> 14" Razer Blade 1060, grab a dbrand matte skin to cover the hideous Razer logo. No problems with Ubuntu 16.10 currently installed. Also have a 13" Dell XPS dev edition used for specific work. It's a nice system as well. The Razer def has more power if you want a full replacement.

<comment><USER18> I'm considering moving from a macbook pro to the blade and adding the core to get a beefed up desktop experience with the ability to unplug and take work anywhere it needs to go. I'm assuming I would need to stay in windows land with linux via Hyper-V. Besides iMessage, all my apps run on linux (more-so) or windows (less-so). Any thoughts?

<comment><USER17> The only loss i've felt so far is my documents that were written / design in pages & keynote. Still have a older mac around to handle them. Otherwise i'm back to Windows 10 fT with the Hyper-V bash and docker. So far so good (going on a month now).

</comment></comment></comment><comment><USER19> I have a new XPS 13. It's impeccably built, you can use it comfortably on an airplane, and it runs Linux with no issues. But I wouldn't use it for daily development. The 13 inch screen just doesn't have enough real estate, and it often feels like it's struggling to drive the 4k screen whenever I try to switch applications.

If you don't mind something heavy, check out the new Thinkpad P50 or P70. They have actual desktop-level performance, terrific screens (matte, color corrected 4k IPS!) and the new NVMe SSDs. I do most of my daily development on a P70, and increasingly just lug it along when I travel even though travel was the reason I bought the XPS 13.

<comment><USER20> I don't own a P50 or P70, but one complaint I would have is that having a numpad on laptop ends up putting your hands in an awkward position. I almost never use the numpad anymore since I can touch-type on the number row and my main laptop (a Mac) doesn't have one.

</comment></comment><comment><USER21> The XPS 13 was recently upgraded to Kaby Lake, so if you're fine with the smaller display, I'd say go for it, I've heard great things.

Also, do realize that the UltraSharp model will have a significant impact on battery life. The comments I've looked at for the XPS 15 9550 (4K display) say that the battery life is basically halved, but it's supposedly still around 4.5 hours of battery life.

If you prefer the 15-inch, you might want to wait for a while - they still only feature Skylake CPUs and I think an upgrade is imminent (given the recent XPS 13 upgrade and all.)

I don't have any personal experience with the machines, but I'm planning to buy the XPS 15 once it gets an upgrade.

<comment><USER22> Confirmed on the battery life. With Linux on my Dell XPS 13 9343 QHD+ version, even running tlp and powertop, I'm lucky if I get more than 6 hours. If I do music streaming or any kind of video, it plummets to 4.

</comment></comment><comment><USER23> I'd love to see some real competition with macbooks but I haven't seen anything close yet... Alternatives do exist but they are still very expensive... I mean really, they are bloody expensive. When I'm thinking about putting this kind of money on the table, I just go to apple store, no?

Why on earth there's no startup which just puts together linux laptops? I'm sure you can grab Chinese/Taiwanese/Korean whitelabelish product customised with linux friendly peripherals or just put the box together yourself with engraved penguins here and there. Half of devs would love it, another half would hate it - but that should be enough to survive, no?

<comment><USER24> > Why on earth there's no startup which just puts together linux laptops?

Do System76 or ZaReason count? They even have non-Windows super keys. (Ubuntu logo or Tux, respectively)

I have no experience with their laptops, but I have a System76 desktop, and have no complaints.

<comment><USER25> Woah, I'd not heard of System76 - the specs on that Oryx Pro are jaw dropping!! I wonder how well it would do as a hackintosh...

</comment></comment></comment><comment><USER26> Consider the outgoing Macbook Pros. You can probably get a good deal on one.

<comment><USER27> They are still being sold, much like the previous one.

<comment><AUTHOR> This is a buy I consider, but since I decide to get new computer once in five years, I would like to choose best option.

<comment><USER27> For the next 5 years, I'd wait until the 32GB option appears. It'll probably be a very minor manufacturing process change that'll most likely come with slightly better processors. If the current support for the previous-gen model is any indication, the new ones will be supported for a very long time - <USER2> previous-gen 13-inch was sold from 2008 up until this week.

</comment></comment></comment></comment><comment><USER28> I personally prefer the XPS 15 for the quad-core CPU and discrete graphics, but it looks like getting it to play well with linux could take some work, and there might still be some issues: [https://ubuntuforums.org/showthread.php?t=2317843](https://ubuntuforums.org/showthread.php?t=2317843).

Out of curiosity, what has you disappointed with Apple's new laptops?

</comment><comment><USER29> I had a laptop from System76 at my previous job, which runs Ubuntu: [https://system76.com/laptops](https://system76.com/laptops)

I liked it, but I didn't travel with it so not sure how carry-able it is. Current shop is Mac oriented but I would have gotten another one if it had been up to me.

</comment><comment><USER30> Quite interesting that no one has mentioned the Microsoft Surface Book here. Anybody has any thoughts on it?

<comment><USER31> That's where I am headed.

I bought a Surface Pro 3 to play around with and to use for my one .NET project. I loved it, but I gave it to my assistant b/c I didn't really want to use two computers.

Well, time to buy a new computer and I think I am going to ditch my MacBook Pro and switch to a maxed out Surface Book. I'll keep the MBP around in case I need to do any iOS dev.

I am hoping that the Linux on Windows 10 stuff will make the terminal feel familiar enough.

</comment></comment><comment><USER32> Question for the iOS developers on the thread thinking about switching (or have already switched) away from macs as you dev machine. How do you plan on continuing to do iPhone/iWatch/iPad dev given apple's requirement to use their hardware?

</comment><comment><USER33> Unfortunately XPS Developer Edition does not support external 4k displays @ 60Mhz like Dell's own P2715Q. If that kind of thing matters to you.

Otherwise I think it a great machine.

<comment><USER34> I think people are talking new gen XPS here right? Think all of them have supported 4k external @60hz as they have nothing older than broadwell.

I'm sitting here now with a gen1 xps 13 2015 pushing a 4k monitor at 4k 60hz.

My xps 15 in work also supports 4k @60hz although needs an annoying usb-c to displayport dongle.

</comment></comment><comment><USER35> Best developer laptop is a Dell Precision 5510. Up to 32GB ram, thinner and lighter than a Macbook, SSD that does >1.5GB/sec, and has a docking station.

<comment><USER36> Half of my my company i.e. ~2000 developers and ~2000 other associates switched to the dell 5510(dell xps 15) this year and its absolutely amazing. Its carbon fiber !!!! 32GB ram, 512 SSD. Amazing edge to edge display. So far the best trackpad (after apple) with gesture controls. Superb laptop! Definitely a MBP replacement. I am not a big Windows fan but with the recent windows 10 update i am warming up to it. I hope Microsoft will soon support Linux completely within windows.

I wish there was a well funded linux operating system like the macOS or whatever so that we all could switch over from MBPs. Apple has been mocking us for the past few years with its lame products and specs and extremely high prices.

</comment></comment><comment><USER37> XPS 13 is well worth it. Its only downside is the webcam looking up your nose. It's lighter than a macbook pro and is about as sturdy.

</comment><comment><USER38> I have one for the work. It is absolutely wonderful. I am currently using Ubuntu 16.04.1, and I feel it lightweight and performant. The battery lasts about 9 and a half hours (doing web browsing and light programming).

I suppose that the thing will only improve with future Ubuntu Hardware Enablement Stacks that include new kernels and so...

</comment><comment><USER39> Be warned that the current XPS 13 is kaby lake and has a rather slow (non- IRIS) gpu. 3200x1800 is quite a few pixels and the built in GPU is pretty weak.

Might want to consider the skylake version, sure it's the previous generation, but the CPU perf is pretty similar, and the Iris 540 is a significant GPU upgrade. Not a nvidia/ati killer by any means, but much better than the normal intel integrated graphics.

Either that or way for similar to ship in it's kaby lake incarnation.

Also keep in mind that the "upgraded" 3200x1800 screen about halves the battery life and is reflective. Not really worth it for me (at least in a 13" screen).

Sadly you can't get more ram or an i7 with the 1080P (they called it FHD) screen.

<comment><USER40> It might sound vain, but all I really want is the Rose Gold on a non-touch...

</comment></comment><comment><USER41> I have xps 9550 FHD with 512GB SSD and 16GB RAM. I installed Ubuntu gnome 16.10. Everything worked out if the box. I even played steam games on Linux (like firewatch). I get around 6 hours of Rails and Ember development.

I think it's really good machine.

</comment><comment><USER42> Same boat here, although I'm a bit worried about the downsize from 15" to 13". Perhaps with a docking station, it might not be so bad. But hopefully dell jumps on this opportunity to make a 15" developer edition

</comment><comment><USER43> I got a Dell XPS 15, the 9550 edition. Before purchasing I was scared of the bad stability reviews it had when it was release. However Dell treats it with updated drivers regularly, and with latest drivers it works great. It can even handle 3D shooter without thermal throtteling etc. I use it as a developer machine with Windows 10.

Just be careful with the Dell Thunderbold 3 TB15 dock (not sold any more I think). I got one, and with the latest drivers it works, but has some quirks. Also be careful to sort out complaints about the XPS in the net: may have problems using the dock, not with the laptop itself.

And the touchpad is great by the way.

</comment><comment><USER44> Looks like they come with Ubuntu...is that bog-standard Ubuntu, or does it have custom drivers for things like the touch screen? (Basically, I would be curious whether it's easily replaced by another distribution.)

<comment><USER45> It's regular Ubuntu, I believe. You can install whatever distro you want, but Ubuntu is guaranteed by Dell to be fully supported. I installed Arch on mine with no issues.

</comment></comment><comment><USER46> It is a beautiful machine but I want to voice my experience having tried on the XPS 13 for size:

[https://medium.com/@securitystreak/buying-a-professional- pen...](https://medium.com/@securitystreak/buying-a-professional-penetration- testing-laptop-for-2017-6cd21e65dc2)

Granted I owned the older 9343 model but despite the many BIOS updates (and several Linux distros) my laptop kept up phantom right clicks and cursor jumps - very annoying! No issue with Windows 10 though.

I sold it onward and happy with the real-estate 15" provides me once more.

</comment><comment><USER47> Sounds like everyone below is saying the XPS is great, with exceptions of the battery life, build quality, trackpad, and webcam. So you're probably better off buying the now last gen MBP.

<comment><USER48> And still paying a premium price for a 3 year-old specs laptop. If money wasn't an issue people would just but the 4300$ mbp

</comment></comment><comment><USER49> I'm on my fourth motherboard for a year-old Dell XPS 13. They've released a new model since then, but the experience was pretty awful. Each failure is hours down the drain dealing with tech support and a hard drive wipe. The overall experience of using it as your primary computer is made painful by the inability to depend on it working.

The warranty just ended, so unless they finally fixed it for good, the machine may have been a waste of a thousand dollars. I'm crossing my fingers and hoping it keeps working.

</comment><comment><USER50> I recently got a Dell Latitude 12 7000 Series for $work and I was surprised by how good it is:

\- Plays 4k video under Windows 10

\- Runs Arch linux without any hardware compatibility problems

\- Silent, portable, fast (pick all three)

It sounds like an advert but this was a machine I didn't pick myself and it is the best computer I have ever used. The next time I spend money on my own laptop I will move from Thinkpad to Dell. This is after using Linux on Thinkpads for the last 13 years or so.

I thought this was worth mentioning as the Latitude is probably a bit cheaper than the XPS.

</comment><comment><USER51> I don't know about the developer edition specifically, but I just had a XPS13 (with a skylake processor, so not what's available on the store right now) with stock Windows 10 pro on my desk, and debian stable installed just fine except for the wireless card (which is the only network interface on the machine). It wasn't mine to play with so I didn't try to figure that out but whatever version of KDE that gets installed with Debian 8.6(?) seems to be 99% of the way there.

<comment><USER51> I _really_ liked the physical feel of the trackpad. It'll be a sad day when that rubberized cover gets nicked. The KDE system setup couldn't set the trackpad up for taps instead of clicks but I didn't spend a whole lot of time with it. ISTR that kernel 4.4 had wireless NIC drivers but I didn't have time for that.

</comment></comment><comment><USER52> In a similar boat. The closest machine to the Macbook Pro is the razer blade stealth.

[http://www.techradar.com/reviews/razer-blade- stealth-2016](http://www.techradar.com/reviews/razer-blade-stealth-2016)

It's basically a rip-off of the (2015) macbook machined aluminium body design. It has the 7th gen processors rather than than the 6th of the new macbook, and a similar price.

Not sure about linux support, from what I've read there may be an issue with the webcam.

<comment><USER53> I'd say Stealth is more compatible with Macbook Air. The dual-core processor is really the only thing that stops me from picking one up.

</comment></comment><comment><USER54> I had the first gen XPS 13 and while it was a beautiful machine it ran extremely hot at time. So much so that I couldn't use it while on my lap. I'm not sure if the deciding has changed much since then but it's worth taking into consideration.

I ultimately went with a retina MBP (early 2015). My next laptop is likely to be either a Lenovo T460 or a Dell P50 (or their successors).

<comment><USER12> Dell P50?

</comment></comment><comment><USER12> The nice thing about an OSX machine is that it (legally) runs more software than any other operating system.

It sounds like the software you need is available on all three operating systems, so the Dell machine is a fine choice.

I'm assuming that the movies you want to watch are rips or Netflix and not something like UltraViolet streams.

</comment><comment><USER55> I've got a Dell Precision 5510 with Ubuntu. I've been very happy with it. My only major grievance was the slightly slow graphics drivers, but it's not like I'm gaming on the thing.

I got some very good - and upgradable - hardware at a good price with an extended battery. Good call, would buy again.

</comment><comment><USER56> If you go for XPS then really be careful about coil-like noise (google for "dell xps coil whine forum"). Dell doesn't consider this to be a fault - it's "normal" from their point of view. And for you such coil whine could be like chinese water torture - constant pain.

</comment><comment><USER57> I have one, and love it, but I have used Linux for the past 20 years and am not about to switch any time soon.

</comment><comment><USER58> Give Razer blade a shot [http://www.razerzone.com/gaming-systems/razer- blade](http://www.razerzone.com/gaming-systems/razer-blade)

I do think XPS keyboard is little off, I use Thinkpad T440s with ArchLinux.

</comment><comment><USER59> ASUS Zenbook Pro UX501VW

[https://marclewis.com/2016/04/25/installing- ubuntu-16-04-lts...](https://marclewis.com/2016/04/25/installing- ubuntu-16-04-lts-on-asus-zenbook-ux501vw/)

</comment><comment><USER10> The quality control concerns in the comments mirror my experiences. I would not buy one. I would still rather get the new MBP with function keys vs. the Dell XPS Developer Edition.

</comment><comment><USER60> Linux users on the xps13/15, with synaptic you typically can't rest your thumb in the corner of a touchpad while using it. Do you have this issue or any work arounds?

</comment><comment><USER61> Thinkpad X1

<comment><USER23> Can you replace this windows key with a pingwin? I'd buy it but I can't look at windows logo so many times a day (yes, it is really a problem for me).

</comment></comment><comment><USER62> I have been using an XPS 13 9350 for around 6 months now, coming from an 13" 2015 MacBook Pro. I picked up a basic FHD core i5 model with 8GB of RAM on sale, replaced the WiFi chip with an Intel 8260NGW and replaced the 128GB SSD with a 256GB Samsung 950 Pro NVMe. All said and done, I spent less than $1,000.

Ubuntu 16.04: Pretty much works flawlessly as long as you have Intel WiFi- I had some issues with a flashing screen at first but they all seem to have been resolved using `apt-get upgrade`. Suspend/resume, audio controls, and brightness controls all work fine. I run docker images for pretty much everything and it's great to have native docker without a VM involved.

Physical Characteristics: It is very light and easy to use on the lap, on the couch, or in bed. It feels more like a MacBook Air than a MacBook Pro. Fans are on the bottom but they don't really spin up that much, even when I don't have anything under it.

Keyboard and Touchpad: Keyboard is fine. Touchpad is a lot smaller and more "clicky" than a MacBook Pro. The force touch on the MacBook Pro is way better (it's pretty much the gold standard of touchpads).

Screen: I have the FHD screen because I don't care about touch, and it is Matte (the QHD+ touchscreen is glossy). DPI scaling in Ubuntu 16.04 is hit or miss. In my experience, some apps, like Chrome, only respect DPI Scaling if it's in multiples of 0.5 Other apps, like Firefox only respect DPI scaling if it's an even number. JetBrains products do a good job of respecting DPI scaling though. I keep it at 1x DPI scaling, so everything looks pretty small at 1920x1080. If you go with the QHD+ touchscreen, native resolution is 3200x1800 so 2x DPI scaling will be an effective resolution of 1600x900, and it will look great. I think most apps should work fine at 2x DPI scaling.

Webcam: The webcam location really is stupid. I dislike video chatting on this computer so much I'd rather use my phone. I use Android and kind of miss iMessage and FaceTime from the mac (it's how I would talk to some Apple friends), but whatever.

Other Thoughts: Linux FTW. IMO, the last good release of OS X was 10.6.8. Everything after that either changed the scrolling direction or added some sort of bloat to the OS. I'd run 10.6.8 still if I could. Ubuntu 16.04 feels like getting your life back. It's super quick, you can use apt-get to install dev tools instead of hacking around with homebrew, you get the real version of `sed`, and you don't feel like Apple controls your life anymore. Gotta say it twice- native Docker support and no messing around with VMs anymore!

Take the leap of faith and get the XPS 13. Or a Lenovo with good linux support. Part of me wants to try out the big ass trackpad on the new MacBook Pro but none of me wants to go back to paying $2k every time I want to upgrade my laptop.

</comment><comment><USER63> I recommend carbon 3rd gen

<comment><USER64> Seconded. I have this running xubuntu and all is fine with the world.

My only complaint is the limited ram.

<comment><USER23> Apparently there are a lot of complains on quality, as in "quality control" before shipping to people doesn't exist, if you are lucky, you're fine, if not, you'll need to return, is that true?

<comment><USER64> Could be true. I had no problem with mine.

</comment></comment></comment></comment><comment><USER65> Does it run macOS? No? In which case no its not a good replacement for a MacBook Pro.</comment>


Ask HN: What are the things/informations that you cannot find on internet? - <AUTHOR> <comment><USER2> Information on local small businesses. The thing that immediately comes to mind is menus, store hours, etc. Just today I had to call to find out if a restaurant took reservations.

</comment><comment><USER3> All those things on the edge that are actually the difference between success and failure, that wouldn't be so if everyone knew about them ...

</comment><comment><USER4> Government information about legislation in preparation process

All proprietary know how, guidelines howto, real world experiences with solutions, approaches, process...what doesnt work at all and what is working fine and why.

</comment><comment><USER5> In depth explanations of many topics are only available in books.

</comment><comment><USER6> Information/data about our daily lives. More and more is being attempted to be collected, but the vast majority still is not.

</comment><comment><USER7> A meta point is a configureable search engine.

</comment><comment><USER8> Answers to unanswered questions</comment>


Show HN: SquawkBox: Viral Avian Marketing - <AUTHOR> http://squawkbox.io/ <comment><USER2> "Viral" and "Avian" don't go well together -___-

</comment><comment><USER3> All I want to know with my marketing budget is whats the CPM?

Cost Per Macaw

</comment><comment><USER4> This is a prank right?

</comment><comment><USER5> But, can they carry coconuts as well?

</comment><comment><USER6> It's a BUBBLE! :)</comment>


Ask HN: Who needs help with your open-source project? - <AUTHOR> While looking for a project to contribute to, I thought about creating a thread similar to "Who is hiring?" but for requests for help from open source projects.
So, if you are part of an open-source project looking for contributors, please post below.
A suggestion for the post format...
Name of the project:
Site/repo link:
Tech/languages:
Expected level of proficiency in the stack: ("novice", "intermediate", "advanced", or "expert")
Help needed:
Best way to contribute:
Preferred form of contact: <comment><USER2> Name of the project: Project Gemstone (Placeholder)

Elevator pitch: Another Linux distribution built from scratch. However I would like it to be a testing ground for technologies from other distros and put them into a more DevOpsy and server / embedded focused distribution. Think of Clear OS, CoreOS (Pre-RH purchase), Alpine Linux, and NixOS / GUIX.

Site/repo link: [https://github.com/project- gemstone](https://github.com/project-gemstone)

Note: It's somewhat bare, there has been few commits lately as I've been working on a new bootstrapping process to get a running system in a private repo. (If you have indepth knowledge of cross compile toolchains that would be a big help!)

Tech/languages: shell / bash, make, C, Go

Expected level of proficiency in the stack: intermediate to expert

Help needed: More than anything I would like some interested parties who are interested in creating a linux system from scratch in different architectures and like the idea of being apart of a project that's creating a new distro.

Best way to contribute: Docs to code or issues relating to bootstrapping.

Preferred form of contact: firstname.lastname@example.com</comment>


Read Steve Jobs' emails about why you can't buy digital books in Amazon's apps - <AUTHOR> https://www.theverge.com/2020/7/30/21348130/apple-documents-steve-jobs-email-books-amazon-apps-antitrust-investigation-schiller#comments <comment><USER2> The last email definitely feels like Steve was not happy with how Amazon depicted the ease to use of Android (via cross platform accessibility of Kindle) over Apple's iOS.</comment>


Cross-platform email client with React and CoffeeScript - <AUTHOR> https://medium.com/missive-app/our-dirty-little-secret-cross-platform-email-client-with-nothing-but-html-aa12fc33bb02 <comment><USER2> So the headline is wrong, right? It's not just HTML. It's HTML + CSS + JavaScript.

<comment><USER3> With a massively bloated run-time for the desktop edition (i.e., Electron).

</comment></comment><comment><USER4> > You'd be surprised (I was!) at how much memory leak your JavaScript has if > you don't monitor it.

What are the most recommended ways to monitor for leaks in client-side javascript?

<comment><USER5> You can log memory usage in some browsers but the memory usage is bucketed so you will not get a fine grained number. At Asana, we look at the 99th percentile and then use Chrome to take heap dumps.

</comment></comment><comment><USER6> So, another electron app for Desktop? I've heard anecdotal comments on HN about how electron based apps frequently hog resources and such an overkill as a replacement for native apps. Anybody know of a dumb cross platform wrapper that does just enough HTML/JS for apps like this to work without the bloat?

<comment><USER7> The Telegram client is a good example of how to do this right [0].

You can acheive this in python w/ pyQt/pySide as well... just include a QWebView and hook into the javascript [1].

Avoiding the whole server & network stack makes things run obviously lighter.

[0] [https://github.com/telegramdesktop/tdesktop](https://github.com/telegramdesktop/tdesktop)

[1] [https://stackoverflow.com/questions/6447011/pyqt-pyside- webk...](https://stackoverflow.com/questions/6447011/pyqt-pyside-webkit-and- exposing-methods-from-to-javascript)

<comment><USER8> I believe QWebView w/ QtWebKit was deprecated in favor of QWebEngine which is Chromium thereby causing the same problems as Electron (bulky, multi-process which is the way of the browser these days). Granted QtWebKit appears to be maintained in a fork at [0].

If someone wanted to use Chrome, a more bare-bones approach w/ Qt might be CEF. An example in Python is here [1].

0 - [https://github.com/annulen/webkit](https://github.com/annulen/webkit) (see the wiki) 1 - [https://github.com/cztomczak/cefpython/blob/master/examples/...](https://github.com/cztomczak/cefpython/blob/master/examples/qt.py)

</comment></comment></comment><comment><USER9> Only use a framework if you know what you need!</comment>


Human-shaped pylons carry electricity across Iceland - <AUTHOR> http://www.wired.co.uk/news/archive/2010-08/16/human-pylons

<comment><USER2> Important bit:

> _An architecture and design firm called Choi+Shine has submitted a design > for the Icelandic High-Voltage Electrical Pylon International Design > Competition which proposes giant human-shaped pylons carrying electricity > cables across the country's landscape._

Meaning the title should be closer to "Human-shaped pylons _could_ carry electricity across Iceland". Though given all the press lately, and how much I like the idea, I really hope they do build them. It's something unique that'll last for a long time; there should be more of that in the world.

<comment><USER3> Isn't Iceland broke?

<comment><USER4> Iceland is a net energy producer. That means they will never be broke. They just happen to owe certain countries a few billion bucks which they may or may not pay back.

<comment><USER5> Why can you never be broke if you produce energy?

<comment><USER6> 1) You have a free source of money, so you can pay off all your debts with time

2) You will probably always have someone by the balls

<comment><USER7> Eh??? By that account everyone should be able to pay off all their debts.

It's not enough to have a "renewable" source of income (such as tourism, moderate farming/fishing, solar energy, etc...). Everyone, including countries, also have bills to pay. And if you have a debt you also have to pay the interest on your debts.

As long as the money they make from this renewable energy source is less than what they need to pay for their bills (e.g to import food) plus the interest in their debt, they are still losing money.

<comment><USER8> In a fractional reserve banking system there is never enough money to pay all the debts. And with a debt based currency, the money is the debt. It's impossible to pay back all the debt.

<comment><USER5> What do monetary fictions have to do with real things?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Prediction: Icelandic children will have recurring nightmares about robot invasions.

I do like the idea of artistic designs of mundane structures. In Portland they decided to combat graffiti and vandalism on bus stops by sandblasting motifs into the glass: <http://trimet.org/publicart/busshelters.htm>

<comment><USER10> > graffiti and vandalism on bus stops by sandblasting motifs into the glass: > <http://trimet.org/publicart/busshelters.htm>

That addresses the consequences of a problem and not the root causes. It is important to stop the cause of petty vandalism.

I can take a bet that if most countries had corporal punishment and applied it readily and liberally to vandalism cases, both vandalism and other offenses would be stopped.

In the west people continue to do crimes (and let off) until they do a major crime (when it is too late to change entrenched behaviour).

<comment> b-man _I can take a bet that if most countries had corporal punishment and applied it readily and liberally to vandalism cases, both vandalism and other offenses would be stopped._ [citation needed]

<comment><USER11> <http://en.wikipedia.org/wiki/Crime_in_Singapore>

<http://en.wikipedia.org/wiki/Caning_in_Singapore>

<comment> b-man The thing about references is that they should demonstrate or negate the connection or affirmation that was presented.

I fail to see that in these links. I think a more appropriate set of citations would be:

 _basic research_

<http://www.religioustolerance.org/spanking_menu.htm>

 _against corporal punishment as an educative method_

<http://www.apa.org/about/governance/council/policy/corporal-> punishment.aspx

<http://www.nospank.net/vcb.htm>

<http://www.religioustolerance.org/spankin4.htm>

<http://www.religioustolerance.org/spankin29.htm>

 _for corporal punishment as an educative method_

<http://www.corpun.com/ukju9803.htm>

<http://www.corpun.com/10archive/ukd01001.htm#21929>

I personally find a lack of serious psychological research that finds correlation between corporal punishment and increase of quality of life in the society where it is practiced. That observation makes me believe that this practice should be abolished, or severely restricted at least.

<comment><USER10> Firstly, a lot of studies (esp. in the USA) shows that corporal punishment have negative outcomes. This is because they do not control for other variables (such as socio-economic circumstances). Poorer parents often hit their kids more (and many studies do make a distinction between parental abuse and responsible punishment).

This is the same as the "powerlines causes cancer" research (people living near powerlines tend to be poorer and more prone to cancer). And powerlines is not even an ideological viewpoint!

The problem is that I can give you a slew of papers saying that "corporal punishment has no detrimental effects" and you can give me another slew saying it has detrimental effects. Such internet discussions will not go anywhere (the same as with the death penalty or gun rights). Perhaps I was wrong to bring this up in YCNews (since this is not the forum for such debates).

In any case, in the country of Singapore they have less crime and fewer problems that 99% of Western countries. Yet they have very strict laws (including corporal and capital punishment for drug offences).

EDIT: The original point I wanted to make was this:

In the USA, tough punishment only comes after the criminal has firmly established his bad behaviour. Any pet owner knows that at that stage it is the most difficult to change set behaviour.

You have silly things such as three strikes laws. Why? The third time that behaviour is fixed.

If that same person were punished severely for his first crime (however minor) he would think twice about breaking the law.

That is how it works in Singapore - the first crime is punished hard, and the behaviour doesn't re-occur.

<comment><USER12> > capital punishment for drug offences ...

> the first crime is punished hard, and the behaviour doesn't re-occur.

Of course it "doesn't re-occur" -- the person is already dead the second time around ;-)

<comment><USER10> How many lives do you think one drug dealer ruin before they are caught?

<comment><USER13> How many lives would he ruin if drugs were not illegal?

<comment><USER10> Making drugs legal (contrary to popular internet belief) does not make them less addictive or less harmful.

<comment><USER14> It absolutely makes them less harmful because the government will no longer harm you.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I love this idea. Most of the time I prefer function over form, but this is just awesome. Choi+Shine added: "Like the statues of Easter Island, it is envisioned that these one hundred and fifty foot tall, modern caryatids will take on a quiet authority, belonging to their landscape yet serving the people, silently transporting electricity across all terrain, day and night, sunshine or snow."

<comment><USER16> The choice doesn't have to be form over function, or the reverse.

I think we can agree both tasks are handled nicely.

Also amusing, a story on electricity delivery, in "Wired".

<comment><USER17> I agree, don't dismiss design lightly.

I learned from industrial designers at Black & Decker that form can enhance and suggest function.

Just changing the shape of a cordless vacuum cleaner changed peoples impression from "This is a shitty, low-powered vacuum cleaner" to "This is a terrific powered dustpan"

[http://www.blackanddecker.com/dustbuster/dustbuster_innovati...](http://www.blackanddecker.com/dustbuster/dustbuster_innovation/default.aspx)

Just changing the outside shape - with no change in product specs. - made the DustBuster into one of the highest selling Black & Decker products ever.

</comment></comment></comment><comment><USER18> With a design like this -- Iceland, you must construct additional pylons.

<comment><USER19> How is it you actually have the non-gaming free time to make the reference?

Since they are variable, they should make ones modeled after Tricia Helfer and Grace Park. Cylon Pylons!

<comment><USER18> I don't play a lot of SC now. Got it out of my system in college.

<comment><USER19> Yes, but SC2 came out!

</comment></comment></comment></comment><comment><USER20> I do like the idea. They've taken something ordinary and thought beyond the conventional interpretation. Looking at those images, though, I did have the strange anthropomorphic concern that their arms would get tired. Couldn't they hold the cables on their shoulders?

<comment><USER21> Frost Giants do _not_ get tired, puny mortal! Bring on Ragnarok!

<comment> mkr-hn They might melt from all the heat those lines put off though.

<comment><USER21> That'd be a prank worthy of Loki himself :-D

</comment></comment></comment></comment><comment><USER22> The title should be "to carry", it's just a design proposal not yet implemented.

</comment><comment><USER23> I never quite understood our culture's instinctual response to cover up or mask the infrastructure that surrounds us. There's something serene about a wind farm. It's function _over_ form, not function _or_ form. Compare this design proposal to the phone towers that litter the landscape (pathetically) disguised to look like trees.

<comment><USER24> I must disagree; these designs do not appear to be pathetic disguises in the least. They are instead celebrations of the existing design, enhanced to resemble a powerful symbol in a meaningful way.

<comment><USER23> Just to clarify, I thought the manner in which _phone towers_ were masked as trees was pathetic (or at least in the manner in which it was implemented), not the pylons proposal. I thought the design team hit a home run on the later. I have yet to see any phone tower made to look like a tree inspiring.

<comment><USER25> Perhaps they should make cell towers look like a giant with a cellphone to his ear?

</comment></comment></comment></comment><comment><USER26> It's a neat idea, but I wonder how practical this is from a build/serviceability perspective. They say they are only "minor alterations" from standard designs, but each one of the towers looks unique (I'd guess they have 6 or 8 total "poses"). But I'd also think there is a lot of value when all the towers have the _same_ design in terms of service and maintenance. These must undergo regular inspections to ensure that no load-bearing components have been compromised.

<comment><USER21> All the components, e.g. struts and joints, can be interchangeable, just arranged differently in each one. You would never need to keep complete pylons in stock for each design.

<comment><USER26> Sorry, I wasn't commenting about the inventory, I was thinking more along the the lines of creating simple maintenance plans for each arrangement. Keep in mind that the average utility field service worker is often kept most efficient by minimizing the number of variations of any given task.

</comment></comment></comment><comment><USER27> Will it include a YMCA combo?

</comment><comment><USER28> I immediately thought of this pole near Disney World:

<http://www.panoramio.com/photo/32142193>

</comment><comment><USER29> I agree, we do need to construct more pylons... like this.

<comment><USER19> Need to construct more cylons... like this:

[http://unrealitymag.com/wp-content/uploads/2009/10/maxim- bat...](http://unrealitymag.com/wp-content/uploads/2009/10/maxim- battlestar.jpg)

</comment></comment><comment><USER30> It reminds one of that odd chapter on pylons from de Botton in "The Pleasures and Sorrows of Work" where he mentions the "coquettish sexuality" of Finnish pylons.

[http://books.google.com/books?id=SslgkiNvZ9wC&lpg=PA199&...](http://books.google.com/books?id=SslgkiNvZ9wC&lpg=PA199&ots=GdMkANQjuq&dq=%22de%20botton%22%20pylons%20korea&pg=PA199#v=onepage&q&f=false)

</comment><comment><USER31> Here's a competing design from a different firm: [http://www.dezeen.com/2009/03/30/high-voltage- transmisison-l...](http://www.dezeen.com/2009/03/30/high-voltage-transmisison- line-towers-by-arphenotype/)

At least, I assume it's for the same competition, as it's over a year old.

</comment><comment><USER32> What is awesome to me is how, presumably surviving the millenia, these will look to generations hundreds or thousands of years later. Will this be our own "Stonehenge?" How long will people someday puzzle over the purpose of these things?

Pretty awesome stuff.

<comment><USER33> I doubt these pylons will last longer than society's memory ...

<comment><USER34> 'When' the bombs fall they likely wont be targeted at remote areas of Iceland, some could pretty easily survive. After that they could probably survive at least long enough for some kids to gossip - "I heard _those things_ blew it all up!"

</comment></comment></comment><comment><USER35> If they do this, I would go back to Iceland to see this. So from the tourist point of view... success!

</comment><comment><USER36> Very cool, but can Iceland afford it? Last time I checked their currency nearly collapsed.

<comment><USER37> Good lord don't do it again then! More seriously, yes Iceland does still have enough money and borrowing capability to keep the infrastructure going. They're not all on the streets.

</comment></comment><comment><USER38> This is a really bad idea. All it takes is one ice storm and those things will fall: [http://en.wikipedia.org/wiki/North_American_ice_storm_of_199...](http://en.wikipedia.org/wiki/North_American_ice_storm_of_1998)

<comment><USER34> There's a picture right at the top of the page of a crappy wooden one still standing...

</comment></comment><comment><USER39> About one year ago the country of Sweden began digging down the country's entire electrical infrastructure underground, completely ridding the country of the archaic terrestrial power pylon model. The country was done with digging down all urban cabling more than 40 years ago, and free-hanging power cabling has since only been seen outside urban areas across rural stretches, connecting smaller communities to the grid. What called for the decision was the problem of power outtages caused by storms wreaking havoc on the pylons and the wires, causing civil dismay in the affected areas, as well as the tremendous civilian and commercial costs that follow up. However cool that humanoid design is, I think Iceland should've gone with Sweden's model instead of reinventing the pylon :)

<comment><USER40> In Montreal there are a lot of buried cables. I worked in a research facility for the only power company around and they pointed out several problems for this method. It costs a fortune so its not really applicable for very long distances. Also, whenever there is a failure you have to reel a few kilometers of cables, fix them and rewire everything in a tube full of mud, water and who knows what. During autumn the water in the tube freezes and expands causing stress and fissures.

It was discussed extensively since we had a massive power outage in 1998 caused by icing rain that affected about 3 millions for 3 weeks.

So burying cables might work well in a city for a while but I really don't think its any silver bullet.

<comment><USER39> It has worked great inside their cities for almost 50 years - as my post clearly stated, the urban electrical infrastructure of Sweden has been entirely underground since the 60s. The ongoing change is replacing the _pylons spanning the country_ with underground cabling. I'm pretty confident they know what they're doing. Not all underground solutions have to be the same, but by nature, the pylon model is always vulnerable, and it always suffers the same risks.

</comment></comment></comment><comment><USER41> I hope they go ahead and build these, they look awesome.</comment>


Blockchain Router. What other features to add? - <AUTHOR> https://router.link <comment><USER2> I'd start by removing the blockchain feature

<comment><AUTHOR> Then there will be no access to decentralized internet.

</comment></comment><comment><USER3> Looks like a scam to me.

<comment><AUTHOR> Not everything with the word Blockchain in it is a scam... we don't sell any tokens/coins, we provide people with the access to decentralized internet, like Ethereum NameSpace (domains registered with Ethereum blockchain) and IPFS.

<comment><AUTHOR> For example, Router.ETH is our decentralized website. It can't be removed from the internet. It will be available even if government bans it.

<comment><USER3> Standard blockchain scam BS.</comment></comment></comment></comment>


Monitoring demystified: A guide for logging, tracing, metrics - <AUTHOR> https://techbeacon.com/enterprise-it/monitoring-demystified-guide-logging-tracing-metrics <comment><USER3> A lot of excellent information in that blog post and linked from it... but if you're wondering where to start:

1\. Write good logs... not too noisy when everything is running well, meaningful enough to let you know the key state or branch of code when things deviate from the good path. Don't worry about structured vs unstructured too much, just ensure you include a timestamp, file, log level, func name (or line number), and that the message will help you debug.

2\. Instrument metrics using Prometheus, there are libraries that make this easy: [https://prometheus.io/docs/instrumenting/clientlibs/](https://prometheus.io/docs/instrumenting/clientlibs/) . Counts get you started, but you probably want to think in aggregation and to ask about the rate of things and percentiles. Use histograms for this [https://prometheus.io/docs/practices/histograms/](https://prometheus.io/docs/practices/histograms/) . Use labels to create a more complex picture, i.e. A histogram of HTTP request times with a label of HTTP method means you can see all reqs, just the POST, or maybe the HEAD, GET together, etc... and then create rates over time, percentiles, etc. Do think about cardinality of label values, HTTP methods is good, but request identifiers are bad in high traffic environments... labels should group not identify.

Start with those things, tracing follows good logging and metrics as it takes a little more effort to instrument an entire system whereas logging and metrics are valuable even when only small parts of a system are instrumented.

Once you've instrumented... Grafana Cloud offers a hosted Grafana, Prometheus metrics scraping and storage, and Log tailing and storage (via Loki) [https://grafana.com/products/cloud/](https://grafana.com/products/cloud/) so you can see the results of your work immediately.

If it's a big project, you have a lot of options and I assume you know them already, this is when you start looking at Cortex and Thanos, Datadog and Loki, tracing with Jaegar.

<comment><USER4> I'd add to no. 1 by saying include a correlation id or request id so you have a way to filter the logs into a single linear stream related to the same action.

<comment><USER5> Absolutely constantly being able to get a single linear stream is when tracing becomes super powerful.

</comment></comment></comment><comment><USER6> A few things I have learnt along the way:

Logs are great, but only once you've identified the problem. If you are searching through logs to _find_ a problem, its far too late.

Processing/streaming logs to get metrics is a terrible waste of time, energy and money. Spend that producing high quality metrics directly from the apps you are looking after/writing/decomming (example: dont use access logs to collect 4xx/5xx and make a graph, collate and push the metrics directly)

Raw metrics are pretty useless. They need to be manipulated into buisness goals: service x is producing 3% 5xx errors vs % of visitors unable to perform action x

Alerts must be actionable.

Alerts rules must be based on sensible clear cut rules: service x's response time is breeching its SLA not service x's response time is double its average for this time in may.

<comment><USER7> > Processing/streaming logs to get metrics is a terrible waste of time, energy > and money. Spend that producing high quality metrics directly from the apps > you are looking after/writing/decomming

Yeah nah, but, okay, nah yeah.

Generating metrics in the app is much more intrusive, and requires that you figure out the metrics you need ahead of time. It adds dependencies, sockets, and threads to your app.

Unless you're very careful, it's also easy to end up double-aggregating, computing medians of medians and other meaningless pseudo-statistics - <USER2> you're using the Dropwizard Metrics library, for example, you've already lost.

If you output structured log events, where everything is JSON or whatever and there are common schema elements, you can easily pull out the metrics you need, configure new ones on the fly, and retrospectively calculate them if you keep a window of log history.

When i've worked on systems with both pre- and post-calculated metrics, the post-calculated metrics were vastly more useful.

The huge, virtually showstopping, caveat here is that there is lots of decent, easy-to-use tooling for pre-calculated metrics, and next to nothing for post- calculated metrics. You can drop in some libraries and stand up a couple of servers and have traditional metrics going in a day, with time for a few games of table tennis. You need to build and bodge a terrifying pile of stuff to get post-calculated metrics going.

Anyway if there's a VC reading this with twenty million quid burning a hole in their pocket who isn't fussy about investing in companies with absolutely no path to profitability, let me know, and i'll do a startup to fix all this. I'll even put the metrics on the blockchain for you, guaranteed street cred.

<comment><USER8> > if you're using the Dropwizard Metrics library, for example, you've already > lost.

Can you go into a bit more detail here? Curious to know where Dropwizzard goes wrong.

I prefer to use the Prometheus client libraries where possible. Prometheus' data model is "richer" \-- metric families and labels, rather than just named metrics. Adapting from Dropwizzard to Prometheus is a pain, and never results in the data feeling "native" to Prometheus.

<comment><USER9> I think they just mean the host is aggregating, so any further aggregation is compounded slant time the data. Like StatsD's default is shipping metrics every 10s, so if you graph it and your graph rolls up those data points into 10 minute data points (cuz you're viewing a week at once), then you're averaging an average. Or averaging a p95. People often miss that this is happening, and it can drastically change the narrative.

<comment><USER7> Yes, exactly this. It's the fact that you're doing aggregation in two places. Since you're always going to be aggregating on the backend, aggregating in the app is bad news.

It may be interesting to think about the class of aggregate metrics that you can safely aggregate. Totals can be summed. Counts can be summed. Maxima can be maxed. Minima can be minned. Histograms can be summed (but histograms are lossy). A pair of aggregatable metrics can be aggregated pairwise; a pair of a total and a count lets you find an average.

Medians and quantiles, though, can't be combined, and those are what we want most of the time.

Someone who loves functional programming can tell us if metrics in this class are monoids or what.

There is an unjustly obscure beast called a t-digest which is a bit like an adaptive histogram; it provides a way to aggregate numbers such that you can extract medians and quantiles, and the aggregates can be combined:

[https://github.com/tdunning/t-digest](https://github.com/tdunning/t-digest)

</comment></comment></comment></comment></comment><comment><USER10> The Art of Monitoring [1], covers most of these stuff in a unified manner.

You are introduced to some basics (push vs. pull monitoring), then proceeded with simple system metrics collection (cpu, memory) via collectd, then goes to logs ingestion and ends up extracting application-specific metrics from jvm and python applications.

I highly recommend it, even for seasoned professionals.

[1] [https://artofmonitoring.com/](https://artofmonitoring.com/)

</comment><comment><USER11> I never see an important system management principle brought up: If you get a user complaint (for some value of "user") and not an alert, you should fix the monitoring system so that you don't get another occurrence of it or related problems. Obviously that's within reason, depending on the circumstances; the effort might not be worth it.

</comment><comment><USER12> We log extensively. Here are some of my thoughts it

\- at least in C++, the requirement to be able to log from pretty much anywhere can lead to messy code that either passes a reference to your logger to all classes that might possibly need it, or you've got an extern global somewhere. Yuck.

\- logging can enable laziness. Being able to log that something weird happened can be considered a sufficient substitute for proper testing.

\- logs are only as useful as the info they contain. This can mean state needs to be passed around all over the place just so that it can all be eventually logged on one line (it saves your data team from having to do a 'join')

\- if your logger doesn't support cycling log files it's useless. If something goes wrong you can easily fill a disk.

<comment><USER13> I'd disagree with 2 and 4.

2\. Given a large enough system you will encounter situations where the only action you can take is to log "this really shouldn't happen" and try to roll back as cleanly as possible. This may be due to either complexity or a bug manifesting in a layer completely different than where it occurred (I've seen a null reference crash on "if(foo) foo->bar();" in the past)

4\. I believe loggers should ideally know as little as possible about your logs. Logs can be rotated externally, can be buffered and sent to other hosts without touching the disk, can be ignored. Ideall, the system should care, not the app.

<comment><USER14> > I've seen a null reference crash on "if(foo) foo->bar();" in the past

References can't be null. Regardless, that's a valid check for a null pointer and I don't think what you wrote is at all possible (unless maybe in some multithreaded scenario?).

</comment></comment></comment><comment><USER15> It's weird to see the stuff by Jay Kreps (of Kafka ~fame~) listed in the logs section. His writing is specifically _not_ about logs the observability tool, but logs the data structure such as you'd see at the heart of a database.

<comment><USER16> No. The original Kafka paper does talk about logs in the observability sense as a premise to solve the aggregation problem.

[https://cs.uwaterloo.ca/~ssalihog/courses/papers/netdb11-fin...](https://cs.uwaterloo.ca/~ssalihog/courses/papers/netdb11-final12.pdf)

> There is a large amount of "log" data generated at any sizable internet > company. This data typically includes (1) user activity events corresponding > to logins, pageviews, clicks, "likes", sharing, comments, and search > queries; (2) operational metrics such as service call stack, call latency, > errors, and system metrics such as CPU, memory, network, or disk utilization > on each machine. Log data has long been a component of analytics used to > track user engagement, system utilization, and other metrics.

> We have built a novel messaging system for log processing called Kafka [18] > that combines the benefits of traditional log aggregators and messaging > systems....Kafka provides an API similar to a messaging system and allows > applications to consume log events in real time.

<comment><USER15> A quote from the LinkedIn blog post linked in the article:

"But before we get too far let me clarify something that is a bit confusing. Every programmer is familiar with another definition of logging—the unstructured error messages or trace info an application might write out to a local file using syslog or log4j. For clarity I will call this "application logging". The application log is a degenerative form of the log concept I am describing"

<comment><USER16> Fair enough. But I don't think quoting this for logging in the tracing sense is wrong here. He does acknowledge that trace logs are a degenerative form of logs from the perspective of log processing. The only difference being in the semantics of human readable text v/s binary logs.

</comment></comment></comment></comment><comment><USER17> Is there an open source solution for processing streams of structured and unstructured logs and routing then onward? I see solutions for moving logs to elastic or Kafka but nothing for evaluating the log.

<comment><USER18> This is a problem that is both solved again and again, but also all the available solutions are bad.

In my experience what happens is:

1\. you start with a "ship logs from X to Y" product

2\. you add more sources and more destinations, making it more of a central router. you add config options for specifying your sources and dests.

3\. since the way you checkpoint or consume or pull or push certain sources or dests doesn't generalize, you end up buffering internally to present a unified "I have recieved / sent this message successfuly" concept to your inputs and outputs.

4\. you want to do some basic transforms on the logs as you go. you implement "filters" or "transforms" or "steps" and make them configurable. your config now describes a graph of sources -> filters -> dests

5\. your filters need to be more flexible. you add generic filters whose behaviour is mostly controlled by their config options. your configs grow more complicated as you use multiple layers of differently-configured filters

6\. you have a bad turing complete programming language embedded in your config file. getting simple tasks done is possible, getting complex tasks done becomes an awful, inefficient and unreadable mess.

My solution to this cycle has been to just write simple hard-coded applications that can only do the job I need them to do. If they need a different configuration later I edit the source. I'm writing my transforms in a real programming language and I avoid the additional complexity of abstractions. Of course, that comes with its own costs but I consider it well worth it.

</comment></comment><comment><USER19> > Logging is critical to detecting attacks and intrusions.

Yes, but not universally - and just collecting logs will not take you far. Logging everything and trying to approach security via the 'collect all data' is both expensive and inaccurate, and one of the major inefficiencies in modern cyber.

<comment><USER20> This is done efficiently at scale by both Cylance and Crowdstrike, but is certainly only one part of a defense in depth strategy.

There are viable products around human threat hunting which would be impossible without a 'collect all the data' component.

<comment><USER19> You are correct, and this is the key part - what % of organizations have money, skills and people to build a robust enough capability around threat hunting, for example?

I've been super lucky to meet various orgs and their security in all geographies and many industries and my gut feeling is 1 out of 10 teams.

</comment></comment></comment><comment><USER21> Recently, I was searching for a service which offers those functionalities on a very basic level. I tried several options and was really disappointed with all of them. The only one that I found to be usable was [https://logdna.com/](https://logdna.com/). I've now been using it for a couple of weeks and it works OK. It offers logging, alerts, metrics/dashboards, and some other things. And all that for a reasonable pricing.

</comment><comment><USER22> Am I the only one that can't reach the "save and exit" privacy button on mobile?

It's hard for me to think that this is not intentional when the "Accept all" is usable but the alternative isn't...

</comment><comment><USER23> Nice

</comment><comment><USER24> If you don't need all the fancy metrics, and just want something simple to keep an eye on your services, alert you if they fail, and automatically restart them, check out my stealthcheck service. It's all of 150 lines of free range, 0-dependency go:

[https://github.com/anderspitman/stealthcheck](https://github.com/anderspitman/stealthcheck)</comment>