Ask HN: Best development laptop? - <AUTHOR> Title kinda says it all, but in the market for a development laptop. Anyone have any recommendations?<p>Thanks! <comment><USER2> I bought the 25th anniversary ThinkPad when they still had them and this, for sure, is the best laptop I've ever used in my life. And I've had several Macbooks, Zenbooks and ThinkPads, but this here has a few things that make it stand out:

* The perfect keyboard. Seven rows, feels perfect when writing code.

* 14" FHD screen is just the optimal size and resolution for a laptop.

* Works perfectly with Linux.

* Two batteries, both replaceable. With the larger battery you get about 13-14 hours of work before a need to recharge. And of course you can replace the other battery to a charged one easily.

* Enormously extendable. Two free memory slots. Easy to open and service. Lenovo gives video instructions on their service site. Almost everything is replaceable.

* Sturdy quality design.

Now this laptop is not available anymore, but the T470 and soon the upcoming T480 still have the same chassis and all the other bullet points. The new six row chiclet keyboard is still the best keyboard of its kind and if you to use the trackpoint, you don't need to move your hands off from the keyboard.

</comment><comment><USER3> If you can live with 8GB RAM and a dual-core i5 at 1.8Ghz, I'd argue that the MBA is one of the best laptops to work with. The selling points for me are:

* OSX - still the best all around OS to work with.

* Lightweight, it is a laptop that weights ~ 3 pounds

* Battery life is decent

* Build quality is above average

I believe that it's an excellent choice for web development.

<comment><USER4> I second this. If you're not into intensive video editing etc. it's probably the best laptop for the price. Battery life being "decent" is underselling it - it has the best battery life of any mainstream laptop, easily lasts 19-20 hours under light workload and 12-13 under intensive work. And for a laptop imo battery life is a very crucial factor.

<comment><USER5> Are you serious about the _20 hours_ battery life? So far I haven't seen a laptop that would break 10+ hours on the login screen.

<comment><USER6> I can't confirm the 20 hours, but I can say that I've never, _ever_ thought about battery life on my MBA. And I'm a lazy fuck who spends at least half- days on the couch with no power outlet regularly.

</comment></comment></comment></comment><comment><USER7> A few months ago I would of said a new Asus zenbook with ubuntu LTS 16.04 as everything works out the box and 10hr battery life with Linux, however I had to take to service center recently so they could hard reset it because I switched it off and on too quickly (my taxi arrived just as I switched it on, so immediately held button down again) and it never switch on since. Service center being a bunch of idiots wanted to book it in for 2 weeks, I pleaded (with some profanity laced in as they pushed me beyond frustration with their robotics responses) with them to do a hard reset there and then (they needs opening to remove the bios battery), they caved, and surprise surprise 10mins later I have a working laptop again. I probably wouldn't buy Asus again because service centers are truely shit and obviously there is a race condition with the on switch and bios or whatever that isn't fully tested. In fact I bought some torx screwdrivers to do it myself next time.

Dell XPS next I think.

<comment><USER8> I wouldn't recommend XPS. I have version 9350 and it constantly have one problem after another. In no particular order: slow boot time (it can take 7 seconds to see dell logo after pressing power button), coil whine, a firmware update killed the laptop once. I don't know how much of these problems can be attributed to Intel but I fear hardware manufacturers have adopted "release early fix later through firmware" mind-set. Good things about Dell: next business day warranty where a guy will come and replace the motherboard in case the update renders it useless.

<comment><USER9> I have a 2017 XPS 15 (9560) and it has been pretty good with the exception of a 1-2 second pause about once a day. I use it for Windows development.

<comment><USER7> Could it be some SSD firmware issue? I could live with a few second pause a day.

<comment><USER9> I'd heard that some had fixed the problem by updating the intel graphics driver. I did a Dell "update everything including the BIOS" and it made my QT development IDE and my application have bad rendering problems so I did a system restore.

The "pause" is a complete lock up, mouse and keyboard stop responding.

</comment></comment></comment></comment></comment><comment><USER10> Happy Dell XPS 13 user here. I have been using it for the past 3 years without any issue. In the same timespan many of my coworkers had to replace/return macbooks (kb glitches, screen issues, battery problems etc).

I was a thinkpad only person before that, but the quality went downhill.

I am tempted to buy a pixelbook and use linux on it next, the specs/price/quality seem just right.

<comment><USER8> Out of curiosity which version do you have?

<comment><USER11> I've got the 9343 and am happy with it as well.

</comment></comment></comment><comment><USER12> I bought an i7-6600U Lenovo Carbon X1 thinkpad earlier this year and absolutely love it. excellent keyboard, the screen is pretty great, battery life isn't bad and I can upgrade the memory. It's stupidly lightweight. Sure it doesn't have a HQ processor, but the U is getting me by perfectly well.

<comment><USER2> If I'd need to carry my laptop around, this would be my choice too. It's just a very nice laptop, small and the keyboard is the best in class as with all business ThinkPads.

But I mostly use my laptop at home, so having a T-series gives a bit better performance and upgradeability in a still small package.

</comment></comment><comment><USER13> I have recently bought a refurbished Lenovo ThinkPad X220 for about $200. For that price it is the best machine you can have. It can be upgraded up to 16 GB RAM, I use two disks (SSD in mSATA slot + bigger HDD), awesome connectivity (3 USBs, DisplayPort, Ethernet, docking station, SD card reader). Runs Linux smoothly.

Of course it it weights slightly more then MBP and the display is not Retina, but I'd rather buy 10 of these than one MBP (which I also own so I can compare) for the same price.

</comment><comment><USER14> I recently upgraded to a Lenovo Thinkpad p51s with a 1TB SSD and 32GB ram. It is basically a t570 with a better graphics stack. Runs Linux beautifully.

</comment><comment><USER15> Marco has an opinion on this: [http://marco.org/2017/11/14/best-laptop- ever](http://marco.org/2017/11/14/best-laptop-ever)

<comment><USER16> And he's not wrong. I've been holding to this 2012 rMBP because I can't stomach paying $1600+ for a downgrade. I would just be getting more RAM, better CPU and GPU (but who cares if you don't game), but the same screen, worse connectivity, worse keyboard, no F-keys, no Esc key, no Magsafe.

When this 2012 breaks I hope Apple has either come up with a pro laptop worth upgrading to, or I'll jump ship to an ugly, heavy, unsightly PC laptop; but at least I trust will be functional.

<comment><USER17> I had a 2013 MBP and just upgraded to 2017 when I took a contract that required a more powerful dev env. I don't miss function or escape keys, and Touch ID to unlock/auth 1Password is fantastic. I really don't understand the dislike of the new models, but YMMV and you're certainly entitled to your opinion.

</comment></comment></comment><comment><USER18> Purism Librem, to minimize the amount of proprietary crap and spyware on my laptop. Unfortunately, even it has a vulnerable Intel processor. You can't have everything... yet.

</comment><comment><USER19> Check out the System76 laptops. I have the GazelleP6 from 2011 and it still runs perfectly fine, although I upgraded to 16gb snd a SSD

</comment><comment><USER20> the best development laptop is NO development laptop. under all circumstances work at an ergonomic workplace whenever possible.

<comment><USER21> This is still achievable with a laptop. I have a good quality keyboard, monitor and mouse at home and at work, along with a proper desk and chair.

With a lightweight laptop that I don't mind carrying this means I have the exact same development environment when working from home or the office.

I'll agree I have to compromise on computing resources, but I find that to be less of a problem with a good internet connection and the existence of very cheap servers.

</comment></comment><comment><USER22> I'm happy with the 16GB i7 1.4ghz (turbo to 3.6ghz) Macbook.

It's retina. It's less than 1kg (2 lbs.). It has between 7-10hrs battery; I can work the entire long haul London to NYC/PHL no problem.

I can load a big data set into memory and crunch; I can work on a web app in all the different browsers that I need to (Parallels is brilliant). I have docker. I have Powerpoint.

I close the laptop, it goes to sleep. I open the laptop it's awake. I didn't even realise this was still a problem in 2017 until I tried some Windows laptops for a few months (a dell XPS and an HP EliteBook).

WiFi kicks on fast; easily within a second of opening the laptop. If I choose my phone from the WiFi menu, it turns on the tethering. If I disconnect, it turns it off.

The low travel on the keyword feels weird, but it doesn't affect my typing speed. Each key feels distinct, unlike the squishy feeling I get on the HP or even my older Macbook Air.

<comment><USER23> > If I choose my phone from the WiFi menu, it turns on the tethering.

I wonder why we still can't put a Sim card into a laptop.

<comment><USER24> You can, but got need to get the right laptop.

</comment></comment></comment><comment><USER25> Dell Precision 15" with 4k and 97Wh battery. One of the few laptops that ship with Ubuntu if that's your thing.

I personally own a Precision 5510 and use a 5520 everyday for work. Both run Arch with no issues other then minor display scaling issues that can be blamed on the state of Linux desktop environments, not the laptop.

<comment><USER26> About those scaling issues, is it when using an external monitor? If so I got those too. Switching from DP to HDMI helped and fiddling with xrandr settings like scale and dpi helped also. For some apps like android studio I change dpi before launching it then reset dpi after launch.

</comment></comment><comment><USER27> I am loving my Surface Pro. Great build quality, extremely portable, 8+ hours of battery life, detachable, writable screen, Windows 10 is pretty good, especially with Ubuntu built in (or VirtualBox if you need Docker).

</comment><comment><USER28> If you can wait 3 months then wait. In Q1 2018 we should see first laptops with Coffe Lake processors, like Dell XPS 15 refresh and Thinkpad T480p. If you can't wait then go with current versions of those.

</comment><comment><USER29> I use a Thinkpad T460p maxed out with a Core i7 HQ and 32GB RAM. Its the perfect workstation for me at 14". I run Ubuntu on it.

I suggest you look at the new T470p.

</comment><comment><USER4> B&H has a big discount of a few hundred dollars on late 2016 MBP if you're interested. For the price drop it's worth the price.

</comment><comment><USER30> I have msi phantom. Not the best Linux support. It works, and I can have some fun with GPU. Depends on what you developing, having some fun with CUDA is beneficial for me.

2kg. 14inch. Not nerfed CPU with lots of RAM and small battery.

I am thinking now of getting Microsoft Surface, to have a more portable alternative, But Termux on Android is enough for now

</comment><comment><USER31> Thinkpad X260.

<comment><USER32> I really wanted to like the x260, but we equipped a team of 6 programmers with the x260 and not one was without fault. The build construction or QA must have been on the fritz with our batch because half of them would crash when even the slightest pressure was applied to the bottom left corner of the laptop. I cannot recommend it in good faith.

<comment><USER31> Sounds weird. Applying pressure to plastics case covering aluminum frame should not crash anything. Have you tried calling support?

Since we are sharing anecdotal evidence here's mine: I traveled 5 countries with my Thinkpad in last year. Carried it thought and worked on it in airports, hotels, cafes. I also bike with it year long in any weather in my backpack. Works great.

</comment></comment></comment><comment><USER33> Dell XPS last time i checked

</comment><comment><USER34> If you need lots of ram in a small formfactor: Toshiba Portege x30. Extremely Happy with it, i'd just wish it already had an 8th gen 8550u quad-core instead the 7500u dual-core.

</comment><comment><USER35> I'm a happy Asus zenbook 3 user. I setup arch on it and it's been great so far. Only problem with it is it's crappy audio

</comment><comment><USER36> The one you install from scratch with your own scripts. confidence on where you are standing beats screen resolution or anything

<comment><USER5> It's not like your CPU isn't backdooring your custom scripts anyway. [https://en.wikipedia.org/wiki/Intel_Management_Engine](https://en.wikipedia.org/wiki/Intel_Management_Engine)

</comment></comment><comment><USER37> Just go with Macbook Pro 2016 without touchpad. Its cheap & if u change your mind on developing for MAC or IPHONE then you can do it. If you don't buy a MAC you won't be able to build apps for MAC or IPHONE. So buy it now & you'll use it for 3 years until you have a big fat salary to buy a new one.

</comment><comment><USER38> I would also make sure you know that you need laptop. I made the mistake thinking I would commute with my laptop (or have BYOD) setup at work but at the end I did not. I spent shitloads of money on a portable device that I never take out of my desk.

Get a proper desktop if you can and a pair of good monitors. And if you need / want your portable daily driver can be macbook or mba or chromebook.</comment>


Ask HN: Best way to market an Android app? - <AUTHOR>

I am working on my first mobile application, which in a nutshell is a camera that asks for a password when you start it and then uses AES to encrypt all photos taken in that session, so that plain data is never written to a storage medium.
I intend on selling this app and releasing the source under a non-commercial license, applicable only to licensees (i.e., once you buy it, you have a non-commercial license to modify and share changes).
What's the best way to market this application? It seems like it will be difficult to break into the Market where there are millions of applications, especially when there are several "vaults" that purport to keep data safe (though they really just move files around so that applications don't see them anymore).
What advice do you have to help a no-name developer successfully market a useful application? <comment><USER2> MAKE IT FREE</comment>


700 from 82nd at Joint Base Andrews. 1400 more to be mobilized, issued bayonets - <AUTHOR> https://twitter.com/jimlaporta/status/1267926498629074947 <comment> non-entity This is where my brother is stationed. He mentioned to me that they had a shitton of people sent in the past nights

Id hope to see better discipline from the military than what we've seen and heard from police forces all over the nation, but we'll have to see.

<comment><USER2> I would say the police have shown amazing restraint and discipline. And where they have been violations, they have been quickly dealt with. With the exception of D.C last night.

<comment><USER3> "Police brutality supercut videos go viral"

[https://www.nytimes.com/2020/06/02/style/police-protests- vid...](https://www.nytimes.com/2020/06/02/style/police-protests-video.html)

<comment><USER2> Of course they do! People want sensationalism. The reality is that do it right 999 times out of a 1000 and the one time you fail it ends up all over the news. We can't honestly expect perfection from our police forces, but we can hope the failures with be learned from and punished accordingly.</comment></comment></comment></comment>


German Judges explain why adblock plus is legal - <AUTHOR> http://arstechnica.com/tech-policy/2016/12/german-judges-explain-why-adblock-plus-is-legal/ <comment><AUTHOR> This is a pretty critical ruling. Consider this statement:

 _" The legal arguments made by Spiegel Online, outlined in an unofficial English-translated copy (PDF) of the judgment courtesy of Eyeo, argued they were making a "unified offer" to online consumers. Essentially, that offer is read the news content for free and view some ads. While Internet users have the freedom "not to access this unified offer," neither they nor Adblock Plus have the right to "dismantle" it. Eyeo's behavior thus amounted to unfair competition, and it could even wipe the offer out, Spiegel claimed."_

The 'unified offer' reasoning is something I hear a lot of from people who dislike ad blockers.</comment>


Clustering of Time Series Subsequences Is Meaningless (2005) [pdf] - <AUTHOR> http://www.cs.ucr.edu/~eamonn/meaningless.pdf <comment><USER5> So the heart of the problem, from what I can gather, is the sliding window approach to generating subsequences. This approach necessarily generates "redundantly similar" windows, ie. windows will be most similar to their closest neighboring windows since there is an overlapping length of window - <USER2>

The sliding window approach is not adding random noise to the clustering, it is adding redundantly similar data to the clustering resulting in almost perfect sine-wave-like cluster centers.

<comment><USER5> __update to my original post __

I am coming from a genomics background, so when I read about sliding window on time series data, I think about sliding window approach on regions of genome sequences.

The ultimate point of doing this clustering is to find repetitive sub- sequences in the series. This is also something we do commonly in the genomics field (repeatmasker/repeatmodeler software for example).

Something we can look at in genomes is a "k-mer coverage". A k-mer is just a k-lengthed sub-sequence (A,T,G,C), analogous to a k-length sub-sequence of a time series.

By scanning the genome, we can tally up how many times a k-mer appears in the genome. With this tally, we can determine a k-mer coverage for a region on the genome. This gives us an idea how many times we see this same region on the rest of the genome.

Maybe this approach can be adapted somehow? The only problem is that in genomics, we have four discrete classes (A,G,T,C), making finding exact matching relatively easy. In time-series, we have continuous data, making finding matches a lot tougher to do and define.

<comment><USER6> Disclaimer: _I am not defending or denying the claims in the paper. I have a philosophical interest in time._ [1]

The difference I think is that the series in a genome is lexicographic rather than temporal: i.e. which end of a particular strand you read from is irrelevant. On the other hand, a time series has an independent ordering. By analogy, a time series is a directed graph a genome is undirected.

That is the algorithm for finding a subsequence in a time series can be used for finding a subsequence in a genome. But the meaning of a subsequence is different. It's:

      A - G - A - <USER4>

versus

      C-> A -> G -> A.

Time series data contains implication and causality. Any claim about time series data is implicitly a claim about causality: e.g. we might claim a time series appears to be random. We don't really talk about a genome's amino acid sequence being random because the causality (other than the trivial case of analogues) lies outside the sequence - the reason for

      T - A - <USER4>

is assumed to lie outside of T - A - C.

[1]: [http://plato.stanford.edu/entries/kant-hume- causality/#TimDe...](http://plato.stanford.edu/entries/kant-hume- causality/#TimDetAnaExpUniNat)

<comment><USER7> This is pretty much the main idea behind another paper that Eamonn wrote [0]. The idea is that you can normalize and discretize timeseries data into a lecicographical representation, then perform all sorts of interests analyses on it. For example, searching for common subsequences can be done via regular expressions.

[0] [http://www.cs.ucr.edu/~eamonn/iSAX.pdf](http://www.cs.ucr.edu/~eamonn/iSAX.pdf)

</comment></comment></comment></comment><comment><USER8> "The cluster centers found by STS clustering on any particular run of k-means on stock market dataset are not significantly more similar to each other than they are to cluster centers taken from random walk data! In other words, if we were asked to perform clustering on a particular stock market dataset, we could reuse an old clustering obtained from random walk data, and no one could tell the difference."

"As the sliding window passes by, the datapoint first appears as the rightmost value in the window, then it goes on to appear exactly once in every possible location within the sliding window. So the t_i datapoint contribution to the overall shape is the same everywhere..."

"Another way to look at it is that every value v_i in the mean vector, 1 ≤ i ≤ w, is computed by averaging essentially every value in the original time series; more precisely, from t_i to t_m-w+i . So for a time series of m = 1024 and w = 32, the first value in the mean vector is the average of t[1..993]; the second value is the average of t[2…994], and so forth. Again, the only datapoints not being included in every computation are the ones at the very beginning and at the very end, and their effects are negligible asymptotically."

<comment><USER9> I wonder if the same effect applies to an exponential sliding window, ie. weight more "recent" samples higher than older samples, so effectively it's an infinite window. Instead of using a hard cutoff window.

<comment><USER8> Hmm, good question. I'd say this would simply distribute the contribution of each window member along an exponential (rather than constant) trend. The terms in the mean vector would then be polynomials of the window members. Even if you lined up t_(x^n) weight with t_(x^m), it seems to me the other t_i filtered at exponential distances wouldn't line up. You'd could probably arrange it to get split on these nonidentical term weights, and maybe this could work as a (somewhat involved) method of feature selection that didn't degenerate to identical contributions. Interesting idea! - and maybe there's a few papers about it somewhere :)

</comment></comment></comment><comment><USER10> Eamonn Keogh is a major advocate of Dynamic Time Warping and this should be kept in mind while reading this paper.

(he does have interesting stuff here: [http://www.cs.ucr.edu/~eamonn/selected_publications.htm](http://www.cs.ucr.edu/~eamonn/selected_publications.htm))

<comment><USER11> Exactly the comment I was looking for - I've done a bit of work classifying time series using 1-NN and DTW as the distance metric and it works quite well.

I was under the impression this work was more well-known, though. It's surprising to not see it mentioned considering how long DTW has been around.

</comment></comment><comment><USER12> From the abstract: "forced to obey a certain constraint that is pathologically unlikely to be satisfied by any dataset"

Like assuming your data come from a normal distribution? Box guides us: 'all models are wrong, some are useful.'

<comment><USER13> We found the same issue with non-normal distributions in our time series data sets when using SAX (developed by this paper's authors - assumes normality for dimensionality reduction) and addressed it by using quantiles in the piecewise aggregate approximation step. The quantile breakpoints behaved much better than the "normal" breakpoints.

</comment></comment><comment><USER14> when I last looked into time series clustering, it seemed like other statistical techniques worked better for predicting failure modes. I still think there is merit in motif recognition and rules based around that concept, but I haven't seen very much of interest outside of EKGs.

</comment><comment><USER15> From the abstract:

> While this constraint can be intuitively demonstrated with a simple > illustration and is simple to prove, it has never appeared in the > literature.

Ok, I would love to see a simple illustration here :)

</comment><comment><USER16> What about cluster analysis of whole time series (which are of differing lengths)? Is that meaningful?

</comment><comment><USER17> I think that it should read "Clustering of Time Series Subsequences With K-means Is Meaningless".

<comment><USER18> The article actually claims that the problem is not related with the clustering algorithm, but with the sliding window approach.

</comment></comment><comment><USER19> I think one way to summarize it is: by constructing feature vector components that are parochially based upon the mere _position_ within some data, you introduce correlation and causality effects between the components of your feature vector.

For example, think about using regression instead of clustering. Your design matrix is still going to be S from the paper, where the p-th row of S is the p-th "iteration" of the window (while it is is being slid from start to finish of the data).

So column 1 of p=1 window will trivially be perfectly correlated with column 2 of p=0 window, and column 0 of p=2, at least for a number of rows until that data point has slid out of the window. So in some sense, past observations (earlier columns in S) will "cause" later observations (later columns in S) due to the sliding mechanism.

In regression this is a well-explored problem with multi-collinearity and also with conditional effect sizes when causal relationships are not separated into separate equations or corrected by adding dummy variables for conditional levels of one covariate given others.

It's not at all surprising that something similar would happen when clustering.

Sadly, it's also not that surprising that the entire research community doesn't care too much and is happy to crank out papers with this issue anyway. It's similar to data mining for statistical significance or other problems, and indeed machine learning is not at all a silver bullet to get around those problems.

One approach that might help reduce the problem is to randomly sub-sample windows. It would be a lot of work, and probably be computationally costly, but you could in principal devise a sampling scheme where you jointly sample _all_ of the sub-windows at once, in such a way as to ensure certain bounds on the total amount of overlap between them, using probably some sort of Metropolis-like scheme. It's not clear to me if this is worthwhile or not, and I tend to prefer the idea of quantizing the signal in some way to make it a lexicographic problem instead.

Also note that the problem is _a lot_ less worrisome in supervised learning, like training a decision tree or SVM on overlapping sub-windows. The reason is that you (presumably) have control over the labels. So you can ensure that two highly correlated sub-samples (like window p and window p+1) get the same label most of the time when it matters (e.g. when you're right on top of the interesting phenomenon you want to classify). _Crucially_ the reason this helps is that you not only can ensure that two sample windows which differ by only a slight amount of sliding will get the same label, but also that those windows will get the same label as other instances of the same phenomenon elsewhere in the signal, perhaps far away in some other sub-window nowhere near it. It means you are clamping the positive training samples to reflect the signal properties you want, rather than hoping the clustering will intrinsically pick that to be the notion of similarity it uses when classifying samples (which, as the paper points out, you have no reason to expect that it will).

But it will still suffer somewhat to subjective choices about when, exactly, the window has slid far enough away from the labeled phenomenon to have "rolled off" enough that the label should be for the other class (in a binary case). What's bad about this is that however this gets codified into the training set needs to be taken into account as part of the experimental design and accounted for when reporting anything like statistical significance results later on. But because this choice, which is effectively a "roll off" parameter, is not written down or made explicitly part of the model anywhere, most people just ignore, or don't think about the way it might have an effect on the result.</comment>


Playstation Architecture: A Practical Analysis - <AUTHOR> https://copetti.org/projects/consoles/playstation/ <comment><USER2> I remember developing for the PS back in 1996-1999. The first title I worked on I was building the graphics engine and animation systems. Originally in C, then in MIPS assembler to get as much perf as possible: with a fixed target the difference for your title would be mostly down to the performance of the graphics engine.

I got to the point where I'd fitted the entire graphics engine and animation system into 4K, so it would fit in the instruction cache, and moved as much regularly used data into the 1K scratchpad as I could fit (Yes, an L1 cache that you decided manually what to put in it!). Access to the scratchpad would take 1 cycle.

Then I'd _' hand interleave'_ asm operations. Reading from memory was slow, it took 4 cycles, which normally would be filled with NOPs by the C compiler (1 load instruction, 3 NOPs). So, I'd use assembly instead of C and try to fill those NOPs with other actual operations that didn't need the memory being requested, essentially doing hand-crafted concurrency.

Because loading and storing from/to memory was such a common operation, this would make the code very, very hard to maintain, and sent me slightly crazy for a while! Often it meant doing x, y, z operations (for 3D processing, like vector multiplication) concurrently, but wherever the the NOPs could be reduced, more could be done.

With various other bits of cunning I eventually got it to the point where I broke the manufacturers specs for whatever Sony said the PS could do per- second (memory is a bit fuzzy about what those specs were, but I remember myself and the team being pretty damn pleased at the time).

It was a fun machine to program for. The Saturn which was out at the same time always struggled to keep up because it was so hard to develop for, even though on paper it was better. I think that was what struck the death knell for Sega.

<comment><USER3> > Reading from memory was slow, it took 4 cycles, which normally would be > filled with NOPs by the C compiler (1 load instruction, 3 NOPs). So, I'd use > assembly instead of C and try to fill those NOPs with other actual > operations that didn't need the memory being requested, essentially doing > hand-crafted concurrency.

This isn't usual for the MIPS ISA, is it? MIPS has branch delay slots but not memory delay slots, per my understanding. (Of course if there's a data dependency on a pending load the CPU still has to stall.)

<comment><USER2> The R3000 suffered from the need for load delay slots too, unfortunately. I may have forgotten all the exact details though. I am genuinely in awe of people who seem to retain the details of this stuff 10 - 20 years later, my brain certainly doesn't work like that!

</comment></comment></comment><comment><USER4> For anyone interested how it was developing for the original PSX (and therefore under hardware constraints)

 _How Crash Bandicoot Hacked The Original Playstation_

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

Immensely interesting video! "Old" hardware makes me feel so humble regarding what we have now. Hardware limitations back then really pushed developers towards novel approaches and solutions.

<comment><USER5> Thanks for the interest in our shared video gaming past. I had a lot of fun making that video. The PS1 was a fun machine as it was capable, complex enough that you felt it had secrets, but not so bizarre or byzantine that you felt learning them was a waste of time. And you were pretty much the only one in there as the libraries were just libraries, not really an OS. Still true of the PS2 although that was a complex beast, but by the PS3 there was more of a real OS presence. If you want some more, slightly different, slightly overlapping info on the PS1 or making Crash, I have a mess of articles on my blog on the topic: [https://all-things-andy-gavin.com/video-games/making- crash/](https://all-things-andy-gavin.com/video-games/making-crash/)

<comment><USER6> I really enjoyed your "Making Crash Bandicoot" blog posts and the "War Stories" video. I would love to read about your work on Jak & Daxter and working on the PS2.

<comment><USER7> Me too, the Jak & Daxter games have a very special place in my heart as my childhood introduction to gaming. I'd love to reach about it!

</comment></comment></comment></comment><comment><USER8> Wow I never imagined my article being in hackernews. Thanks for sharing it! If anyone has any comments, requests or want to report a mistake, please drop me a message (email address is in that website), I'm constantly adding more material.

<comment><USER9> I really enjoyed the special features (3d model viewers etc) you added to this article. It's a great presentation and an interesting read.

</comment></comment><comment><USER10> It makes me feel nostalgic to read about the times when people still tried to understand the hardware and make things work amazingly well despite harsh resource limits.

Nowadays, even simplistic programs take ages on a device 1000 times more powerful. I had time to read this article because restarting our ruby development server is so excruciatingly slow.

It seems the craftsmanship aspect of computer programming is getting lost, and all that remains is the large leverage that one can use to drive profits with software.

<comment><USER11> > _It seems the craftsmanship aspect of computer programming is getting lost, > and all that remains is the large leverage that one can use to drive profits > with software._

Too many lazy/greedy developers fighting against users and operating systems (coughelectroncough)

<comment><USER12> I understand that Electron apps tend to be a resource hog, but what other options for software create as many cross platform opportunities with as much work? I think for every single greedy developer/company there's another small software project only able to get off the ground because of the maximized opportunities. This is coming from a relatively new full time developer who's trying to get a small side project off the ground.

<comment><USER13> > I understand that Electron apps tend to be a resource hog, but what other > options for software create as many cross platform opportunities with as > much work?

Is laziness a good excuse for poor software? For wasting the time and resources of every one who uses the application? For disregarding the conventions of the host platform including any user preferences and accessibility features?

<comment><USER12> > For wasting the time and resources of every one who uses the application?

I don't believe this argument for a second, with the ubiquitousness of successful Electron apps.

<comment><USER13> An application that takes longer to load, is slower, and consumes more CPU and RAM is by definition wasting the user's time and resources. The slow and bloated nature of Electron applications is griped about quite often. That people are required to use Slack for work doesn't change that.

</comment></comment></comment></comment></comment></comment><comment><USER14> There's a lot of awe in the comments about how limitation drove ingenuity. It's true throughout most of the second half of the 20th century electronics, not just the toys that came at the end. The gameboy is a great example. A Z80 is an incredibly simple thing. You have to sit there and hack together games in assembly, performing all sorts of tricks to keep the memory footprint down. The first speak and spell is another example. I wish I could conjure up more, but basically any novel toy that involved electricity between 1950 and 1970 is a work of art. You don't need a computer, or even a transistor, to use electronics tools in a creative way to make an interactive toy.

</comment><comment><USER15> It's crazy to see just how far they've come from the first console to the latest and all the lessons they've learned along the way.

[https://www.youtube.com/watch?v=ph8LyNIT9sg](https://www.youtube.com/watch?v=ph8LyNIT9sg) (Some Playstation 5 architecture highlights).

<comment><USER16> Well, as much as I would love to share the excitement, all they've come to is what essentially amounts to another gaming PC. Not sure how 'far' this is, but clearly all innovation happens now on the PC side. (It almost seems now that the fact that the earlier Playstation models and other consoles had the custom architecture that was different from PC may have had to do with the need to provide enough power in a smaller package.)

<comment><USER17> Did you watch Cerny's presentation, specifically the part on the custom SSD architecture? I took the opposite conclusion: This is the most innovative development from the console market in possibly decades. They're throwing everything behind optimizing the SSD-to-VRAM pipeline in a way that component- built PCs won't be able to do until several new industry standards are developed, with potentially profound impacts on the way games are designed.

It's specifically an interesting contrast with the Playstation 3's exotic Cell processor architecture, which was probably driven more by a desire to _appear_ innovative than by practical applications. By moving to standard x86 architecture, Sony has counterintuitively allowed its system designers to focus on areas that will actually give game developers some novel possibilities.

<comment><USER18> > optimizing the SSD-to-VRAM pipeline in a way that component-built PCs won't > be able to do until several new industry standards are developed, with > potentially profound impacts on the way games are designed.

What are the innovations? I'm just seeing gen 4 pci-e paired with some sort of nvram solution (details are sparse). Apologies if I'm missing something spectacular here...

<comment><USER19> The only really interesting thing is that the console SoCs have decompression offload hardware, so data coming in from the SSD at 4-5GB/s can be unpacked to a 9+GB/s stream of assets, straight into the RAM shared by the CPU and GPU. A desktop PC can easily handle the decompression on the CPU with a combination of higher core counts and higher clock speeds, but then the data still needs to be moved across a PCIe link to the GPU.

The SSDs themselves are nothing special, and there's no clear sign of anything else in the storage stack for either new console being novel. It looks like they're improving storage APIs and maybe using an IOMMU, neither of which requires new industry standards for the PC platform.

<comment><USER20> When it comes to graphics assets, they've been stored compressed and decompressed by the GPU on the fly pretty much since early versions of DirectX. What is the innovative part here?

<comment><USER19> They're using lossless compression algorithms that are a lot more complicated than S3 Texture Compression and friends, and work on arbitrary data rather than being appropriate only for textures.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> What's amazing is that it had only 2 MB of RAM, that's at least 2000 times less than a cheap phone has today. In fact, that's less than a moderate quality mobile phone photo as stored on disk.

<comment><USER22> I think these programmers were forced to understand their subject matter much better than today.

Say for (a silly) example you want the first 10 000 digits of Pi. It's pretty easy to just store that today. But back then you didn't just have to know what Pi _is_ , you had to have the smallest program to calculate it that you can think of.

Would be interesting to hear too how Tekken 3's coders managed to work with 2 MB of RAM.

<comment><USER23> Which is why I find so ironic that many still think only languages like Assembly, C or C++ have a place in IoT on devices like ESP32.

Sure, we used Assembly when performance was the ultimate goal, but also plenty of high level languages, including stuff like Clipper for database front ends.

512 KB with a couple of MHz are already capable of doing a lot of stuff, one just needs to actually think how to properly implement it.

<comment><USER24> > Which is why I find so ironic that many still think only languages like > Assembly, C or C++ have a place in IoT on devices like ESP32.

Short answer, Parkinson's law.

When I browse the Web, open my Windows File Explorer, open Photoshop, open Visual Studio, open just a graphical application that needs GPU acceleration, or do whatever thing that should not be an issue, I find that Parkinson's law very much applies.

[https://youtu.be/GC-0tCy4P1U?t=1727](https://youtu.be/GC-0tCy4P1U?t=1727)

[https://youtu.be/GC-0tCy4P1U?t=2172](https://youtu.be/GC-0tCy4P1U?t=2172)

[https://twitter.com/rogerclark/status/1247299730314416128](https://twitter.com/rogerclark/status/1247299730314416128)

Wtf. Did you see how fast VS6 started on a machine from almost 20 years ago. Today I get depressed whenever I need to open Visual Studio, and I don't even know that I use any more functionality that wasn't available 20 years ago.

Many many programmers (in my perception at least) are extremely dissatisfied with today's state of computing, and the reason why we got here is the popular opinion that we don't need to worry about performance.

Nobody should optimize representations of Pi or count CPU cycles by default. That's not the point. But if you claim that Java is always fast enough for example, then I think we're having a strong disagreement. It's partly confirmation bias and being unaware of vast parts of the landscape, but it's also a fact, that I couldn't name you a complex GUI written in Java with satisfying ergonomics.

<comment><USER25> Java (the language) is not especially slow; back in the mid 2000s I was optimising a Java GUI to display hundreds of thousands of nodes for chip design clock trees.

Java (the culture) makes it hard to be performant. There's a great tendency to use all sorts of frameworks and elaborate object systems where much simpler code would give you at least 90% of the functionality for 10x the performance.

But if you get some programmers with experience beyond Java who care about performance and are rewarded for performance, it's certainly possible.

I briefly wondered whether the demoscene ever had a go at Java, and indeed they did: [http://www.theparty.dk/wiki/Java_Demo_1999](http://www.theparty.dk/wiki/Java_Demo_1999) / [https://www.youtube.com/watch?v=91HzuGqpTHo](https://www.youtube.com/watch?v=91HzuGqpTHo)

<comment><USER24> Yep I agree. Java isn't slow if you build a trivial application. Or an HTTP server. Or something for batch processing. Or if you're a masochist working around performance issues until you reach about ~C level of performance and performance "robustness".

The problem is what Java encourages you to do. And I didn't want to single out a language; Java is just one that I revisit from time to time and I'm always astonished how awkwardly hard it is to do the simplest things in a straightforward (and CPU-efficient) way.

And yes, there are a lot of slow C++ programs, and even slow C programs. There's just a clear tendency for C programs to be faster and more responsive.

<comment><USER26> > tendency for C programs to be faster

I was involved in a massive rewrite of a website from C to Java a while back. One coworker observed that, when they were coding in C, it took a lot longer to get anything working, but once you did, it was pretty solid: C had a tendency to just crash if anything was wrong, so you'd work for quite a while before you got something that didn't crash consistently. Java, on the other hand, allowed you to get something working (that is, running without crashing) much quicker: but the things that were out of place were still there, they just caused harder-to-find problems that were much more likely to become customer-facing before they were caught.

</comment></comment></comment></comment></comment></comment></comment><comment><USER27> Neat article, content wise. I wouldn't call it in-depth because it's very high level, but it is neat.

The presentation could be made much better by getting rid of those tabbed sections and just making the article one long page.

<comment><USER8> Thanks. The reason for the tabs is that each article has many sections (CPU, graphics, audio, etc) so I imagined some people may be more interest particular sections than others. For this, if you find something interesting, you can use the tabs to read more about it. Otherwise, you only have to scroll down a little bit. This behaviour is only found when viewed on a desktop pc by the way, mobile users will see a long page.

Anyway, I'm not a professional web designer, the tabs are just an attempt to keep the info concentrated.

<comment><USER28> I liked the tabbed sections, but I feel like they could use some differentiation from the rest of the content. For example, in the "limitations" tabbed section, I had to scroll down and flip through the tabs to determine where the tabbed content ended. Separating this out a little more would make it apparent that "changing this tab only changes this content," something along these lines (rough in-page mockup): [https://imgur.com/D2lhOwV](https://imgur.com/D2lhOwV)

<comment><USER8> That's a nice idea, I'll experiment with it. Cheers

</comment></comment></comment></comment><comment><USER29> Another great article about PSX architecture, with regards to the DOOM port specifically: [http://fabiensanglard.net/doom_psx/index.html](http://fabiensanglard.net/doom_psx/index.html)

I highly recommend the series about various ports of Another World on the same website as well.

<comment><USER30> Unfortunately there's no writeup or such about it, but I worked on a doomed (ha!) project to port Unreal 1 to PSX. I was doing level design at the time. The programmers did manage to get a functioning renderer up. It was limited to more simple geometry than the PC software renderer could handle at the time, but still worked enough you could have made a game on it, had other things not gone wrong with the project. If you search for "Unreal PSX" you'll find some work by a couple diehard retro unreal fans to try to finish up some of the partially completed content.

</comment></comment><comment><USER31> Is "page-flipping" basically double buffering or am I missing something?

<comment><USER32> I hadn't heard the term in a while, but I believe page-flipping more specifically means that the buffer roles can be switched in hardware (e.g. by changing a "framebuffer start address" register in the CRTC or RAMDAC) instead of requiring a buffer to be copied (e.g. via a DMA or blitter operation). Both schemes are double-buffered in the sense that you're never actively rendering to the same buffer that's being scanned out, but page-flipping has significantly less overhead.

<comment><USER19> When's the last time anyone produced a hardware platform where double- buffering required a full copy rather than just updating a pointer/register? PCs moved past that in the '90s at the latest, and I'd expect most other platforms that supported 32+ bit addressing on both the CPU and graphics processor were similarly capable of relocating the front buffer at will.

</comment></comment></comment><comment><USER33> It blows my mind that the little mobile device in my hand is able to not only render but actually interact with models at the touch of my fingertips that were once only possible with a major home console. How far we've come :)

</comment><comment><USER34> >1024×512 pixels with 16-bit colours or a realistic one of 960×512 pixels with 24-bit colours allowing to draw the best frames any game has ever shown…

One small detail that I don't see mentioned in the article is that the GPU cannot actually rasterize at 24bpp, only 15bits RGB555. 24bpp is mostly only used to display pre-rendered static images or video decoded by the MDEC. I seem to recall one 2D game that managed to have 24bpp gameplay but it was a clever hack more than anything else. Internally the GPU always functions at 24bpp however, it just dithers and truncates to RGB555 so an emulator can actually remove the truncation and run at 24bpp "natively".

Beyond that some of the GPU's limitations can be improved in emulators with more or less complicated hacks. In particular a modification called PGXP can be used to side-channel the depth and sub-pixel precision data to the GPU implementation to allow perspective correct and more precise rendering: [https://www.youtube.com/watch?v=-SXT-y0vKv4](https://www.youtube.com/watch?v=-SXT-y0vKv4)

It doesn't work perfectly with all games and it's fairly CPU-intensive but it looks pretty decent when it works well.

>MIDI sequencing: Apart from playing samples, this chip will also synthesise MIDI-encoded music.

I don't know what that means. I implemented the SPU on my emulator a couple of weeks ago and I'm not really sure what that refers to.

>The port of the controller and the Memory Card are electrically identical so the address of each one is hardcoded, Sony altered the physical shape of the ports to avoid accidents.

To expand on that: the interface always talks to both controller and memory card within the same slot, so when you talk to memory card 1 you also talk to whatever is plugged into the controller port 1. Then in the serial protocol the first byte tells who you're talking to (0x01 for pad, 0x81 for mc), and the other device is supposed to see that and remain in high-z.

So actually plugging a memory card in a controller port (or vice-versa) would work, the problem would be if you plugged two memory cards or two controllers in the same port, in which case they'd speak on top of each other.

Beyond that the protocol to discuss with the memory card and especially gamepad is, in my opinion, absolutely insane. It's over-complicated and under- featured. It's also incredibly slow (especially for memory card access).

Regarding copy protection:

>On the other side, this check is only executed once at the start, so manually swapping the disc just after passing the check can defeat this protection...

That works with most games, but later games were more clever: you could relock the drive and restart the init sequence early on to see if the drive really recognizes the disc.

It was also used as a protection against early modchips: since those would constantly stream the SCEx magic string to unlock the drive (instead of just during the first sectors like a real disc would) you could lock the drive, read some sectors that shouldn't be able to unlock it then re-check. If the drive is unlocked you know there's a modchip and you display a spooky message about piracy. Note that this technique would detect the modchip even when playing with an authentic disc so you'd effectively be unable to play the game at all on modded hardware.

<comment><USER8> Thank you for helping me improve the article. I'll take a closer look at your comments tonight.

</comment></comment><comment><USER35> Spyro looked a lot better without the textures IMO

<comment><USER36> Spyro without textures and only gourand shading looks like every mobile game from 2009-2019.

From the examples it looks like the textures in Spyro were mostly about hiding all the ugliness around the edges from the straight gourand shader output, aside from the characters.

<comment><USER37> I think Spyro is one of the best examples of Gouraud shading mastery on the system. The textures are there to add detail, in fact they had a basic LOD system for the environment where they swapped textured models with gouraud shaded models using the same tint for objects far away.

The skyboxes were rendered as well as meshes and then shaded, and they still hold up today from an artistic point of view: [https://imgur.com/gallery/vocZw](https://imgur.com/gallery/vocZw)</comment></comment></comment>


Show HN: Ora.pm: June Update - <AUTHOR> https://ora.pm/blog/june-update-2017 <comment><AUTHOR> Hey Everyone,

As some of you might know we launched [https://ora.pm](https://ora.pm) a new task management/team collaboration service in April!

Here is what's new in June's update:

\- New card from anywhere (N / cmd+N)

\- Quick @assign & [label] when you create a card

\- Natural language due date when you create a task (next friday at 11am)

\- Quickly open project picker with O / cmd+O start typing to filter projects

\- Items in "closed" lists look completed now

\- You can disable covers in board view

\- You can choose if new or completed items go on to or on bottom

</comment><comment><USER2> Keep up the good work!

</comment><comment><USER3> Well done boys!</comment>


Google recommends not to use end-to-end encryption for GMail. Why? - <AUTHOR> https://twitter.com/Tutanota_de/status/596278452732452864

<comment><USER2> Gmail is built around the idea of storing and searching your mail. How can anyone think gmail will ever _really_ support anything that makes its search function inoperative?

Independent of whether end-to-end encryption is a good idea, independent of how much the gmail maintainers care about advertising revenue (compared to their gmail-for-businesses product): How can anyone expect them to effectively disable the core feature of their product?

<comment><USER3> You can have your email downloaded locally and then you can search through it. With PGP you can still search by metadata anyway.

<comment><USER2> Sure, and only half-break the search function. Do you expect the gmail developers to like that?

Maybe it's a good idea. Or not. But it sounds a lot easier to set up your own server than to persuade the gmail developers to change the core priorities of their system.

</comment></comment></comment><comment><USER4> Hilarious. Great idea to tell people: Give us all your data, else we can't make your life convenient.</comment>


Things on the frontpage of a University website - <AUTHOR> http://xkcd.com/773/

<comment><USER2> Original source: <http://xkcd.com/773/>

Why wouldn't you just link to the original? At least they didn't try to pass it off as their own.</comment>


The Management Myth (2006) - <AUTHOR> https://www.theatlantic.com/magazine/archive/2006/06/the-management-myth/304883/ <comment><USER2> Posted previously, and well worth the (re)read.

Notably:

[https://news.ycombinator.com/item?id=11931270](https://news.ycombinator.com/item?id=11931270)

[https://news.ycombinator.com/item?id=581487](https://news.ycombinator.com/item?id=581487)

[https://news.ycombinator.com/item?id=1635499](https://news.ycombinator.com/item?id=1635499)</comment>


The man who owns the Internet - <AUTHOR> http://www.pickydomains.com/node/430

<comment><USER2> Ugh.

That is all.</comment>


Why your web framework should not adopt Rack API - <AUTHOR> http://blog.plataformatec.com.br/2012/06/why-your-web-framework-should-not-adopt-rack-api/

<comment><USER2> This can be worked around with stuff like rack-stream (<https://github.com/intridea/rack-stream>)

I'm the maintainer of a similar project for clojure called noir-async. Noir is built on ring, clojure's version of rack, and has no notion of streaming responses, but adding it in wasn't a problem at all (<https://github.com/andrewvc/noir-async>).

In other words, it's not a big deal. Most streaming code should really be a separate app anyway. Apps that deliver true streams probably need different infrastructure from say a rails app. You want a separate process running a reactor to handle concurrent IO.

<comment><USER3> "Most streaming code should really be a separate app anyway."

A great deal of the reason you are saying that is because it's too hard to do anything else today. That doesn't make it the right answer.

It is far easier to take a fundamentally-streaming stack and layer conventional request-response on top as a special case than it is to take a conventional request-response stack and layer a stream on top of that. It isn't even that much harder to do it right if you start with that from day 1, but I've had a devil of a time convincing anyone in the early phases of web framework development of that. ("Why don't you do it yourself?" I'm full up for spare time projects at the moment... and also, I'm really trying to resist adding yet another web framework to the world.)

Of course sometimes the right answer really is a separate app. But you should do that because it's the right answer, not because your stack forced you to do it that way.

<comment><USER4> "It is far easier to take a fundamentally-streaming stack and layer conventional request-response on top as a special case than it is to take a conventional request-response stack and layer a stream on top of that."

This is demonstrably true in that Rack/etc are themselves almost always built on top of conventional socket-based streaming APIs. Streaming APIs have been the norm, and yet people choose to put abstractions on top of them. Why? Mostly because it gives substantial improvements to application code, and turns the system into more of a set of contracts and less of a mushy touch- any-object-you-want system, which I think is fundamental to how streaming works, due to its imperative nature.

Using Rack or any of its equivalents, it would be fairly easy to allow a hole to be punched through the system to give a direct socket streaming API. Just toss the relevant objects into the request. It would violate the abstractions of Rack, any middleware, etc. But you can do it, and it would be easy. It's not unlike using Rack instead of the abstractions Rails puts on top of it – arguably it can be useful shortcut parts of the stack.

Why don't people do this? Mostly because no one cares to. It's not that useful or interesting or testable. It's noticeable enough that people complain about it, but not noticeable enough to be worth it to take the hit and use a more imperative API.

<comment><USER3> I would submit you also have the causality backward and are also talking about the results of the current factoring, not the cause. It is definitely not true that you have a choice between response/request and an abstractionless formless mass of a socket. I offer you XMPP as one readily-available counterexample. HTTP itself, if properly and fully implemented, is actually another. It worked itself into a streaming protocol, and many frameworks never noticed. This is part of the reason this cheeses me off so much, because even the putatively-HTTP frameworks can't actually speak the fullness of HTTP. Oh, and good luck supporting the full range of SPDY in your request-response framework.

The idea that streaming can't have abstractions put on it is beyond bizarre.

</comment></comment></comment></comment><comment><USER5> Nice article, Jose!

For those interested, Aaron Patterson (tenderlove) talks about this in his RailsConf talk, starting at 26:45.

<http://www.youtube.com/watch?v=kWOAHIpmLAI>

</comment><comment><USER6> One approach we've experimented with in JSGI is a similar API to Rack but with the addition of promises to add an asynchronous mode of operation. It's theoretically elegant, but a bit awkward in practice.

<comment><USER7> Theoretically elegant, the best kind of elegant.

</comment></comment><comment><USER8> <http://stratajs.org/> is a nidejs framework designed to take advantage of streaming. It still uses a rack-like API though.</comment>


A bachelor's degree could cost $10,000 total. Here's how - <AUTHOR> http://www.washingtonpost.com/blogs/wonkblog/wp/2013/09/26/a-bachelors-degree-could-cost-10000-total-heres-how/?print=1

<comment><USER4> How I plan on getting a bachelor's degree for ~15k.

1\. Go to a community college in a county that you are a resident for your two-year associates. The money I'm getting from Pell grants is paying my 18-credit hours per semester tuition right now (Roughly $120 per credit hour tuition). Books on top of that are costing me about 300 a semester (buy cheap old editions as much as possible). I've gotten scholarship money to cover that, and I'll also get Tax credit money.

2\. Transfer to an in-state 4-year public university. Tuition rates will double for me during this transition, but YMMV (I'm in Maryland FYI). The hike in tuition will cost me about 7k a year for two years. Hence ~15k out of pocket for a degree.

Moral of the story: If you really want a premier education where you will be learning from those on the forefront of research, by all means spend 100k at an elite private college. If you want to be part of academia or research projects this is probably the route you have to take.

If instead you know what career you are going into and you have a desire to learn those skills on your own, then go the cheap route and just get the piece of paper to prove to HR you are worthy of a job.

*Obviously some careers might not fit this model, but I'd guess most people throwing money away at private universities could go this route with the same basic outcome.

<comment><USER5> The only issues I see with this is the peer effect, where students play to their playing field. Intelligent and motivated students placing themselves around less intelligent and less motivated students will often find themselves doing worse too, even up to not graduating. I myself know I am susceptible to this and try to push myself be being around other talented people. Not saying that there aren't intelligent and talented people in community college, but it may have an impact on your performance.

The other issue is missing out on extracurriculars. I learned a lot on my student news organization and got to experiment with building websites and trying out new special features (this was back when news orgs were a lot more cautious on the Web). It helped me get my first few jobs. It also helped me make a lot of connections (same with just going to the same school for four straight years).

If you go through with this plan, join some organizations as a junior at your four-year institution and get to know people outside of class. Connections matter a lot. Also, join professional organizations and go to conferences. You don't have to start doing that while a student, but it can't hurt either.

Luckily you're in Maryland where we aren't cutting higher education left and right. College Park is one of the better state schools, and it's pretty affordable still.

<comment><USER4> Good points, I suppose I was looking at it from my POV. Even before I started going to college I've loved learning on my own and developed an enjoyment of computers, so it doesn't matter much to me motivationally who my classmates are. Not to sound cocky, but the Intro classes I'm going through are already below my knowledge level (except some of the Math). By the time I'm hitting the higher level courses I'll be at the 4-year university.

I guess it depends on the community college, but I imagine most of the larger ones in major metro areas have extracurriculars that somewhat rival large universities. Here in Baltimore Co. there are a lot of clubs and the student newspaper is a pretty decent production[1].

Still I get what you mean about connections, especially in some of the more social disciplines like business. But for me (Comp Sci) it wouldn't be worth the extra 60k+, and I actually already have some connections into the field through family. Nepotism works for me :D

[1][http://blog.ccbcmd.edu/connection/](http://blog.ccbcmd.edu/connection/)

</comment></comment></comment><comment><USER6> From the article:

"So why not do it?

"Kamenetz's plan doesn't lack for details. An as-yet unpublished appendix lays out exactly where spending at Cohort Colleges and Adult Online Us would go, down to the instructor salary level. But it also would uproot thousands of workers in the higher ed sector and radically change the careers of those who remained. Kamenetz acknowledges the concern, but thinks reform is too important to not do something drastic.

"'I recognize the political pain involved, but the purpose of public higher ed is to educate people, not to employ them,' she e-mails. 'One of the travesties of the current system is the percentage of classes taught by low-paid adjuncts. I envision a system that might have fewer jobs, but they're better jobs.'"

And my comment on that is that this always requires political courage. To make a large government appropriations plan (and higher education is often the second or third largest budget category in a state budget) work, you have to keep your eye on the people who are supposed to be served by the program. But the people who are employed by the program will almost always be more organized to lobby for their benefit before the state legislature, especially because they can use purported benefits to students as a fig leaf for demands for more administrators and less checking of the effectiveness of how higher education is delivered.

Most of the suggestions in the article seem sound. They also sound rather radical compared to what is usually proposed to improve the bang for the buck of colleges in the United States. It will be interesting to see how much uptake there is of any of these ideas.

</comment><comment><USER7> Or $0, if the sheepskin, corrected homework and grades won't matter. Audit classes at the large institution of your choice means just sitting in on whatever lectures you like. In big lecture halls, even with attendance, it's really quite simple to go unnoticed. Interactive classes JD/MBA might get dicey, but otherwise the worst that can happen is you get thrown out. BFD.

Also, Coursera, Udacity, OCW, Kahn and iTunes

Pluses of going legit:

      - dorm life is a unique experience unlike any other, worth it just for that
      - <USER2>
      - according to Thomas J. Stanley, college is by far the best place to meet a quality spouse
      - monetize pizza [0]
      - pedigree if it's a big name or hipster elite school
      - paid internships
      - hustle yourself into a paid ugrad research assistant gig
      - <USER3>
      - meet potential cofounders

Hazards:

      - alcohol spending
      - textbook costs (buy used and sell them back)
      - dorm food -> "freshman 30"
      - all-nighters
      - unpaid internships
      - min wage jobs on campus

[0] [http://m.reviewjournal.com/business/economy/better-slice- hsi...](http://m.reviewjournal.com/business/economy/better-slice-hsieh-traces- genesis-business-operations-pizza)

<comment><USER8> I've found that the smallest classes at my school have also been the most rewarding.

Sure you could sit in every day on my morning Thermo lecture and go unnoticed, but I've learned very little in that class that I couldn't already get out of an excellent textbook.

On the other hand Pharmacokinetics meets once a week in the professor's office. He also happens to be one of the leaders of the field. For two hours a week we get to discuss complex pharmacokinetic practices, ask open ended questions and, as he would say "learn how to learn". Museum Display Theory also meets once a week off campus with the head curator of the city art museum and today we discussed Foucault's Panopticon as it relates to museum curation.

These are things worth paying for, or as in my case, working hard enough to get financial aid for.

<comment><USER7> For sure. Most people get ripped off on general electives at big brand schools.

Caltech has/had pretty awesome staff/student ratio.

<comment><USER8> > meet potential cofounders

So true. The people I'm planning to do my startup are battle tested. We've pulled all nighters, dealt with high stress situations, and come out of it as friends. We know each others work habits, strengths and weaknesses.

All of that is going to be really important when we'll have just graduated with probably no funding.

</comment></comment></comment></comment><comment><USER9> Kind of a non-sensical article that conflicts with itself:

1\. spend less on admins and have massive class sizes 2\. spend less on sports, food, dorms, and other perks 5\. cut most of the majors

vs.

3\. oh, wait, another school reduced costs by spending more on personal instruction and having micro size classes because students actually graduated with less trouble - let's do that too! 4\. offering more variety in learning methods actually proved successful, not less, so do that too!

</comment><comment><USER10> This -- and other similar -- ideas are great and certainly feasible.

Unfortunately, it'll never happen because there's simply too much money involved in the academic world. The people running the educational institutions, the people running the corporate world, and the people running government are all good friends and none of them want to do anything to screw over the other.

<comment><USER11> Sure, they can deprive the idea of state funding, and discriminate against it in credential-centric systems.

But ultimately, if you can manage a nearly-as-good (or in some cases, better) education, for $10K true out-of-pocket cost rather than $200K+, then eventually a lot more people will complete, and be loyal to, the $10K system than the legacy $200K+ one.

</comment></comment><comment><USER12> This is what it cost me in New Zealand - with the fairly notable exception of the taxes I now pay to help others though their degrees.

<comment><USER13> May I ask how much your taxes are?

People in NYC or California making $200K/year often pay >40% (getting close to 50% if you are in the $300K/year range) of their salary in taxes (33-35% federal, 8-13% state, and then there's sale tax. And estate tax) and get no reasonable-cost tuition nor reasonable-cost healthcare.

Every time this discussion comes up, US people are quick to quote federal tax rates but when I compared actual rates in NYC and CA, it seems like americans pay comparable taxes, and get nothing in return.

How does NZ fair in this respect? What's the real tax like (remember sales tax / vat), and what do you get for it?

<comment><USER14> Income tax is around 30-35% depending on income. There's a 15% GST applied at point of purchase, so you don't really notice it, and if you're a business it can be claimed back.

The NZ Government provides free student allowance (a few hundred dollars per week living allowance for your first 4? years of tertiary education, means- tested against your parents' income, not paid back) as well as interest-free student loans (for as long as you stay within the country).

<comment><USER12> I agree with all this. Just one addition - fuel is taxed quite a lot and in many places here a car is a necessity as public transport is poor. Its a bit over $2 per litre. Edit: Property taxes are about $2k per year on an average house in Auckland. An average house is about $500k in Auckland as the New Zealand love of property makes the market rather expensive when compared to income. I'm using NZ dollars.

</comment></comment></comment></comment><comment><USER15> $10K Isn't too far off from what tuition for my EE degree cost in the late 80's. Even adjusted for real inflation it shouldn't be a penny more than $20K, possibly as low as about $15K today. That was of course at a state school.

The somewhat counter-intuitive answer is that _easy money_ has increased the price of education, in this case _easy borrowing._

The same phenomenon is responsible for almost all bubbles in modern history. Interest rates dropped and qualification criteria got loose and house prices tripled in some areas, also rising in almost all. VC's got sloppy and we had the dot-com bubble.

The serious problem facing America today is that _easy money_ is already flowing yet this bubble is also called "barely getting by as a nation."

<comment><USER16> _The somewhat counter-intuitive answer is that easy money has increased the price of education, in this case easy borrowing._

Based on my reading of Archibald and Feldman's book _Why Does College Cost So Much?_ , that doesn't seem to be the case: their data show that Baumol's Cost Disease is the real culprit.

</comment></comment><comment><USER17> Is there any data showing that the cost of college is increasing?

I know the _price_ (i.e. tuition) is increasing, but this is due to colleges increasing tuition rates to make up for shortfalls as state budgets for higher education are cut. But I haven't seen any data showing that the costs have risen.

It's also worth noting that the #2 suggestion is mostly just an accounting trick that would increase the price to students, not decrease it. If "perks" like room and board aren't provided out of tuition, students will have to pay for that somehow anyway - they're necessities, not perks. And removing state subsidies for those things means that students will be paying even more, if you add up tuition + room + board.

<comment><USER18> I've got absolutely _no data_ to support this, so make no mistake that this is anything other than the wildest speculation:

The feeling that's "in the air" is that what's really happened is buildup of too much management in the school systems. There seem to be far more "managers" per professor than there were before, and those managers are being paid far to much, especially in comparison to the professors doing the actual teaching.

It's pretty classic: most large-ish universities have marketing departments (or hire marketing departments), large non-educational functions and services that take up tremendous man power, overly large "cultural" aspects like sports, and many more.

The cost of educating hasn't really changed, but that's not what most universities are focused on doing anymore.

<comment><USER17> This article[1] from the WSJ shows that administration varies between 3-10% of education spending. So probably not a significant driver.

[1]:[http://graphics.wsj.com/documents/NONCLASS1212/](http://graphics.wsj.com/documents/NONCLASS1212/)

Unless there is data showing otherwise, I would argue that costs haven't changed, only the price.

The cost of providing education in 2013 at University of Washington is a little less than it was in 1990: $16,800 vs. $17,000. The difference is that in 1990, the state paid for 82%, where today it pays 29%.[2] That's where your tuition increases are coming from.

[2]:[http://www.washington.edu/discover/budget/](http://www.washington.edu/discover/budget/)

</comment></comment></comment><comment><USER19> How about go to an in-state school, get a scholarship (many go unclaimed every year), and get an on campus job?

I, along with many people I know, got paid to go to school this way.

Why people are paying tens of thousands of dollars a year/semester is beyond me.

<comment><USER20> I never got the whole scholarship thing. All of the websites that advertise them sound like scams.

I'd prefer to get an online bachelor's degree if they existed.

<comment><USER19> Most schools have lists of scholarships that are applicable to the school. No need to go to third party websites.

</comment></comment></comment><comment><USER21> Universities are like any large organization, mission drift occurs and keeping your customers happy can means offering non-core services in a bundle.

I think the real trouble is that college is still awesome for people who can afford it. It's like anything in capitalism, whatever the people who can pay want is what happens. I read an article awhile back that discussed how one of the private schools in NYC was building new luxury student housing and sending limos to pick students up from the airport, that's about as far from these recommendations as you can get.

The point is that change isn't going to come from the elite schools, not _real_ change. They may offer online programs and such, just dabbling really, but they have no trouble attracting wealthy students and donors, so they have no real incentive to radically change what they are doing. At best, they may tack on some extra programs under different names that just further cement the inequality in education we have in the US.

So, change needs to come from the bottom, from the small state schools and community colleges whose students are struggling to fund their educations. But state schools are on strict budgets, and small ones have small endowments. So _real_ change won't come from there either because those institutions can't afford to make such radical changes, they literally don't have enough money. All they can do in many cases is what they've been doing in the past until they can't do that any more and then they can close up shop.

Either way, I personally have a pretty bleak view of the future of higher education in the US.

</comment><comment><USER22> The education that Kamenetz describes could be offered for free at wikipedia.org.

By removing research, extracurriculars, sports, and on-campus living, she is paring a university education down to a simple exchange of knowledge, which is free online. These things all add to the essence of college, a place to transition from a child to an adult. The value of college is not what you learn in classes, but the personal development you go through by taking leadership positions in student organizations and pursuing passions with other young thinkers.

University is expensive because it's an adult development camp in addition to a knowledge exchange. The most expensive camps produce well developed, open minded individuals who are generally better positioned to succeed. I'd be surprised if I'm using anything I learned in a classroom even 5 years out of college, but the lessons learned outside the classroom will stay with me for life.

</comment><comment><USER23> My problem with the online course idea (aside from the fact that this is pretty much already available) is that it lacks interactivity. The only reason I went to half of my lectures as an undergrad was because I could ask questions and get an near instant, expert response.

And sure, it's possible to pause a video lecture and look something up, but in my experience, it's just not the same. If I'm trying to understand something for the first time, and a part of the lecture just doesn't _quite_ make sense, I want the transaction cost of clarifying a point to be as low as possible.

</comment><comment><USER24> The LDS (Mormon) Church has a new program for members to get an online bachelor's degree from BYU-Idaho for a total tuition cost of $7,800 [1]. Judging from member/non-member tuition on campus, that's probably subsidized at a rate of 1:1, but even $15,600 isn't too bad.

[1] [http://www.byui.edu/online/pathway/tuition](http://www.byui.edu/online/pathway/tuition)

<comment><USER25> BYU in Provo is still less than $10k tuition over 4 years and is arguably a much more prestigious and well rounded school.

Also important is the abundance of merit based scholarships at both schools. I know many people who were on either half tuition or full tuition scholarships their whole 4 years.

<comment><USER24> Tuition for members would be $19,400 (8*$2,425) over four years [1].

(I was one of the lucky ones with a full+ tuition scholarship. My wife had a half-tuition athletic scholarship, which was essentially full-tuition because her dad is faculty so she only had to pay half.)

[1] [http://finserve.byu.edu/content/tuition-and-general- fees](http://finserve.byu.edu/content/tuition-and-general-fees)

</comment></comment></comment><comment><USER26> Alternate degree structures and modes of instruction are definitely worth exploring.

Points #1 and #5, though, would likely not go over well with current university faculty. Reshuffling of faculty roles seems much better designed by those with classroom/advising experience. And who's to judge which are similar or niche fields of study, besides departments themselves?

</comment><comment><USER27> Have young american students looking for a university ever thought of studying abroad ? I mean hell, my (swiss) bachelor's degree costs 580$ a semester, so 3480$ ... Add 1160$ and you have a Master's degree. Average salary is between 84K$ - 96K$ / year when I'm done. Even with a foreign diploma they can come back to the US if they want to work there.

</comment><comment><USER28> 10.000? Is this affordable for people who make no money? We're talking about people aged 18-22. Do they make money? How the hell is it fair to elect people by the wealth of their families?!

Come on people! Don't you see the huge discrimination?

This system is a blood sucker. Please demand a real change instead of dealing with it

<comment><USER29> $10,000/k for a Bachelor's equates to about $15 per a class period. At a class size of 30 that is $450 per class in revenue for the school. A professor spends 2 hours a week doing prep, 2 hours a week in office hours, 2 hours grading and 2 hours in class. Lets say overhead is 40%. That is equivalent to ~$30 dollars an hour to teach a class at 8 hours a week. Teach four classes and you are at ~40 hours a week. That puts you at about $50K a year after taxes. Most professors teach 1 or 2 classes a semester to leave time for grad students and research. --- are my assumptions way off here? 2 classes would mean $25k a year -- poverty line for family of 4.

<comment><USER28> oh, dude, seriously, there is no school outside of US, right?

<comment><USER29> IT is a Washington Post story about universities in the U.S. -- but okay, change the currency, doesn't matter.

<comment><USER28> Sorry, but, what the fuck are you talking about?

Do you know the amount of the universities that you can study for free?

Dozens.

and I mean: no fee at all. I studied in three of them. And one of them was a great university with a lot of foreign students. Teachers were quite good. And I was also served high quality food (much better than the garbage you pay for every day) for free, every morning, noon and evening.

Open your eyes bro. Not so many people are able to pay thousands to the schools. And my point here is to tell your kind of god damn middle class; start considering everybody.

Don't be one of those fucking selfish dicks.

<comment><USER29> You are confusing free with government or someone else pays. I hope you continue on with your education, gl.

</comment></comment></comment></comment></comment></comment><comment><USER30> Link to the non print-friendly version: [http://www.washingtonpost.com/blogs/wonkblog/wp/2013/09/26/a...](http://www.washingtonpost.com/blogs/wonkblog/wp/2013/09/26/a-bachelors- degree-could-cost-10000-total-heres-how/)

</comment><comment><USER31> How? Lower prices. Tuition+Fees used to hover around 10k total at public institutions.

<comment><USER13> The high prices are a symptom. The cause is cheap student loans:

Since it is easy to get a loan, people will borrow as much as needed to get to the highest tier institution that will accept them. The private ones can thus increase their prices, and lure the staff with higher salaries. Now the public institutions need to level up salaries of professors and administrators, or they will leave for the private institutions.

That has been happening over the last 20 years. Remove the government guarantees for student loans and make them dischargeable in bankruptcy (that is, return their status to a normal loan, from the special status that they have now) - and all of a sudden, lenders will start caring about making reasonable loans, people will have less credit to spend on education, and the prices will go down significantly to a reasonably supported level.

(It is likely to cause an implosion of the higher-ed bubble in the US in the process. So be it - popping this bubble is long overdue)

<comment><USER32> Quartz has some great charts showing the outstanding US Student Debt:

[http://qz.com/search/student+debt](http://qz.com/search/student+debt)

<comment><USER31> [http://qzprod.files.wordpress.com/2013/09/outstanding-us- stu...](http://qzprod.files.wordpress.com/2013/09/outstanding-us-student-debt- in-trillions-of-_chartbuilder.png?w=1024&h=576)

That's depressing.

</comment></comment></comment></comment><comment><USER11> Economist Garrett Jones has observed that by the signalling-theory of education, the race for ever-more-degrees is an individually-attractive but net-socially-destructive activity, almost like pollution… and generally you don't want to subsidize pollution:

[http://econlog.econlib.org/archives/2012/09/degree_pollutio....](http://econlog.econlib.org/archives/2012/09/degree_pollutio.html)

As a few of the comments there note, this could actually form an argument for _taxing_ rather than _subsidizing_ schooling.

I believe the reasoning can be refined (as my bottom-most comment there notes): actual education still has positive social externalities. It's the granting of prestigious, rationed credentials that leads to the negative-sum competition, institutional rents, and growing costs.

So maybe, we could subsidize education… but tax credentials. The unbundling of education and assessment, as is happening with online offerings and could be further encouraged by policy, could make this easier.</comment>


Google now reporting Manual Penalties in Webmaster Tools - <AUTHOR> http://googlewebmastercentral.blogspot.com/2013/08/manual-actions-viewer.html

<comment><AUTHOR> This is really big news, as previously it has been a real case of detective work to confirm that Google have applied a manual penalty to your site, and it obviously can have an enormous effect on businesses.

This is a great move towards transparency from Google, and is very welcome. My only concern is that the language does not confirm that _all_ manual penalties are reported here; it may be that it is just a subset. I'd like Google to clarify that, but otherwise this is a great step.</comment>


Playing the CEO Card - <AUTHOR> http://www.xconomy.com/seattle/2014/04/01/playing-the-ceo-card/ <comment><USER2> My experience as CEO was that my job was to keep everyone focused and pulling in the same direction. The best way to do this was to communicate clearly and on multiple levels the reasons for doing something and also outline the opportunities the expected outcomes will create.

A good CEO is one that needs to play the CEO card as little as possible due to a mastery of the referent, expert and reward power. If you have to use the threat of punishment to get someone to do something it's already too late.

<comment><AUTHOR> (OP here) I wholeheartedly agree. Obviously you can't run around firing people willy-nilly. Once you realize that that's really your only recourse, and that it has to be a bastion of last resort, you can focus your time on the real meat of your job: hiring and inspiring.</comment></comment>


How Mind Control works. - <AUTHOR> http://reflectionsinthenight.com/mind_control.htm <comment><AUTHOR> This has always reminded me of how fragile the human condition is, and how similar people are to the computers that they build. Little late for the American Independence Day, but whatever.

</comment><comment><USER2> Kenny Craig's pretty good at mind control: <http://www.youtube.com/watch?v=H70tFbCAKNo>

</comment><comment><USER3> Sociopaths are samuri ninjas at mind control. Read this:

[http://antimisandry.com/mens-health/venus-dark-side- female-s...](http://antimisandry.com/mens-health/venus-dark-side-female- sociopaths-emotional-manipulative-abuse-against-men-18904.html)

</comment><comment><USER4> If most of the world would stop watching television, movies, playing video games and listening to copious quantities of audio media, it would be a much happier place here.

Also, read Eckhart Tolle.

Learn to be present.</comment>


US Chamber of Commerce Thinks Google is the Worst Company in America - jim-greer http://www.benningtonvalepress.com/2013/01/us-chamber-of-commerce-names-worst.html

<comment> jim-greer Their yardstick of quality seems to be how tightly the company can squeeze their employees...

Some of this seems too evil to be true - that incentive bonuses paid to employees should instead go to their executives?

<comment><AUTHOR> I was shaking my head the whole time in disbelief.

Then I got to the footer: "All stories published on this site are works of satire and parody."

<comment> jim-greer hah, they got me</comment></comment></comment>


Awesome business organizations - <AUTHOR> http://slid.es/altras/awesomebusinessorganizations

<comment><AUTHOR> Also I found that it's more productive to be responsibility focused organization [https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak- ash3/13816...](https://fbcdn-sphotos-b-a.akamaihd.net/hphotos-ak- ash3/1381637_317313408410738_410630688_n.jpg) :D

</comment><comment><USER2> Cool! :)</comment>


Zynga wants me to change the name of my product - <AUTHOR> http://jtame.com/2013/05/16/zynga-wants-me-to-change-the-name-of-my-product/

<comment><USER2> Whether or not the charge holds any water, it isn't any surprise that they would come after the author. "xWithFriends" is something Zynga/Whoever Zynga Acquired came up with, and chances are if ScrabbleWithFriends didn't exist/wasn't extremely popular, the author would have chose a different name for his app.

This is no different to me than Facebook and Apple having a hissy fit over the "*book" and "i[A-Z][a-z]+ terms". I don't think its any stretch of the imagination that someone might associate "CupidWithFriends" with Zynga or any of the related apps.

Just think of the shitstorm that would happen if Google were to name their self driving car the "iCar." Whether or not Google could say "well its not consumer electronics, its an automobile." doesn't change the fact that most people would initially believe that is was Apple's car, not Google's.

</comment><comment><USER3> This isn't a matter of who is right but who wants to spend more money on lawyers. Which you have to do if you decide not oblige.

Been there. Done that.

If its not too much hassle just change the name.

You could also wait and see if they pursue it farther before doing anything. But companies with lawyers don't have much to lose when it comes to going after little guys.

</comment><comment><USER4> CupidWithMates, for those Aussies and Kiwis among us.

</comment><comment><USER5> It'll never make it to court. Simply a scare letter. Safe to throw it in the trash and forget about it.

<comment><USER6> That's a fairly cavalier attitude to a mater that can get very costly. Scare letter or not, this is definitely a case where you better err on the side of caution.

<comment><USER7> If they were serious, they would have sent more than an email.

</comment></comment></comment><comment><USER7> "Dinner With Friends" is a play that won the Pulitzer Prize in 2000, but I'm sure there are earlier examples.

[http://www.amazon.com/Dinner-Friends-Donald- Margulies/dp/155...](http://www.amazon.com/Dinner-Friends-Donald- Margulies/dp/1559361948/ref=sr_1_13?s=books&ie=UTF8&qid=1368836845&sr=1-13&keywords=with+friends)

<comment><USER8> This is a trademark issue-- not copyright. "Likelihood of confusion" on the part of the consumers is the main standard. Seems unlikely a a judge or jury will find that the reasonable consumer will conflate the app and the play.

<comment><USER7> Sure, but trademark is vulnerable even more than copyright on issues of generic construction.</comment></comment></comment>