Hacker Newsnew | past | comments | ask | show | jobs | submit | yourcelf's commentslogin

It may be a bit more zoomed out than what you're looking for if you're specifically looking at philosophical treatments of the practice of engineering, but Andrew Feenberg's "Questioning Technology" is excellent introduction to the philosophy of technology, particularly exploring the interplay between technological constraint and political/economic/social drivers of its development.

"Philosophy of Technology" in general is a pretty rich field with a long history, and you might find more references in it than in engineering specifically.


While we started off using `django-environ` to help manage environment-based/12-factor settings, we've moved away from it in favor of django-classy-settings.

The biggest knock against django-environ is that it does not treat the `.env` syntax the same as Docker or bash -- meaning that the same environment file can't be reliably used to provide variables for both the container and Django.

django-classy-settings has been a joy to use, and its code is really simple and readable (~150 lines).

[0] https://github.com/funkybob/django-classy-settings/


Have you got any examples of where the same .env file can't be used for both Docker and Bash? This is exactly how I do it in my django projects and haven't yet run into any issues.


`django-environ` makes a fairly simple effort[1] to strip starting/ending quotes off of literals. This will set the value of MY_VAR to the string `foo` (with doublequotes removed) in django-environ:

   MY_VAR="foo"
Docker does not do any quote parsing. For this same env file, it will set the value of the variable to `"foo"` (retaining the doublequotes in the value).

Bash, of course, requires quotes if the variable contains any special bash characters (for example, literal JSON with curly brackets), but its quote handling is much more complex. django-environ doesn't interpret bash code; it just does simple quote chomping.

There's no reliable .env syntax you can use that works in all 3 of django-environ, Docker, and bash; and any variable that should start and end with quotes that are not stripped off can't be expressed in a way that both Docker and django-environ will read in the same way.

This may seem like a nit-picking edge case, but it's indicative of the design philosophy in django-environ of trying to be "helpful", but in ways which lead to subtle confusion. The way it guesses the path to your `.env` file is another example.

[1] https://github.com/joke2k/django-environ/blob/main/environ/e...


Thanks - that's useful to know.


Radio Gaga: A Mixtape for the End of Humanity, by Stefani Bulsara.

An off-kilter, hilarious, inventive, and cutting apocalyptic sci fi novel about pop music. Writing style is like Douglas Adams meets Tom Robbins, through the lens of Top 40 radio and tabloids.

https://www.indiebound.org/book/9781733712569


Ohhh emmm geee! Thanks for posting about my book! I'm so honored and appreciative! And as an author of an unknown book, where did you find it?!?


A problem we've run into with Radar is that it only kicks in when you attempt to create a charge, and not when you attach a card to a customer.

This means that if your business model involves "try before you buy" or usage-based billing, you'd better be sure to make an initial charge, otherwise the customer might incur costs before Radar decides to block the charges.

Even if you do require an initial charge, if you allow customers to change their credit card between recurring charges, the new card could be extra risky and "fly under the Radar" until the first charge attempt.

Are there any plans to offer fraud risk and blocking when attaching a card to a customer, or will still be limited to just blocking charges? With Stripe's new emphasis on recurring billing, it seems like this would be important.

We currently see Radar as a liability for us. It might block the occasional fraud and avoid a chargeback, but it also allows customers to incur costs with dodgy cards before we know they're dodgy, and then blocks charges outright before we know.


My perspective on this is colored by selling SaaS.

In software sold on a free-trial model, you assume most trials don’t convert (overwhelmingly due to declining to pay but with a bit of fraud) and then the cost to provision the service (COGS) is, effectively, a marketing expense. COGS in SaaS are typically negligible to low; this is why the industry is OK with providing services on, basically, a digital handshake. If you want to allow users to try out high-COGS services (or highly-abused services) prior to verifying capacity/willingness to pay, you’d need some way to credit score potential customers outside the context of a particular payment.

To date, we’ve generally focused the bulk of our ML efforts on things which apply to the majority of our users, but as we get better at customizing these technologies to specific industries at scale and even on a per-account basis, we could certainly imagine applying them in contexts that are more relevant in your model. I’d love to hear more detail about your use case; feel free to email me (my HN username at stripe.com). If we get closer to shipping something that is probably interesting, we’d be happy to give you a heads up.



The below should be followed at the users own risk. Perhaps someone can confirm if the following is sane.

For Ubuntu versions:

  Ubuntu 12.04.3 LTS
  Ubuntu 14.04.5 LTS
The following should get you patched up, you will need a reboot though:

  sudo apt-get update
  sudo apt-get install linux-headers-3.13.0-110 linux-headers-3.13.0-110-generic linux-image-3.13.0-110-generic
After reboot:

  uname -a
  Linux hostname 3.13.0-110-generic #157-Ubuntu
Any Digital Ocean users may need to power down their droplet and switch the kernel to the following version:

  DigitalOcean GrubLoader v0.2 (20160714) Ubuntu
Without this the new kernel may not be used.


Digital Ocean hasn't required that you change the kernel through the UI for some time now. Are you sure that's necessary?


It's only necessary for older servers (e.g. Ubuntu 12.04 and 14.04) where people haven't done this already.


you can also use the API for this https://developers.digitalocean.com/documentation/v2/#change...

for example for precise the kernel ID is 7515 for the "DigitalOcean GrubLoader v0.2 (20160714) Ubuntu" kernel. If you do this be sure to double-check the id by listing the kernels using the API though. You can also do this with libcloud using 'ex_change_kernel' from the 'DigitalOcean_v2_NodeDriver'


Indeed -- the demographics of Montana in particular are overwhelmingly white[1]. As of the 2010 census, 89.4% white, 6.3% native (many of whom live in one of the seven reservations Montana has, rather than the "star" towns of Billings, Bozeman, and Missoula), and less than a percent each for any other races. The state also has only just over a million people total, so there are about 4 times as many white people in New York City as there are in the whole state of Montana.

This isn't to excuse the white-washy-ness of the video (e.g. lots of cowboys, no Indians), but just to say that the problem is at least a couple of levels out from just this video.

[1] https://en.wikipedia.org/wiki/Montana#Demographics


The TextSecure protocol is now named the "Signal Protocol"; it's developed by Open Whisper Systems. It is the protocol used by the Signal app on Android and iPhone, and as of this week, also used by WhatsApp.

Here is an older post where the authors of the protocol explain why not OTR: https://whispersystems.org/blog/advanced-ratcheting/

The main takeaway: text messaging, unlike traditional instant messaging, is primarily asynchronous with long-lived sessions, where traditional instant messaging is primarily synchronous with short-lived sessions.


The protocol used to be called Axolotl, if you want to search for older discussions and research on it.


The crypto primitives they use are called Axolotl as a group. Axolotl is to signal what RSA is to TLS.


The Axolotl construction was invented for Signal Protocol, which was itself originally called "Axolotl".


Do you happen to know whether this is the same protocol used in SMSSecure? I know it is a fork of TextSecure but am not clear on whether TextSecure changed their protocol after the fork in the process of becoming Signal.


It's the same. TextSecure called it "Axolotl", but the "Signal protocol" appears to just be a branding change.



It's even worse if the sound is going through a digital (VOIP / cell phone) system. Most modern codecs for voice are using some form of Linear Predictive Coding[1] (e.g. ACELPC) which is basically modeling sound as a resonator at the bottom of a tube with a filter bank (sortof like your voice box). With voice, this is a reasonably good approximation, and the codecs are aggressively tuned to be efficient at that. But if full-band music gets piped through it will sound roughly like that music is being produced by a flapping plosive at the bottom of a long tube.

[1] https://en.wikipedia.org/wiki/Linear_predictive_coding


"Flapping plosive at the bottom of a long tube."

What an exceptionally colorful description of the effects of that type of codec! Well done.

I wonder if there are applications for psychoacoustic modeling approaches for safety/compulsory announcements. Can they be encoded in a different way before broadcast on the PA to take advantage of our perception of human speech? And possible a different codec still for users of headphones?

Or perhaps a quick, sharp attention tone before urgent broadcasts, but for non safety/compulsory announcements, a lower volume setting...


If you'd like MIT students who were impacted by the administration's callous lack of support, consider:

- the MBTA "hackers", 2008: http://www.openmediaboston.org/content/mbta-suit-against-mit...

- Star Simpson, 2007: http://www.boston.com/news/globe/city_region/breaking_news/2...

- Ryan McKinley's "Government Information Awareness", 2003: https://en.wikipedia.org/wiki/Government_Information_Awarene...

- Andrew "Bunnie" Huang, 2002, XBox hacker: https://en.wikipedia.org/wiki/Andrew_Huang

- Ladyada, 2002: http://www.ladyada.net/pub/research.html

- David LaMacchia, 1994: http://cd.textfiles.com/group42/WAREZ/LAMACCHI.HTM

And these are only a few cases that made headlines; there are many additional controversies handled more quietly. The point remains that the MIT General Counsel's office exists to protect the institute, not the students, even while MIT's culture rewards innovative, boundary-pushing work.

The point at issue here is that MIT needs a legal support structure for such students commensurate with its encouragement of the work.


I don't know of any university that would stand up for their students. My old school doesn't even do tenure anymore so they can muzzle the staff, and is run by successive former political hacks who all chaired some partisan fundraising society and were parachuted into the dean's office through cronyism. The associate and vice presidents are real estate speculators and lobbyists or did party fundraising who've been busy building large private condos on endowment land to sell to foreign investors in order to personally profit.

Defending a student from feds means risking their careers since they only got these positions through political connections. All of them go on to the Dept of Foreign Affairs or some other government appointed position. This is just a stepping stone for them, who cares about students.


Definitely! What's pretty cool is that this is exactly the response of MIT administration as well http://tech.mit.edu/V134/N7/tidbit.html


Your parents point is not that MIT has done no wrong, but that Swartz is not the right example.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: