skysight-inc/HackerNews huggingface dataset:
tl;dr Location-based photofeeds are like surveillance cameras and give you a taste of a destination in real-time to help you make a decision.
I remember watching this video here, a while back. Has Google stepped up in defense of Austin yet?
The problem with design patterns and SOLID is that they're sometimes followed in a cargo-cult like manner. You don't necessarily get good code just following a set of instructions. You have to apply common sense, and know the tradeoffs of various approaches. Experience is the most important think to have, and it's something I lack, admittedly.

CS is no substitute for that, but it's still an important part of getting it. It gives you a set of tools and a lexicon for understanding what's going on, and understanding some kinds of tradeoffs. As somebody who is just trying to figure all this stuff out, this is invaluable.
Knockdown Karate is still a part of many top fighters' arsenal. K-1 was started by Seidokaikan martial artists.

That's just not the kind of thing folks are learning at their local Tiger Schulman's. Also the political drama surrounding the split of Kyokushin has caused it to virtually disappear in most areas.
Shouldn't it be safer to be seated backwards in most situations? I doubt that children will be injured by accelerating, but in most crashes backward seating should be of advantage
How frustrating.

That person was clearly true. It's a deeply unpopular idea over here though, even though very few meds are recommended against on pure cost grounds.
The big equalizer in mature justice systems is a strict set of laws that regulate and restrict the instances in which evidence can be gathered and used in a courtroom. I think it's inevitable that technology is created, but not inevitable that it will be abused, at least, to the level we fear. However, this is ONLY if those checks are put into place. It requires a critical legislature to write balanced laws, and a strong judiciary that can hold investigators to account and throw out illegal uses of this technology in cases where it's abused.
That's interesting. For some reason, I was under the impression Oracle had basically killed off the hardware development portion of Sun. I don't recall where I got that idea though.

Good to see new developments in this line. The more (open) hardware platforms the better, IMO.
Just to be clear, its 2016 and you're snarkily attempting to put down an electric car that costs ~100k and does 0-60 in 2.5 seconds because its a second slower on the quarter mile than a Ferrari that costs >10x as much and isn't electric?

sigh.
Credo: Static code analysis for Elixir with a focus on consistency and teaching
IME drivers fume with rage no matter what I do. They'll shout abuse at me as they pass even if I'm in a bike lane, completely out of their way.
I have always been amazed when I saw friends or acquaintances, who had 10 to 20 years experience of various 'martial' arts, get into bar/street fights. They would exchange never-ending low-kicks and middle-kicks, which were absolutely useless and ineffective, and, after a while, fall or be grabbed and put to the ground.

In comparison, as far as I am concerned, completely untrained (meeting twice a week in a room to hit-on-and-get-hit-by-other-people-but-not-too-much is a concept that feels alien to me), my street/bar fights never lasted more than a few tenths of second. A good old straight punch in the nose/chin with all your body weight, or a good old knee in the balls/liver/ribs/plexus (depends on the size of the bugger, but it always lands somewhere that hurts or incapacitates), or, if in a creative mood, a lift-projection-crash/crush over and under a wall and table. Opponent sleeping, problem solved, can continue heading back home or having another drink, thank you. Oh, yeah, and one very important parameter is to hit first.

I cannot run, so that's not an option and I have to solve problems in a different way (which can include me spending a night in the hospital because the "hit first" thing only works when there is only 1, or perhaps 2 opponents).

This was just to say I have never been convinced by the application of martial arts training in real conditions. Unless people turn themselves into war killing machines, which I do not consider a good thing to do and to be as long as we live in an overall reasonably civilised world.
As an alternative, I would recommend something like Michael Kerrisk's The Linux Programming Interface in lieu of a survey of foundational CS. Gaining a deep understanding of memory, files, processes, threads, signals, sockets, etc. As well as strong Emacs-Fu and bash scripting ability. These are the first steps on the path to mastery ;)
You can write crappy code in any language. I have seen large, easily maintained systems written in Perl, and I have seen horrible little tools written in Java. There's nothing specific to Python.
Fitbit – your accurate activity tracker
Poor title; it looks more like the August 23rd misconception was pre-existing and Facebook used poor data, rather than them forgetting and now covering their tracks.
If you're out in public, you agree to be seen

More like some accept this grudgingly, as, until recently, with the near-ubiquity of delivery services, there were, for many, simply no choice: Stay at home, unseen, and starve, or venture out for groceries, et al.

Public space serves at least two distinct purposes that we conflate at risk to both privacy and freedom: transit and public life. Not all who need the former want the latter, but our physical world does not permit them to have one without the other.
This is true, it seems like the different languages are starting to converge. C# and Java are converging as well. There are still major differences, but it's getting to be like bickering siblings rather than comparing unrelated strangers.
Downtown Saginaw, Michigan... a lot of our neighbors are retirees. On the one hand, you'd think they would know better, having grown up (largely) before "helicopter parenting," but I think it may be more likely because my children are bi-racial...
PowerPC really died in 1997-98 when it became clear that Jobs wasn't going to license Mac OS (classic or X) for 3rd party PowerPC boxes anymore, and Windows NT on PPC wasn't going anywhere.

Without an operating system, IBM and Motorola didn't have an incentive to build PC chips anymore. The G4 happened because it was already in development and the vector extensions were useful for Motorola's embedded ambitions. The G5 happened because Apple basically paid IBM to make a desktop chip out of their POWER designs, AFAIK.

Around 2004, there was a startup PowerPC maker called P.A. Semi [1] that apparently competed for Apple's Mac CPU business. After Apple went Intel, they acquired P.A. Semi to design iPhone chips instead.

[1] https://en.wikipedia.org/wiki/P.A._Semi
You are most welcome!
There are genuine questions surrounding how valuable CS degrees are (or should try to be) for professional software development careers. It has nothing to do with anti-intellectualism.
Where 'strict' == 'unit tested', then I agree with you. You don't need strong typing to make good code.
Previous Discussion

https://news.ycombinator.com/item?id=12278722
The patterns that Undebt removes could be non-existent in the code base, but the conceptual, algorithmic design decisions and architecture could be all bad and that is what the actual technical debt is. Bad code patterns are just a tiny slice of the problem in most cases.
If your viewport can't afford two lines for the label + input, you may need to work on some really different UI.
One of the compatibility breaks that I love about fish is that you can use unquoted variable expansion without needing to worry about it being broken on whitespace

set foo "Hello World"
count $foo # gives 1
Thanks for that comment, it made me seek more of his writing, which I've enjoyed quite a lot more than most columnists.
Oracle did this in the past 2 generations of their UltraSPARC architecture.

At it's core a `SELECT FROM` statement is a filter lambda (without any joins, or before/after a join has been done depending on query optimization).

Fundamentally this is because an SQL table is a flat array. With row's being flat array's within the table's memory space.

Calculating the pointer to fields within rows within a table is ridiculously parallel. You're limited only by SIMD size. (this is 1 FMA + 1 add against a constant ~2 ticks).

Also custom wide SIMD registers can allow for `VARCHAR(255)` equality statements to be done in 1 processor cycle.
A few weeks ago I wrote a very basic IRC server in Elixir to learn the language and was very impressed how fast I was able to get it running. Despite it being my first contact with a functional language the coding felt very intuitive to me.

The only thing I miss is good tooling support but I'm coming from Java and a bit spoiled in that regard.
It may even be useful to lack a degree, since the job market is otherwise good and you automatically filter out the lamest companies that way ;-)

(No, not a perfect heuristic, but I think it may not hurt)
I think it's more many people vastly underestimate just how much they and others got out of their education.

Sure,everything is a bell curve, but spending the majority of your time thinking of little else beyond software concepts for 4ish years will fundamentally change how you think and reason.
So that doesn't seem like a show-stopping kind of cost to me... Its not nothing, but does point to the sync server being the main cost there. Wonder what the pricetag on that was.
From what I understand, Heap Analytics pioneered this space.

Can anyone chime in on the differences/experiences between the two?
I agree that Docker is not serverless, but I think that it does replace the need for serverless services if coupled with an orchestrator such as Kubernetes, Swarm or Mesos.

The first bullet point in the article is true when taken in its entirety but it's also misleading because using Docker with an orchestrator like Kubernetes does significantly reduce the need for maintenance - You do have to design your apps in a particular way (so that they can auto-scale themselves - And this is no small feat) but once you do, it's really easy on the maintenance side. I think it's a matter of time before open source projects start to become 'built for Kubernetes' - I already did this with my own project https://github.com/SocketCluster/socketcluster and I know lots of big open source developers who are also doing the same. Kubernetes/Swarm/Mesos are becoming 'cloud' operating systems - Once their popularity reaches a critical threshold, developers will build apps on top of Kubernetes or Swarm in the same way that developers today build apps to run on Linux or OSX.

Eventually, when people ask "What OS does your software run on?", the most common answer will probably be "Kubernetes" or "Swarm" - Instead of saying "Linux", "OSX" or "Windows".

The second point is also correct when taken literally but also misleading. While Docker doesn't use third-party services to reduce the amount of code... It does allow you to use third-party Docker images to reduce the amount of code... Same result, different approach. I think the second approach is better (and cheaper sine you don't have to pay ongoing costs).

The third point makes sense but the concept of 'lambda functions' is completely redundant in a self-orchestrated Docker environment. Lambda functions were invented to fix a problem which BaaS introduced - By the very fact that it doesn't offer you direct access to the backend. In my opinion, Lambdas are not as good a solution as having your own backend code running in auto-orchestrated containers (Lambdas often have lots of limits related to resource usage, timeouts, including third-party modules, etc...).

I think that until now, BaaS providers have had the upper hand because they're really easy to use, but I'm certain that Docker/Kubernetes/Mesos will win out in the end for the simple fact that they are decentralized, that they are way more flexible, that they leverage open source technology and that ultimately they will cost much less (because of their high flexibility, customizability and composability).

There are lots of great teams building new platforms on top of Docker which will make it easier to use than BaaS.
Yeah, or possibly j-core j2 [0] if you fab the chips yourself and don't need much power.

[0] http://j-core.org/
that's great man, looking forward to seeing that!
Java and Python are apples and oranges - one is a compiled language, the other is interpreted. Better to look at other interpreted languages like Ruby & Perl...and they have the same issue. It's a side-effect of using an interpreted language, but it also allows such languages to be self-modifying which can be very powerful when you need it.
I'm always pretty skeptical of anything that offers "Learn X Quick!". Is there any reason I should trust the author of this as a good source? They even state they only started learning this stuff a year ago. I wouldn't take a course or buy a book from anyone claiming only 1 year's study in any subject, why should CS be any different?

edit: It's also hard to find the author's name to find out who they are. It's not in text anywhere on the page, only in the image of the book cover.
Around 2001 I felt jaded with the industry and determined to do whatever was expedient to earn money. That meant using PHP, because that was purportedly the place to be at the time.

I have never felt so uninspired by a language. My overwhelming feeling from the get-go was that it was a collection of libraries, which would be fine -- but why create a new language?

PHP has the rare distinction among languages of not containing any novel features or ideas. Not only that, but it borrows liberally from several other languages, resulting in an overabundance of syntax. Instead of a tool for attacking problems, it's a reheated leftover. There is not suggestion of a better or worse way to accomplish some goal.

Finally, the original premise of PHP, interspersed functional code and HTML, is high on my list of really bad ideas. Code written in this style is doubly-challenged in terms of reuse and maintainability. Again, there is again no semblance of better or worse with this approach. If you had Richard Stallman and Linus Torvalds produce the same website with PHP, there would be very little in common between their approaches.

Given the success of Facebook et al, I presume that the interspersed code/html thing has been superseded, and further that the egregious security issues in PHP have been fixed. But the picture in my mind's eye is something that lumbers along despite its thorough mediocrity. I will allow that making PHP adequately consistent and secure are impressive feats.

Sincere question: how am I wrong here?

====== edit ======
Drop extra 'the'
I agree, that's why I used the word "magically".
> Consider a program that reads x and y from STDIN.

A program like this should fail to compile! You can't feed two arbitrary numbers from stdin to the "add" function above. In order to make it compile, you'd need to add some logic that uses min/max to swap the values so x is less than y.
No, they've never actually come to talk to us.

For a year or so I had a habit of taking a long daily walk in my neighborhood -- sometimes I would take my baby boy out and wear him in on my back in a baby carrier. That gave my wife a break and after a hundred yards or so he would inevitably fall asleep.

Someone apparently called the police saying I was carrying a dead baby around the neighborhood in a backpack, and I had an officer stop and ask if he could talk to me and verify that the backpack was actually a child carrier. He was apologetic and friendly about the whole thing but it really makes me wonder WTF my neighbors think about us...
Not only does Jupyter have Ruby support, but you can go back and forth between languages in the same notebook while sharing a context.
The implosion of the daily fantasy industry
No offence, but the POWER is the only free CPU on the market that isn't a hippie piece of crap.
There is a repo for posting feedback (such as proofreading errors) here: https://github.com/imposters-handbook/feedback/issues
There are very good reason for naming functions (and ideally dangling them from the class rather than making them inner functions) - this encourages you to separate the 'what' from the 'how' and tends to result in code that is self-documenting. When you inline all your functions the person reading the code is forced to build and maintain multiple abstractions at one time to follow execution flow. Additionally, you are conflating the 'what' and the 'how' which forces the reader to context shift. If you replace the function with a well-thought-out name, code becomes much easier to read.
I knew someone would take the dim view of this startup. Though it is very easy to look at the other side of the coin, or $40B of liability that just washes under the bride because the damaged parties don't have access/can't afford a lawyer.

What if you had a parent, sibling, spouse suffer a serious injury, would you not help them financially if you could and they needed it? Would you refuse to be paid back out of their settlement, because that would be parasitic? You do realize it is against Legalist's, Thiel's or anyone else interest to support bad or worse false claims, because they can and will actually lose money right? I think for whatever reason, people like to believe the legal system is a a lot more dysfunctional than it truly is, example, that Thiel conjured up Hogan's lawsuit, that but for Thiel's money being involved there would be no damages, when the truth is Thiel provided financing and likely got an economic interest in the final judgment/settlement but he still had zero influence on the case itself.

It is on par with taking an extremist approach to doctors and medicine..."nothing more American than saving a life, as long as you have good insurance or can pay cash up front."
When POWER8 came out in 2014 I ran a couple of numerical benchmarks against Intel Xeon CPUs. In my benchmarks the POWER8 CPUs where slightly faster than Intel Xeon CPUs when the data fitted into the CPU's cache, so far so good (the speed advantage of the POWER8 CPU can easily be explained by the much higher clocking). But once I started running heavy benchmarks involving gigabytes of data the POWER8 CPUs where at least twice as slow. Now 3 years later POWER9 CPUs will come out that are about 1.5 times faster, in my opinion this is not enough to compete against Intel. Why would anybody want to get locked into a rare and more expensive CPU architecture if there is no speed advantage?
> Somehow most web developers care a lot more about the ~3% of users that use IE 10 or lower than about the ~4% of users that are legally blind and can't use a graphical browser.

It's only correct to infer that web developers care less if the cost of supporting either is the same.

(Also many legally blind people use graphical browsers; legally blind is not the same as "unable to see anything").
Really? My completely anecdotal experience is that ag kills grep. Stuff like searching usages of variables in Linux kernel seems to take ages with grep, whereas ag search on the whole repository doesn't take annoyingly long.

I'll need to test this, just to see how wrong my "feeling" on the matter may be.
The TOS that Google follows is published in the robots.txt file. If you don't want Google to scrape your site, then that's all you need. There's no double standard.
I use vim & neovim :P on kUbuntu. Also, I don't notice that any script on bash stooped working because my main shell is fish.
The Expansion Pack Analogy: Language vs. Framework (For Beginners)
Yeah, I myself was a latch-key kid, biked everywhere, had a landscaping job at 14 and worked in grocery stores throughout high school.

Although I'm not super-excited about putting teenagers behind the wheels of cars until their brains have caught up with their bodies and they don't think they are immortal any more...
I'd assume their policy is because of the Tivoization clauses, which (as far as I understand them) would become an issue if they lock the OS down more, or want to share the environment with e.g. iOS devices.
Sorry, I should've provided a reference for you. The link throwanem posted is a good introduction with an interactive demonstration.
Email Marketing Tools to Use Instead of MailChimp
I would paraphrase it as, "unregulated indiscriminate use of surveillance" is not a good thing. And I'd agree, as did the authors of the Bill of Rights.

Like unwarranted multi-target wiretaps, surveillance of the general public without oversight is the real threat. One option is to demand that all surveillance be closely regulated (ideally by open courts), and police departments must get authorization before buying/renting any new ISR tech.

But until we elect more courageous pols who care more for their oath to uphold the Constitution than protecting their job with knee-jerk militarized responses that satisfy hysterical public backlash to crime, indiscriminate surveillance will only get lazier, more expensive, and more destructive to everyone who isn't dressed in black.
I think I'll buy a copy for all the BRO-Grammers in my office.
I think it refers to idmix instruction and Load Monitored Region, and Load Monitored Region Registers

>The Load Monitored Region registers are used to specify a Load Monitored region, and to specify the sections
of the region that are enabled.
The Load Monitored region is a contiguous region of
storage specified by the Load Monitored Region register. Load Monitored regions range in size from 32 MB to
1 TB. All regions are powers of 2 in length and are
aligned (see Section 1.11.1).
The Load Monitored region is divided into 64 sections
of equal length, each of which can be separately
enabled. The Load Monitored Section Enable Register
specifies which sections are enabled.

>Load Doubleword Monitored Instruction: Specifies a
new instruction and facility that improves the performance of the garbage collection process and eliminates the need to pause all applications during
collection.

Programming Note:

>The ldmx instruction loads the same doubleword in
storage as the ldx instruction.

>Idmx is intended for use by applications when
loading data objects during times when objects are
being moved as part of a garbage collection process. In this type of usage, all loads of object pointers by applications are performed using ldmx.
Whenever objects within a given region of memory
are to be moved, the garbage collection program
sets the Load Monitored Region registers to
encompass the region being moved, and sets
BESCR GE LME to 0b11 to enable Load Monitored
event-based branches.

>Subsequently, if an application program loads
(ldmx) a pointer into an enabled section of the
Load Monitored region, an event-based branch
(EBB) will occur. The EBB handler will load the
instruction from storage, and decode the instruction
to determine the effective address from which the
pointer was loaded. The handler will then load the
pointer (obtaining the same value the application
obtained), and determine where the corresponding
object has been moved to, and update the pointer
in storage so that it points to the object's new location. The EBB handler may also take other actions
such as updating additional pointers, depending on
the situation. After this processing is complete, the
EBB handler sets BESCR LME LMEO to (1 0) since
the taking of the EBB set these bits to (0,1), and
then executes rfebb 1 to re-enable EBBs and
return to the application program at the ldmx. The
application program re-executes the ldmx, which
now returns the updated pointer (which no longer
points into an enabled section of the Load Monitored region), and continues.

>Other variations and extensions of the above pro-
cedure are also possible.