I’m imagining this in the context of websockets, where you are stuck with TCP only. But in that context, you can’t control the browser’s TCP stack making retransmit requests, and usually streaming is from a server to a browser… So I’m not quite sure how this can be applied. It is clever, though.
Because that’s how the Internet is. TCP works pretty much every time, but UDP doesn’t.
Relevant presentation: http://dedis.cs.yale.edu/2009/tng/papers/pfldnet10-slides.pdf
Nothing too original, but here’s my list:
I also support matrix.org via patreon and am a huge fan of Matrix as a replacement for Slack for open source organizations and people who value privacy.
My requirements for a laptop are pretty simple, but they’re apparently impossible to meet:
Thus far, I have found nothing that meets these requirements.
I haven’t used one myself, but the laptops from puri.sm look pretty good. A bit of a gamble, though (small company with not much of a track record yet).
I’ve had reasonable success with the Asus ZenBook. It’s a total ripoff of the macbook air design, but I’m fine with it. Runs Linux nicely and has reasonable support for OpenBSD (sans trackpad). It’s my daily driver for when I’m at school and can’t use a huge desktop machine like I normally would.
I returned the ZenBook because the fan was so noisy and would start as soon as you thought about moving the mouse. Instead, I got the HP Spectre x360, which was so silent I had to make -j something just to prove to myself that there was a fan. It also looks much better (one of the few laptops that look really good without being a Macbook ripoff).
Both seem to run Ubuntu just fine, though I’ve of course tested the Spectre much more.
Not sure what to make of this: the blog post names (or claims to name) the author of a double blind paper.
Also, I’m not onboard with this kvetching about the amount of data needed for deep learning - humans get a lot of exemplars when learning something, and we do over fit data - except we call it specialization
Good catch about the paper. I updated the link to the correct one.
In regards to needing lots of exemplars to learn something, let’s do a quick experiment. Image in your mind a red circle with vertical lines inside it and a white outline of a heart in the middle. Do you recognize this image as what I just described to you?
It should be pretty damn fascinating that the example I gave you is the one you came up with in your head, and you only needed one. Hinton’s basic complaint about CNNs is that they use max-pooling to focus on important bits. I think its obvious we take parts and use evidence of parts to decide about the whole, which is Hinton’s intuition about this. In other words our mind constructs, in computer graphics terms, a scene graph from what the eyes see. Hinton’s work is about how to model this scene graph using unsupervised learning.
Haha, I guess I needed a different image. I just picked a random one from google images. How embarrassing…
I took the time to draw a crude version of the picture in gimp so you can see it.
What do you mean by “a lot of examplars”? Between human learning and state of the art machine learning I think we’re talking about very different definitions of “a lot.”
My daughter, for example, will generalize birds to a certain extent, but she has to be told that penguins are birds, that geese are birds and so on (todo: I need to tell her that an ostrich is a bird). However, the set of birds itself is not that large in terms of things that are very different, so relative to the set of different things, she gets a lot of samples.
She’ll in general make mistakes where I’ll look at the picture and say, yeah, I see how you can think this is that, though it isn’t. However, she will learn very quickly from one instance of me telling her something. I know that is no longer true for me, when repetition is key.
That’s a general feature, younger brains are more “impressionable” or “plastic” in that few instances of feedback will imprint very quickly, whereas for older brains it takes more repetition.
I was thinking about this myself, but I’m not sure how simple it is. As the parent of a toddler, it is incredible how quickly she generalizes concepts like “dog” from like a handful of weird, distorted cartoon versions in books and a handful of dogs in real life. But then again, her visual system is in learning mode every waking hour and is receiving a ton of data about the world that might help when it comes down to each individual class of object (“dog”). Also, when she sees a dog in real life, she sees it from a thousand subtly different angles and in a bunch of different poses in the course of a few seconds. So is that 1 data point or is it a 50,000 item training set?
Image processing is an interesting example in general because it’s something computers do so well now. But the existence of single-pixel attacks and the inscrutable nature of the model itself is certainly a disappointment. A system that was more capable of introspection would be easier to maintain, extend, and just teach us how to build systems in a less brute-force manner.
That’s a good point about how you can’t really quantify how much training data the brain gets from the visual system. Language is much more easily quantified, and there has been a lot of work to show how much of the language faculty must be biologically determined - a big part of that is our ability to learn languages with very little training data. I guess it’s up to our intuitions to decide whether this applies to other areas of brain function; I suspect it does.
Turns out Hackers was ahead of its time.
IMHO, it absolutely matters when in the hiring process. It should be after screening. It should be for people on the short list, and it should be paid. Our project was done by in house people in about 4 hours. We send that home with candidates as the 2nd to final step of the process. When they arrive with the code, we give them a cashiers check for $500 and then we do a group code review. Worst case they made $500 and are made to feel foolish in a code review. Best case they have $500 and a new job. Additionally after the code review we give them a exact time for hire / no-hire decision call.
For the curious, it turns out that this is just below the IRS’s $600 threshold which would require you to file a 1099 form for the payee. (They are still supposed to report the income, though.)
Instead of using various formats for git log, I just install tig. It’s an easy way to pull up and browse recent activity, see what you’re about to push, etc.
Another tip: use -p when adding code that you plan to commit (i.e. git add -p). It will show every hunk of the patch you’re about to add and give you a prompt where you can say ‘y’ or ‘n’ to include it. It basically forces you to do a quick code review (or at least sanity check) prior to committing changes. I’ve caught many a quick & dirty printf this way. It’s also useful for splitting unrelated changes into two distinct commits.
Couldn’t this actually work against them if it ends up showing how ineffective online advertising is? I thought ads companies like Google and Facebook were profiting from the vagaries and FOMO rather than trying to promise a specific ROI per ad. It feels like a case where closing the loop might be good for the advertiser and bad for Google’s bottom line.
Could be that advertisers are starting to catch on and Google has to do this to maintain their revenue.
Speaking as someone in the adtech industry… you don’t have to actually tell the customer (the ad-buyer) what works and what doesn’t, but its extremely valuable info for yourself as the adtech company.
Actually, Burger King has been in the news all week because of this stunt. That’s a lot of publicity for a commercial that only produced its intended effects for a day or so. Any publicity is good publicity, no?
“Nice description of.a vulnerability, but your report sucks, because it was blacklisted, and only worked for a day.” — said noone ever.
How did Google solve it? Just by blacklisting? BK’s now ought to transform their ad to get around the stupid filter!
Thanks for putting this together! I’m interested in doing some natural language processing but I’m not sure if it falls under the heading of sentiment analysis. I’d like to extract common themes from a bunch of text snippets, which is sort of like collocations, but with perhaps a little more fuzz. (i.e. a theme doesn’t have to be word-for-word identical) One example would be Yelp’s review highlights (“15 people said something like this…”).
Do you know what tools or techniques people tend to use for this?
If you are looking at reviews (typically subjective text expressing opinions), this could fall into aspect based sentiment analysis. Getting the themes out of texts can be seen as a topic modeling task. Hope that helps :)
This is a pretty damning review of the out-of-box experience of linux on a laptop. Most of these issues are things that should “just work”. They’re not weird or exotic feature requests (power management, trackpad disabled while typing, working speakers).
While the software issues are on linux & ubuntu, I still wish there were a single PC manufacturer who took hardware quality as seriously as Mac did ~five years ago. I use a Mac for work, but prefer to run linux at home.
I currently have a Dell Precision M3800, which has a similar form factor and appears to have taken a lot of inspiration from the rMBP design (not to mention similar price tag). It’s the only PC notebook I’ve used in the last several years that has a decent touchpad. However, in the 2 years I’ve owned it, I’ve replaced a wonky fan, a bloated battery, a WLAN card that got flaky. The screen came with some dust underneath it (small gray splotches all over) from the factory. The keyboard has gotten unresponsive in the middle area, so I have to hit letters like T, Y, M, B, etc. a couple times before they register. (Possibly a result of damage from the battery swelling.) The keyboard issue makes it almost unusable as a daily driver. Overall it’s a machine that gives the impression of quality, but under the hood everything is still just as cheap as ever.
I’ve tried Lenovo and others and the story seems to be pretty much the same. Cheapest possible components, no matter what price point you look at. Weird touchpad response, mushy keys, plastic body that flexes, fans that flake out. I don’t know what the conclusion is other than linux on laptops continues to be a second rate experience? :(
Trackpad disabled while typing is definitely on by default on every Linux system I’ve used in the past 5+ years, and “no power management by default” is also not actually true; of course there is, and it’s pretty damn advanced. However, some of the more aggressive features are sometimes disabled because unfortunately it’s not always possible to tell the hardware that actually implements them correctly from the hardware that pretends to work correctly and then randomly breaks when you try to power-manage it, so Linux chooses the “don’t randomly crash” option. The speakers sound like a similar issue; there’s a right way to do things, and a wrong way, and HP decided to do things the wrong way, and then ship a Windows driver that patches up the wrongness (which is typical of post-2000 HP). Eventually Linux will add a workaround to its list, but without vendor support, it’s a reverse-engineering task, with an unpredictable timeline.
So, coming to the other part of your comment, PC vendors are kind of horrible :)
When making a new path, even in tests, use filepath.Join, not path.Join and definitely not by concatenating strings and slashes. filepath.Join will do the right thing with slashes for the OS.
I see this advice a lot, for every language, but never get it. Windows supports forward slashes just fine. Use them everywhere. All of the bugs I’ve had resulted from somebody inconsistently using both / and \ in different places, mostly by accident but also nearly inevitable. Changed everything to / everywhere, all the problems went away.
I suppose some things might be outside your control (e.g. a base path specified by the user in a configuration file). If you’re in the habit of always using filepath.Join then you’ll never accidentally mix slashes.
The main reason I would use the “proper” backslashes in a Windows application is if those paths are ever displayed or interacted with by end users. Windows users have been trained to expect paths to have backslashes and the forward slashes might be either confusing or, at least, appear slightly off. (It’s a tiny, trivial thing but it feels like a lack of polish to deviate from the platform convention.)
You might also like this blog by some advisors to LBRY, Marginal Revolution. I think I originally heard about LBRY on that blog..
Yeah, this feels like it came out of nowhere to me, too. I’ve been following IPFS for a while and they’re still trying to flesh everything out. How did LBRY get so far without me ever hearing of them?
Specific kinds of information often travel fast within subsets of the population but slow outside of them. I just found out about LBRY this week. My subset had very different ideas about keeping content distributed and available despite legal or malware threats. They were mostly about tradecraft in real-world meetings or those obfuscated online to share the information with less targeting by serious attackers. Then, each individual uses any means necessary to share it. The diversity of methods gets makes more of us successful or failures depending on what’s chosen.
Still feels safer than One Ring to Rule Them All strategies for content freedom. Old-school calls those All Eggs in One Basket. I call it that plus a police state and litigious society that might tear the basket up or just smash the eggs. I’m skeptical of long-term value of such things for their intended purpose given all the environmental malice they face. I stick with old school (esp Cold War era) where it counts.
This is an extremely linkbait-y article, with several incorrect statements (such as the headline itself). Since we keep our code as open as we can, the code for downloading the hotword detection blob is open and controlled by compile-time flags. Previously this was included as part of the default set of flags, which is how it ended up landing in Debian. It is now only set by default if you toggle branding=Chrome, and distro maintainers shouldn’t be setting that. The full bug, as hiberno pointed out, contains more discussion.
several incorrect statements (such as the headline itself)
Oh, ok, good.
the code for downloading the hotword detection blob is open and controlled by compile-time flags. Previously this was included as part of the default set of flags, which is how it ended up landing in Debian.
Wait, what? Isn’t the headline exactly correct then? People received builds of Chrome/Chromium that were listening to the mic, and this was enabled by default? (Happy to be wrong about this, I’m just trying to understand your comment.)
People received builds of chrome that included an option to listen to the mic. (I think. I’m not entirely clear. Some of the available information is.. muddled.)
Isn’t the headline exactly correct then? People received builds of Chrome/Chromium that were listening to the mic, and this was enabled by default?
From the bug:
First and foremost, while we do download the hotword module on startup, we do not activate it unless you opt in to hotwording.
[…]
You don’t have to take my word for it. Starting and stopping the hotword module is controlled by some open source code in Chromium itself, so while you cannot see the code inside the module, you can trust that it is not actually going to run unless you opt in.
From the follow up:
Audio Capture Allowed: Can Chromium use the mic? (This is there for historical reasons, it’s always “Yes”.)"
[…]
The important one here is “Hotword Search Enabled”. If that says No, then the proprietary NaCl module is not running.
Closing one’s laptop is perhaps the easiest if you’re running OSX. For the life of me, I cannot understand why there isn’t a fast lock hotkey for OSX (like Ctrl + Alt + L [Ubuntu variants] or Win + L [Windows]).
The closest thing OSX has is Cmd + Opt + Power, which puts the machine to sleep. This isn’t useful if I want to step away from my machine while I’m SCP'ing a large file to a remote server! Just because I’m stepping away from the physical machine doesn’t imply I want it to go to sleep.
There is a hotkey: Alt+Shift+(Eject or Power, depending on your Mac). You just have to set up in system preferences that after monitor shutdown, it has to prompt for a password.
This way, the screen will turn off and when you reactivate it, it will ask for a password.
Thanks! Can’t believe I never came across this particular hotkey after all this time of using a Mac :)!
On my Mac I configured a hot corner to lock the screen, so I just swipe the mouse down to the lower right corner of the screen and it locks immediately. Here’s a tutorial: http://it.emory.edu/security/screensaver_password.html
I use Alfred (Spotlight search replacement), which has a lock command, along with other useful commands like eject.
My personal fav is the one where the author begins:
"I like the other solutions, but they all require an operating system which
is a bit of pain to install for something as simple as this."
I would like to try out the solution, but I fear I would brick my PC.
I gotta start playing with these things! They’re cheap too, right? I stopped playing when I “grew up”. I gotta get back into that. But, does a Raspberry Pi have a hard disk?
Yup, the Zero is 5USD, which is why I recommended it. The other models are in the 25-35 USD price range. ;)
I can’t decide if this version is ugly or not: https://gist.github.com/mmueller/abd3e4bf351d53188be422916b2441d3
I named the constant “BRUTE” because it is a sort of brute-force approach, but the logic is so straightforward using it.
Yes, I think that version is ugly. But you can make it not ugly by starting with a non-brute value map that contains only the single letters, then converting it into your current brute value map programmatically.
That would be taking the same approach as the author in splitting the work into two steps, one of which accounts for the second rule of Roman numerals. But you would be acting on the value map ahead of time instead of the number that was input. I kind of like that method more since you don’t temporarily have an invalid Roman number floating around.
Does anyone have examples of what the proof code looks like? When she says it took 400k lines of code to prove 10kLoC (of high complexity) correct, I got really curious what you’re actually writing in that proof code. (Is it as awful and tedious as those numbers make it sound?)
There are some examples in this paper.
Plot twist: Zoom in and see Earth and other planets.
Haha I was imagining doing this analysis and finding a hidden message from God embedded in the numbers.