skysight-inc/HackerNews huggingface dataset:
I still suck at talking to strangers, the concept scares me greatly, I've never been entirely sure why. Anxiety maybe?

My biggest breakthrough was realizing in college, that I could go to a coffee shop and order a cup of coffee and talk to the cashier, and they were usually very friendly. So, now when anyone is serving or helping me (waitress, barista, security guard, guy who empties the trash cans, whatever) I say hi and ask "how's it going". It's not a deep interaction, and it's not huge, but considering the number of days I used to go without saying anything to anyone, it's a nice improvement.
URLDiff - a small ruby app (and my very first!) that computes and renders the visual differences between two (or a list of) URLs:

https://github.com/sammcj/urldiff (screenshots included)

whipped it up to check for visual differences in a bunch of pages I moved to a new platform, worked a treat.
I think Quake did something similar.
http://www.bluesnews.com/abrash/chap67.shtml
I got handed a custom mp3 encoder and asked if I could figure out why the output was too quiet. At the time I had essentially no DSP experience.

It seems the gain had been reduced to cover up another problem: a tonal hissing sound. Once I learned how polyphase filter banks work, I tracked the problem down to a premature optimization, namely the replacement of an integer divide by 2^n with a right shift.

Such a shift of a negative 2's compliment integer rounds toward negative infinity instead of zero. This caused a slight DC bias within each sub band filter. In all but the lowest band, this DC bias gets shifted up to a non-zero frequency.

I call the optimization above premature because fixing it only added one cycle per operation. Granted, this was a real-time MP3 encoder on an ARM7, but the cycles were there.
Aren't these two equivalent statements? Liberty to do any particular thing, ever, increases the ability to do something wrong. And so requires more caution. That doesn't stop restrictions that would alleviate said caution from being overbearing themselves. (Maybe they aren't always overbearing, either way...)
Neat! I'll keep an eye on this.
Oh, and the code comments were in Dutch, which I don't read.
Making of the new Codecademy UI by Pentagram
Writing a Forth vm in AVR assembler, from knowing nothing about either.
Or
Writing a 9P file server in Postgres Pgsql, which is how I learned 9P.
Facebook And A New Era In Paid Media
Original source: http://www.globalpost.com/dispatch/news/science/140424/the-w...
I took horrible basically no documentation globally scoped spaghetti code in perl, with a proprietary db based on flat files and forking web scraper from the 90s, which used n ancient form of ipc that predated posix and mostly didn't run, and rewrote, debugged, unit tested and updated it so it runs, faster and better than before. I built a new front end using dancer (perl framework kinda like Sinatra) with a nginx reverse proxy to replace the cgi scripts originally used.
Wrote a program to record Hulu.com. They had every type of protection against recording, and changed code every week.
I'm definitely a *nix guy (run Linux and OS X, only, for the last 5 years or so) nowadays, but I've had to use PowerShell to do some admin stuff at work... and it's not that bad. Sure beats the crap out of Batch files anyway, though it's IMO not as good at gluing disperate processes together as Sh is. That however seemed more like a function of Windows' apps themselves more than PowerShell, though.
Simple clickable prototype of the new Grpzi phone app now available at https://marvelapp.com/f1df0

Thanks to Marvelapp.com for their great new prototyping tools!
Apologies about the lack of cohesion of my post. It's tough to make posts on a phone.

I have to confess that my interactions with the Haskell community have not been positive as I would like. My development preferences are not respected by Haskell fans. I'm ok with disagreement. However, if I do "defend" javascript, I'm attacked as being ignorant because I don't see things the same way.

My point is javascript can be an amazing experience, and very scalable, if approached in certain ways.

I acknowledge that Haskell is amazing too.

>It's not that it sucks for making a photo gallery, it's that it sucks compared to other languages for making a rich, modern, immersive, large application. They key word there is large.

Very large apps have been made in c. I'm making a fairly large app in javascript. It's been pretty fun. I'm confident that the app im working on can be scaled to be considerably bigger.

A problem is most people try to use techniques that are more appropriate in other languages.
This is why unit testing took over the dynamic language world more than a decade ago.

And at least in Perl, which have a bit of extensible syntax, you can declare parameter types of methods/functions. That is especially a good idea for external APIs to libraries, etc.

All tools have quirks, which forces a bit of change in how you use them. You have to look at the total sum of these effects. How much extra days will it take to learn? How much will the work arounds cost you? Etc.

Granted, e.g. JavaScript have more weirdness than should be possible -- but is is fast, fun and has lots of use cases.
Thanks for the tip. I picked up rentalrepair.net and rentalrepair.co today.
Where are you? If you are in the sfbay area, I may have a suggestion.
Join the team @ https://assemblymade.com/grpzi
Contributors required!
The problem is with

interface FooBar extends Foo, Bar {}

FooBar can be defined in a library that you can't change.
The solution in Java 8 would be using default methods:

interface Foo extends FooBar {
default int bar() { throw new UnsupportedOperationException(); }
}

And then you can even do the other trick mentioned in the article even more easily:

Foo f = () -> 3;

And f now satisfies FooBar, by throwing an exception when bar is called, and returning 3 when foo is called.

But, assuming method

void doSomething(FooBar x) { ... }

you can't call it like this:

doSomething(() -> 3);

What you can do is call it like this:

doSomething((Foo)() -> 3);
Bit bucket is a real thing that you can use for public repositories.
Join the Grpzi team @ https://assemblymade.com/grpzi
Just upvoted the post, sorry. ;-)

These rants really seem to be based on the degree of respect some languages are enjoying in a certain community. Take weak typing / type coercion for an example: This is a common feature of scripting languages of the time, e.g.: Perl. I never read Perl being complained on for the same issue, which might well be, because it is a "serious" system language and because you might have to "really" learn it for any advanced use. (Even the boolean testing of int return types in Unix and C could be considered as some kind of premature type coercion.)

Late binding is probably most powerful feature of the language. (The language is built around it.) If it doesn't go with your test suites, considering that both the language and the language the tests are built with are Turing complete, adapt the tests rather than the language. This is a bit like ranting on C not being Logo and for it having other output facilities than a turtle.

Why not just develop in JS -- read: think JS --, for a change?
A personal finance app, coming soon.
>The only people who should be afraid are the ones who make money by not contributing.

Should be? sure. Are? No, those people are mostly at the top of the economy.
Traditional employers have multiple management levels specialized in hustling which must be paid, most of them members of the middle class, who consume services and participate in the economy, creating demand and jobs. Their hustling is much less brutal because they need to maintain a personal relationship with the underlings and must strictly adhere to the law, else their team leader job is on the line.

"Innovative" businesses on the other hand have very low costs because they employ maybe a few hundred highly specialized people like programmers, marketers etc. They can engage in cutthroat competition and there is a massive polarization between the lumpen underlings and the owners. I think the Amway parallel is spot-on.

In theory it will reduce prices of taxis, hotels, etc. making them affordable to more people, thus create wealth. In practice it will destroy jobs and most of that wealth will be transferred to the capitalists.
Thanks, we definitely plan notifications via email and if possible other messenging services.
Immutability can be typed with Java 8's pluggable type systems . There's an implementation of immutable types in the Checker framework.
Most of my coworkers (sys admin-types) adore Powershell.

It's ugly in its own unique way, but it's better than bash in terms of functionality and elegance.
I feel for you. I have to work with a proprietary library that is only documented in German - google translate only gets you so far.
A startup pays a big established design firm for making their user interface. That's not a good sign.
You could argue, that the work is at least just "average stuff", and not worth the money, but that's not the point:.
Paying a lot of money for an established design firm feels like buying Armani suits for the whole team.
What were they thinking? That someone who wants to start to code cares about the fact that Pentagram made the design?
Let alone that Pentagram is maybe one of the greatest Identity and Graphic Design firms out there, but they did not one great work for screens.
Codecademy stands for Learn Hacking. Do It Yourself.
Pentagram stands for New York and Artsy Gallery People.
I have respect for the work of Pentagram, and I really liked Codecademy, but this made me sad.
I can think of a few cases.

Most of them were reinventing the wheel. :-(

I think the chemists have a saying: "With a few hard and dedicated work weeks in the lab, you might save hours in the library!"
Parametric polymorphism ("generics") and sum types.
I'm afraid that with the level of flexibility Racket allows, I'll never get to writing an actual program

Great series
definetly typed doesnt fix everything,just have a look at the ambient declarations.
few days back whatsapp was the one who faced the outage and now its facebook....they should act something to fix the faults
Reminds me of this xkcd: http://xkcd.com/941/
At a different gig I built a linux x264 batch transcode cluster that accepted, among other formats, Apple ProRes. (Quicktime under wine using xvfb, through avisynth, piping a yuv4mpeg stream out of the wine domain).

At a yet another gig I developed a method to differentiate male and female insects at 30m using a beam-steered high speed low res camera.
How One Woman Hid Her Pregnancy From Big Data
That sounds very interesting. If you don't mind could share the algorithm name?
Do you happen to remember the paper? If so, would you link to the PDF? It sounds really cool!
The burden of proof for being a human piece of sh$t is lower than the legal bar for conviction. Items like "procedural" errors related to evidence that turn heinous crimes into misdemeanors can and should still be considered. This is not a situation where there is subtly to the crime. There is video. That video just couldn't be used in a court. It still happened. It still exists.
Even without a payout this is very common in domestic abuse cases.
But by doing so, the post marks a real problem: The critique of JS seems to be mostly based on the prestige the languages is enjoying -- or rather the lack thereof -- in a community.
Any of those features is to be found in highly respected languages, too. Most of the rants are about respect and not being willing to respect the specifics of the language. Why has JS to be built to suit test suites and tool chains originally designed for C/C++? Why not adapt those tools for the use with JS? Isn't this, what a universal machine is for? "Sucks" may be an easy answer, but it shouldn't be a general one.

Edit: There are only few high level languages which would adopt to such a wide range of programming patterns like JS does, or which would allow to be redefined by such large an extent. (This is mostly for the much frowned on late binding.) Isn't this rather adorable than awful?

Other reasons, why JS would "suck" seem to be quite deliberately: Curly brackets -- what about C or Java? Semicolons -- In the beginning, JS was critiqued for not requiring them and using them rather as a separator (in the first syntax version). Verboseness -- isn't the lack thereof why APL used to be quite a horror? Type coercion -- Isn't this, what made Perl that useful as a glue-language? The critique is quite à la mode.
Why are you intentionally ignoring half of the parent's comment, twice? You're not contributing to the discussion at all.
this version of the script gets you through the game:
https://github.com/jaeh/willyoudrown/blob/master/willyoudrow...

i am also thinking about writing some ifs into it that allow you to focus on "friends", "happy buddha", "people person", "wisdom", "early death" and maybe some other criteria, but that needs user interface and more time, which i dont have today ;)
I've had the same experiences with the C18 compiler. Using that compiler, building a simple 6-channel PWM application becomes quite difficult. For every interrupt, the compiler would copy the entire (call)-stack to a different memory location, then enter the interrupt routine and finally copy the entire stack back, resulting in latencies of ±100 cycles before and after the interrupt.
So, to get rid of the timing jitter, we had to fire the timers early, and then wait for the final timer counts in the ISR.

Later, we switched to the NXP LPC platform using only open source tools: GCC ARM Embedded toolchain, OpenOCD + gdb for debugging and vim, make as 'IDE'. What a relief.
Yes and then they complain that the published method doesn't actually work.
I've done quite a bit of stuff on the hardware/software boundary where things get hairy. I think the nastiest thing I've debugged there was a machine that HP [1] was making in about 1994 which had some native HP bus and an EISA bus hanging off it for expansion cards from PCs.

I was working for a company that made NICs which went into the EISA bus and we were seeing data corruption in this machine.

After a long, cold night in the Apollo works myself and an engineer from HP tracked it down to a timing problem on the EISA bus where the 16 bits being sent were arriving in two 8 bit chunks slightly delayed. Our NIC was spinning on a 16 bit word looking for a change in the top 8 bits as a single that the data had arrived. We'd then read all 16 bits, but 8 bits weren't ready yet.

Luckily, HP made lots of test equipment and getting a logic analyzer with 32 inputs, an in circuit emulator for the CPU, and some logic probes was easy...

[1] I think it was an HP 9000 http://en.wikipedia.org/wiki/HP_9000 being made at the old Apollo works outside Boston.
> I think the chances that people independently developing two separate libraries will accidentally give their methods exactly the same name, with the same types of their arguments in the same order and with the same return value

Don't forget "with the same semantics".
Hey that is really nice! Are you interested in looking for a way to get them manufactured?
A screen recorder? Haha.
When doing computer vision the first thing being done is usually camera calibration. The most common calibration technique is to make images of a physical object with know spatial properties (grid patterns are often used) and to extract 2D point positions from the resulting images (e.g. using a corner detector). Given the match between the extracted 2D points and the corresponding locations on the calibration grid it is possible to determine camera and lens parameters such focal length and distortion.

An in-house camera calibration application at my company solved the correspondence problem by using an algorithm that looked at properties that are not invariant under projection (i.e. angles and distances). This made the calibration process extremely fragile. The algorithm often failed to detect the calibration grid even when the image was crystal clear, which made calibrating a camera a very frustrating endeavour.

Since it was an in-house application there was never much priority to fix it. Eventually I got so annoyed though that I wrote a whole new real-time algorithm for the detection of arbitrarily-sized grids from a set of 2D points. The algorithm is capable of dealing with a significant amount of outliers (even when between the valid grid points), it can handle missing grid points and it is not affected by perspective or non-linear lens distortion. In the end it took me longer that I had hoped, but the resulting algorithm is one that still makes me proud.
As someone who isn't big on too-much-hops, I've been able to find plenty of interesting microbrews without. As much as I'd certainly a shift away from the so much hops, you needn't feel deprived even in this environment if you keep your eye out.

As to hops, for myself I do enjoy extremely hoppy beers, just not nearly as much as I enjoy less hoppy beers.
This article focuses on shareconomy services that operate in legal gray areas, particularly Uber/Lyft and AirBnB. Can the same arguments be made for shareconomy services that are perfectly legal? Such as: tool sharing, camera lending, bike sharing?
I don't think the GP advocates a barter economy, rather he defines what sharing really is. If 50.000 people go to the stadium, there's a large chance close neighbors go there so there's no point using four cars when they can use a single one. No economic product is generated but our lives are suddenly better, less congestion, less resources wasted, etc. So the sharing platforms should find these synergies, when they exist, and you should purchase a transportation service otherwise.

What they actually end-up doing is competing the incumbent services in a fly bellow the radar illegal operation which actually makes the taxi drivers themselves poorer while diverting most of the extra cash to the ring masters.
He's actually making a much simpler argument that may be unfamiliar to those not familiar with the underground economies of the inner city.

What he's saying is that the basic transaction that Uber or Lyrt facilitate is not novel, that people have been using single family residences as informal transient hotels and have been engaging in street corner unlicensed taxi type transportation for decades.

Except when they do it, it's often a criminal offense. The drivers are ticketed or even arrested, the people who rent out rooms on a nightly basis are evicted or charged with municipal violations.

They are primarily poorer and blacker. Then well financed tech companies come along and do the exact same thing -- literally -- and instead of being seen as a civic nuisance at worst or a sign of a severely crippled local economy at best, it's called "sharing" and "fun" and hailed as the next big thing.
They both can read, just not fluently enough to fully enjoy subtitles.

The rebuilds, so far, seem relatively not-so-violent, and at least not violence for violence's sake. The only hardcore scene I recall overall is when Unit 2 gets eaten in one of the earlier movies. And it's all redeemed by destroying and or recreating the world anyways.
>That's true of entrepreneurs in general.

Of course, but these people have the insecurity of small businesses without the potential upside of having an ownership stake in a business.
Same thing happened in Germany too, issue seems to be fixed as of 13:00 CEST.
A professional grade USB audio driver for Windows, to stream multichannel audio at low latencies to connected USB hardware. Also firmware for said hardware, with DSP processing (equalizers, filters, mixing, interpolation, metering). Completed with zero prior experience, and a little outside help.

Very proud of the result :-)
https://www.youtube.com/watch?v=SmMHsIETBwA
The shift of risk to the employees started when executives realized that they could cover they mistakes with a "reorganization" and still get a bonus in the end.
Nothing wrong with two services using the same data source. If data locality is a concern, deploy both services alongside one another.

Or you could place the data behind an API. It would speak HTTP/Thrift/whatever and would be solely responsible for handling the data. Front the API with a cache if latency becomes an issue.

For your specific example, consider pushing data to autocomplete and search instead of having them pull.
The answer depends on how much money you have :)

More seriously nobody really know what will be the next big thing.
I'll provide a counter example: We are a Couchsurfing host because we have resources beyond out needs. Our house has four bedrooms, occupied by four rent paying tenants. We have couches and a single bed available in Northern Tasmania, if you're ever in the area look us up (email in profile). I have a well paid full time job, cash investments, as well as investments in precious metals and shares. I even pick up hitchhikers. If you're in to rock climbing, bicycle polo, music, camping, food (I'm a certified nutritionist), and building things (I'm a structural steel engineer and fabricator), we might even get along.
The hardest ones haven't necessariy been hard technically, but in getting all the right people talking to each other. I'm not a networks person, but I've had two cases where the networking people gave up and it was left to me. Most recently it was a Kerberos callback failing across a WAN - it was being blocked by a sister company's firewall. On the upside, we are now looking to sell that company.
- At age 12, I taught myself C programming using [1] (I had never programmed before, but wanted to make games), then proceeded to write a 12,000 line 3D OpenGL Game Engine from scratch, using the NeHe tutorials [2] as guides. It took me three years. The final program ran on Windows XP and 98, could import 3D models from Autodesk 3D Studio, and had a 3D asteroids style game demo. I used Milkshape [3] for 3D modelling, and Dev-C++ as my IDE [4].

- For an AI course at University, my partner and I developed a custom motion planning algorithm involving neural networks, RRTs [5] and POMDPs [6] in several thousand lines of Java. That was some of the craziest (and most fun) programming I've ever done. Our lecturer was Hanna Kurniawati [7], who is world famous (for some value of 'world') for her work on POMDPs, which was really cool.

[1] http://www.cprogramming.com/tutorial.html

[2] http://nehe.gamedev.net/

[3] http://chumbalum.swissquake.ch/

[4] http://www.bloodshed.net/devcpp.html

[5] http://en.wikipedia.org/wiki/Rapidly_exploring_random_tree

[6] http://en.wikipedia.org/wiki/Partially_observable_Markov_dec...

[7] http://robotics.itee.uq.edu.au/~hannakur/dokuwiki/doku.php?i...
If you search for the phrase "To add more 'regular' instructions" in part 1, you'll see where he references 8 or 9 bit instructions. The author goes on, in subsequent sections, to expand the idea of tokenized jump references to tokenized instructions.

Each instruction token may only be 8 or 9 bits, but the secondary memory which contains jump targets is expanded to also contain full-width instructions.

The operating hypothesis is that just it's desirable to be able to "reach" any 32-bit destination address despite any given code segment not needing that flexibility, it's likewise desirable to be able to execute any, say, 36-bit instruction even though any given code segment only needs a subset of them.

It's really worth a read.
I ported X11 server + SSH + FreeNX compression protocol stack to a non-posix cooperatively-threaded OS (BREW). Even worse than that, the toolchain was broken. The generated binaries were corrupted when an identifier bigger than 255 characters was used. Thanks to the wonders of STL and its templates there were several of those.
And to make things more interesting there was no debugger, only a broken simulator on top of Windows.
This looks cool. Any plans to add support for posted HTML (as opposed to a target URL) too?

The reason I ask is that sometimes I need to screenshot pages that I've crawled - but you might not see exactly the same page I did at the time.