I read this book, it was truly jaw dropping to see the "Guanxi" system at work.
From what I could tell, there is a whole system of unwritten rules about how different political factions could collect their "percentage", how these factions compete with each other and eliminate each other and so on.
In a way, it is efficient because everyone who matters (i.e. princelings who control the CCP) has an incentive to "play the game". It is efficient because there are no nasty courts to slow you down, you don't have to deal with the lowest bidder nonsense - it all comes down to connections. The party credibility and the need hold power serves as a very powerful check on the system to prevent the system from becoming too blatantly corrupt and keeps the system going.
But if you aren't someone who matters - i.e. a princeling, you will be forever on the outside looking in.
I seriously doubt Amazon would risk mail fraud (and a bevy of other federal charges) over this. If they get caught in a criminal case (not civil), they could be completely shut down.
I once saw some article about them writing their own rich chat client for their internal tooling because their existing solution wouldn't "uber scale" - whatever that meant.
Soon Java will become the new PERL with 20 ways to do the same thing & developers will have to spend hours on Google trying to figure out what that wierd bit of syntax actually does.
MIT's was (is?) heavy on theory, light on coding practice. I still think it was a pretty good program, they just expected that you'd learn to program outside of class.
I found them very challenging and interesting. It took me a few weeks to complete them, and I didn't even do the "project" part which was more open-ended.
Right, the labs were the major exception (and by far my favorite part, even though they tended to involve a lot of sleeping on things other than beds).
I'm not an MIT grad, but this has been my approach over the past few years when I decided I needed to educate myself on more paradigms rather than more languages. I found it less helpful to expand my skillset of similarly-styled languages and far more helpful to learn languages that are fundamentally different than the ones I already knew. Basically, I decided I should learn Lisp instead of yet another C-style language.
The end result is nice little feedback loop of far better understanding of the theory and concepts behind the code that I write feeding into writing better code, which then feeds back into better understanding. So now when I help peers (especially friends still in college), I focus less on the language and more on helping the concept click for them.
I can't say how well this works in practice in a university -- it sure seems to work for MIT -- but I know that in my professional life it has made just about everything I do far easier to reason about and my work is all the better for it.
I took the 6.001 edX courses a while back. Introduction to Computer Science and Programming in Python--actually broken in 2 parts for edX.
Yeah, it came across to me that the expectation was that you'd learn to program mostly outside of the course. Or, really, that you already had a reasonable grasp on the basic concepts. Otherwise I think that course would feel to most people like being tossed into the deep end of the pool from a great height.
To be sure, with the campus version of the class there would be recitation sessions and other resources to get help on the programming side. There's also a companion textbook that goes into more Python details. But that's certainly not a class to "learn to program," much less how to work on a command line, use an editor, etc.
That may be reasonable for an MIT CS curriculum but most other majors probably don't have the same degree of implied prerequisites.
Yeah, that was a pretty common feeling in 6.001, especially among those who hadn't done much programming in high school. At the time, it was taught in Scheme (a Lisp), which no one I knew taking it had any experience in, so everyone was on sort of equal footing there, at least. And more generally, it seemed to be a pretty common approach there to throw students into the deep end and let them figure it out - people liked to compare the experience to trying to drink from a firehose :-D. I'm not sure if it's optimal for learning the material itself, but it does make jumping into new subjects seem less daunting after you've gone through that a few times.
There's probably an expectation these days that students have some degree of exposure to computers. When I took an intro to computing course (FORTRAN) it was pretty much no expectations. But times have changed.
And I found 6.001x useful. But then I had a lot of experience with computers even if not programming full-time professionally.
I didn't touch a personal computer until a few years later in a job where we had an Apple II to do some engineering calculations. High school was BASIC using a teletype connected to a local community college--and that was pretty forward looking at the time.
But I didn't really use a computer to speak of (other than as a text editor in grad school) until I was working--and later got into programming as a hobby.
I'll tell you why - try to update one column in 100GB worth of row data.
Postgress makes a copy of _every_ row and you need 100GB of extra space on the hard-drive until you commit the transaction. Now extrapolate to a 1TB table that needs updating.
Oracle has a way of doing this w/o copying the entire row.
> Postgress makes a copy of _every_ row and you need 100GB of extra space on the hard-drive until you commit the transaction.
This only happens if the column is indexed, heap-only-tuples will allow in-place updates otherwise. This doesn't dismiss it as a potential problem entirely, but depending on your needs you may never run into this.
I would argue thats an issue with your architecture at that point - you may want to use table partitioning at sizes that big, or have some other mechanism in place to be able to lock access while updating such large data sets in one go.
I would generally agree, though there are unfortunately limitations imposed on you the moment you start using partitioning with PostgreSQL (foreign keys remain to be a big one).
I use DuckDuckGo for search & Twitter for social media. I find discovering new things/People on Twitter more interesting than the sclerotic family/friends stuff on Facebook.
I switched to DuckDuckGo - it isn’t as good as google, but it is 90% of what I need. For the rest I have to slightly tweak my search criteria - but that is not a bad thing because it forces me to use my little gray cells.
YouTube and Gmail substitutes and then I am Google free.
Have you looked at protonmail and Vimeo? Both have somewhat of a free offering, although the main product is a few bucks. You know what they say about that though, you being the product and all.
For maps, check out openstreetmaps. Not quite as good as google, buy pretty solid. And you can run your own instance.
Heck, you could also run your own email without much hassle.
I got tired of being a cog in the Amazon machine and bought some merchandise from Jet.com last week. It was a sub-optimal experience.
This is what I bought:
-> $4.22 Q-tips Cotton Swabs 500 ct
-> $16.32 iPhone 5/5s, iPhone SE, iPod Touch 5th/6th Gen Adidas Nylon Armband Case - Sports armband for adidas miCoach training system
-> $6.95 iBungee Stretch Laces (26-Inch, Black Laces with Black Race Lock)
-> $4.79 4 Philips AA Zinc Chloride Double A Batteries R6 1.5V Super Heavy Duty Battery
-> $8.10 Monoprice Apple MFi Certified Lightning to USB Charge & Sync Cable, 3ft White
-> $89.96 ASICS Men's GEL-Kayano 23 Running Shoes T646N
The order for the phone arm-band was cancelled and everything else shipped _separately_ - I Literally got 5 different packages in the mail - over a week with different items.
Had I gone with Amazon, I would have received - one, maybe two packages with everything. Infact, Jet probably lost money on most of the items they shipped to me.
Us techies sometimes tend to forget the real world (in this case customer experience) while playing with cool technology.
To me, an old fashioned optimizer running on a 15 year old AMD Opteron that delivers the appropriate real-world result is worth more than that F# and CUDA thing that seems to have over-optimized the problem to create a bad customer experience (getting 5 packages in a haphazard way).
Its a little more complex than that. Batteries must be shipped seperately, as per regulations. You are assuming everything shipped form same warehouse.
I don't know if this is still the case but Jet doesn't handle fulfillment for all of the items on their store. I've bought stuff on Jet that were shipped from over e-commerce web sites.
Have you considered that F# CUDA and the delivery situation are not causally related? Maybe a good optimization system is programmed with bad constraints.
Wow the prices are incredible. At walmart grocery they list 500 swabs for $2. In the store, zinc batteries are $1 for four. However on the site they aren't even shown and want you to buy alkalines for $3. But zinc batteries are 24 for $0 at harbor freight with their regular coupon.
Walmart's online orders come from a million places similar to your Jet experience. I used it all the time, when the online prices were identical to the in-store prices. Spend $6 more to get free shipping! Ok, I'll take 50 pounds of cat litter, hope the UPS finance dept thanks you. I wonder why they put a stop to this :(