Why Jeff Bezos's Drone Is More Than a Joke - <AUTHOR> http://online.wsj.com/news/articles/SB10001424052702303722104579238312058025896#! <comment><USER2> How about this: Instead of dispatching drones from a warehouse, how about dispatching them from a delivery vehicle? So the Semi filled with orders drives into a town (doesn't even have to park), and these drones fly back and forth from it delivering packages -- it saves the driver the need to stop at each address, yet it also allows deliveries further from the warehouse.

<comment><USER3> A drone carrier. Generally I'd make a joke about skynet, but the concept is really awesome.

Another interesting drone concept I'd like to see explored: self driving package truck that drives around to the locations, sends an SMS to the person when it is near (I imagine would could have a decently complex system of commands with SMS such as scheduling preferred time, location, or rescheduling a failed delivery).

</comment></comment><comment><USER4> This is so transparently a fluff piece for the startup referenced in the latter falf of the article.

See pg's the submarine

<comment><USER4> [http://www.paulgraham.com/submarine.html](http://www.paulgraham.com/submarine.html)

<comment><USER5> Kudos to both of you (and to pg). I suspected something like that in action, but not to be such a well oiled machine.

</comment></comment></comment><comment><USER6> <EVIL> Just think, they could sell drone idle time and other captured video to the NSA and other interested parties to help defray delivery cost.

Can't sell ads... sell surveillance! </EVIL>

<comment><USER5> Or they will just be required by law to do that.

</comment></comment><comment><USER7> I keep seeing this sentiment everywhere. I don't know why people thinks this is a joke, that it is: "illegal," "implausible" and "kind of silly". Yes, Bezos did this to help boost up sales and set up PR to help the lobbying, but that isn't the _only_ thing about it. Why are people so stuck up on the silliness of the idea? Have people stopped being able to exercise their imagination and executing on it? Just because you can't conceive yourself pulling it off does not mean someone else cannot...

Not only do I think Bezos has the imagination and will to pull this off, I _know_ this is being implemented in places outside of the US. It's already happening. Right now. And if it is happening, right now, is it implausible? Is it silly?

By the way, I make a distinction between something we _can_ do and something we _should_ do. I am not sure this is something that is good for the world even though I don't think this is a silly idea. I see another facepalm moment coming up when the folks who have been saying this won't happen start screaming angrily that this shouldn't be happening.

<comment><USER8> People tend to underestimate how fast technological progress can happen, even in the field they specialize in, and even if they're consciously aware of this bias. This is why we see everything from skepticism to outright claims of impossibility about commercial delivery drones, even within the RC model aircraft hobby. These guys have seen electric model flight go from being essentially impossible in the 1990s to dominating the hobby shortly thereafter (thanks mostly to the rise of lithium polymer batteries). Then, mostly in the last 5 years, they've seen model multirotors (quadcopters, hexacopters, etc.) go from being an idea, to being a reality for more hardcore hackers [0], to being easy to assemble from parts with very little electronics knowledge [1], to being off-the-shelf toys for 40 bucks [2] (thanks mostly to the open source community and the rise of cheap smartphone sensors like gyros and GPS). It's hard to believe that even most of the multirotor community thinks that commercial drone delivery is a scifi fantasy, given how far multirotors have advanced in 5 years. Personally, my mind would be blown if this _isn 't_ extremely commonplace in another 5 years.

[0] [http://rcexplorer.se/projects/2010/03/the- tricopter-v1-and-v...](http://rcexplorer.se/projects/2010/03/the- tricopter-v1-and-v1-5/) Notice that stabilization is accomplished "manually" with 3 gyroscopes.

[1] Thanks mostly to integrated multirotor flight controllers, which contain sensors and a CPU to perform stabilization, like [http://www.hobbyking.com/hobbyking/store/__19534__HobbyKing_...](http://www.hobbyking.com/hobbyking/store/__19534__HobbyKing_Multi_Rotor_Control_Board_V2_1_Atmega168PA_.html).

[2] [http://www.amazon.com/Syma-Channel-2-4G-Quad- Copter/dp/B0096...](http://www.amazon.com/Syma-Channel-2-4G-Quad- Copter/dp/B0096SJU3U/ref=sr_1_2?ie=UTF8&qid=1386279027&sr=8-2&keywords=syma+x1)

<comment><USER9> _People tend to underestimate how fast technological progress can happen_

Counter-example: Internet Bubble 1.0

<comment><USER8> That wasn't necessarily an underestimation of how fast technological progress can happen. It was more of an economic misestimation.

<comment><USER9> I don't think so, just look at the mobile sector.

As of 1999, 3G was supposed forecast go live in 2001. But iPhone whent live in 2007 with 2.5G ! Also, in the US 3G sucked and you needed 3.5g to really get usable performance (ie, data) in the field.

</comment></comment></comment></comment></comment><comment><USER10> Is it just me or should, "unveiling of the project on '60 Minutes' Sunday carried three important public-relations payloads for the firm.", be followed by a list of three items?

<comment><USER11> It is. The next three sentences begin, "First", "Next", and "And".

</comment></comment><comment><USER12> Related: discussion of Zookal's plans to deliver college textbooks via drone.

[https://news.ycombinator.com/item?id=6550765](https://news.ycombinator.com/item?id=6550765)

</comment><comment><USER13> The only way this seems plausible is with nuclear powered engine(s)</comment>


Is It Time For Windows To Die? - <AUTHOR> http://www.conceivablytech.com/9614/business/is-it-time-for-windows-to-die

<comment><USER2> These arguments seem to largely revolve around the significance of versioning. Ie. "is it really 8, is it a new product?" It seems that versioning as a method of driving sales of new copies of windows hasnt really worked since windows 98, as every iteration since has required a hardware upgrade to use. And when you buy a new computer it tends to include a licence for windows, and at least in the last few years PC sellers even tend to be very slow to include new versions of windows on new pcs (for example, dell still advertise models with XP included, an OS which is over 10 years old at this stage), so there's evidence for the argument that new releases of windows have a negative effect on sales.

</comment><comment><USER3> > _"There isn't much Steve Ballmer has created at Microsoft, at least not as > far as the consumer sees it."_

Microsoft is not primarily consumer oriented company.

To understand where Microsoft's focus lies, one must remember three things...

      Developers

      Developers

      Developers</comment>


Vanilla Fever - <AUTHOR> https://www.1843magazine.com/features/vanilla-fever <comment><USER2> My $20 bottle of Madagascar vanilla extract was $50 last time I went to Penzey's. Just an hour ago, I bought a smaller bottle to help me ride out the price storm and noticed the price of that $50 bottle went down to $43. I sure hope it gets down to $20 again soon.

The price of vanilla beans have already dropped and I thought I would just make my own extract but I also thought I only needed one bean to so many ounces of vodka. Turns out, you need many more than that and I just can't justify the price despite what some online recipes may claim.

<comment><USER3> I have done a ethanol/soxhlet extraction of vanilla beans, and I got vanilla out of it, but no way to quantify how concentrated it was. Do you have any figures that detail what the vanilla bean / oz of vodka ratio should be?

<comment><USER2> There are recipes online. iirc, it's something like 4 beans to 4oz of vodka for "single fold" extract.</comment></comment></comment>


What is school for? - <AUTHOR> http://sethgodin.typepad.com/seths_blog/2009/01/super-bowl-laziness.html

<comment><USER2> At first glance it's the worst kind of list for hackers, all topics with no exposition. However, it's not the usual pablum. About half the items deal with producing a homogenized, pasteurized citizenry. The other half, learning for learning's sake, learn to spell, critical thinking are what we expect of education. Some like generate leaders and cultivate the gifted are wishful thinking on Grodin's part.

The list is pretty much on target The number of goals and inherent conflicts among them may explain why education is the US is not succeeding.</comment>


Introduction to Theoretical Computer Science - <AUTHOR> http://www.introtcs.org/public/index.html <comment><USER2> I love the approach of using a programming language as the model of computation, instead of Turing machines or RAM models. The credit for this idea belongs to Neil D. Jones and to Amir Ben Amram, for whom Boaz Barak was a TA back when Boaz was a grad student.

<comment><USER3> I might have suggested crediting Alonzo Church. :)

</comment></comment><comment><USER4> This is a very nice introduction, but it could definitely benefit from some perspective from the other side of computer science (PLs/types-land). E.g., the section on "beyond computing functions" could also discuss how such things can be nicely modeled using monads.</comment>


The Last Has Fallen. The Embargo Is Dead.  - <AUTHOR> http://www.techcrunch.com/2009/09/23/the-last-has-fallen-the-embargo-is-dead/ <comment><USER2> This is bad for startups (although we don't have any evidence yet that TechCrunch is intending to break all startup embargoes).

Part of a successful launch is getting the news out to several outlets -- you hit one particular reader on TechCrunch, a different one VentureBeat, etc. And by hitting multiple news sources, a single reader is much more likely to remember your story when presented with it multiple times.

Also, startups tend to have very specific launch cycles -- you are most likely scrambling to get everything out the door, and might not have a working product launched before 4-5am the night before. Sending users to an non- functional site not only gives them a bad impression of your service, but massively detracts from the benefit of the news coverage in the first place.

Without an embargo, it's more or less impossible to coordinate coverage from multiple sources -- once a story has "broken", other sources don't want to cover it.

There's the problem of journalists breaking embargoes, and we've had that happen to us in the past with lame excuses like "I thought it was EST instead of PST" when it was clear otherwise -- we don't talk to those journalists anymore. If people were a bit more stringent enforcing that, it wouldn't be as much of a problem.

An industry-wide no embargo policy doesn't seem to be in the reader's interests (as others have pointed out) -- an embargo leaves time for the journalist to get properly acquainted with the product, ask questions, and formulate their own opinion. It also enables multiple news sources to post about the topic, from different points of view.

It's certainly not in the startup's best interest. But it is in TechCrunch's best interest: by not following any embargoes, they are forcing companies to aggregate their news around the highest-value source, which, having the highest tech blog readership, would be TechCrunch.

<comment><USER3> I agree that this seems to mostly be serving TechCrunch's own interests.

However, is it really plausible for it to work any other way, in the end? Building plans around the voluntary cooperation of a bunch of people who would gain at least short-term benefit by defecting, combined with the "not getting the genie back in the bottle" nature of public information, is going to be an unstable equilibrium at best.

All it takes are one or two influental people who are willing to take the social reputation hit from not playing along to bring the whole thing down. If not TechCrunch, someone else eventually. Lamentable, yet likely inevitable.

<comment><USER4> If TechCruch is always going to _defect_ then leaving them out of the loop is probably a good idea. They are worth less publicity than the non defectors combined so telling them is a bad idea. I think TechCruch has been slowly failing for a while, and this is going to hurt them more than you might think.

</comment></comment></comment><comment><USER5> It saddens me that "new media" appears to be singularly focused on who gets to break a story first and not who provides the most insight or value with their reporting.

<comment><USER6> Old media places a high value on being 'first' as well.

</comment></comment><comment><USER7> Countdown to companies starting to deliberately give TC false/misleading releases in 3... 2... 1...

</comment><comment><USER8> _Late last year I announced a new policy at TechCrunch – we don't do embargoes. Well, it was a little more complicated than that, and designed to stir up chaos in the PR ranks._

Good to see techcrunch being classy as ever and openly admitting that they don't really care about factual reporting.

<comment><USER2> Actually, I've found TechCrunch's stories to be incredibly more factual than most in the traditional media -- the illusion of 100% factual reporting isn't the same, though, as they don't bullshit you about their process.

<comment><USER2> Whoever is downvoting this has likely never participated in the news making process. Traditional journalism is often wildly inaccurate, and most of it is spoon fed from PR agencies, anyway.</comment></comment></comment>


Pendulum – Python datetimes made easy - <AUTHOR> https://github.com/sdispater/pendulum <comment><AUTHOR> Pendulum is a new library for Python to ease datetimes, timedeltas and timezones manipulation.

It is heavily inspired by [Carbon]([http://carbon.nesbot.com](http://carbon.nesbot.com)) for PHP.

Basically, the Pendulum class is a replacement for the native datetime one with some useful and intuitive methods, the Interval class is intended to be a better time delta class and, finally, the Period class is a datetime-aware timedelta.

Timezones are also easier to deal with: Pendulum will automatically normalize your datetime to handle DST transitions for you.

        import pendulum

        pendulum.create(2013, 3, 31, 2, 30, 0, 0, 'Europe/Paris')
        # 2:30 for the 31th of March 2013 does not exist
        # so pendulum will return the actual time which is 3:30+02:00
        '2013-03-31T03:30:00+02:00'

        dt = pendulum.create(2013, 3, 31, 1, 59, 59, 999999, 'Europe/Paris')
        '2013-03-31T01:59:59.999999+01:00'
        dt = dt.add(microseconds=1)
        '2013-03-31T03:00:00+02:00'
        dt.subtract(microseconds=1)
        '2013-03-31T01:59:59.999998+01:00'

To those wondering: yes I know [Arrow]([http://crsmithdev.com/arrow/](http://crsmithdev.com/arrow/)) exists but its flaws and strange API (you can throw almost anything at get() and it will do its best to determine what you wanted, for instance) motivated me to start this project. You can check why I think Arrow is flawed here: [https://pendulum.eustace.io/faq/#why-not- arrow](https://pendulum.eustace.io/faq/#why-not-arrow)

Link to the official documentation: [https://pendulum.eustace.io/docs/](https://pendulum.eustace.io/docs/)

Link to the github project: [https://github.com/sdispater/pendulum](https://github.com/sdispater/pendulum)

<comment><USER2> I can't decide if auto-normalizing my times to DST is a feature or anti- feature. If I didn't know it was there, I would consider it a surprising default.

<comment><AUTHOR> I see what you mean but as soon as you deal with timezone-aware datetimes you don't really have a choice, if an hour has been skipped, it simply doesn't exist.

What is important here, I think, is that any time arithmetic is not affected by this normalization, so if you add an hour the difference will be an hour, so you don't really have to think about it.

<comment><USER3> > I see what you mean but as soon as you deal with timezone-aware datetimes > you don't really have a choice, if an hour has been skipped, it simply > doesn't exist.

So somebody clearly made a mistake (either the user or the programmer not checking the input) which you can't automagically fix. Well, at least, it's a terrible idea.

I understand the intent of helping them, but you make more harm this way.

It's also against the ZEN of Python.

<comment><USER4> I tend to agree.

Obviously automatic normalisation is the correct thing to do when doing arithmetic that crosses DST-rollover boundaries (this is what the Python stdlib gets wrong), but I don't think it should be done (by default) upon _creation_ with a location-based TZ specification:

pendulum.create(2016, 10, 30, 2, 30, 00, 0, 'Europe/Paris') is ambiguous, and pendulum.create(2016, 3, 27, 2, 30, 00, 0, 'Europe/Paris') is non-existent. pytz raises AmbiguousTimeError or NonExistentTimeError respectively in cases where you try to construct local times like that and specifiy is_dst=None: [http://pytz.sourceforge.net/#problems-with- localtime](http://pytz.sourceforge.net/#problems-with-localtime)

With pendulum I don't see a possibility to enforce a "strict mode" that turns of those automatic assumptions.

<comment><AUTHOR> I am not too kind on raising an error by default (which pytz does not do by default either but rather return the pre-DST transition time).

I think the best thing to do here is keep the current behavior (post-DST) but with an option to choose what you want exactly (post-DST, pre-DST)

</comment></comment></comment></comment></comment></comment><comment><USER5> This area is prone to severe bikeshedding. Back in 2012, I filed a Python bug, "datetime: add ability to parse RFC 3339 dates and times"[1] RFC 3339 timestamps appear in email, RSS feeds, etc. The datetime library could output them, but not parse them. There are at least seven parsing functions in PyPi for them, and each has some major problem.

There have been steady discussions of this issue for almost four years now. I dropped out years ago, but the arguments go on.

[1] [https://bugs.python.org/issue15873](https://bugs.python.org/issue15873)

<comment><USER6> Past bikeshedding, there's also the long list of myths programmers believe about time[1] and the crowd-sourced followup[2]. Pendulum inherits from datetime in the stdlib, but I'm unsure how well either of those address the issues raised (or even if it's possible - some need to be addressed by the code that uses pendulum/datetime).

[1] [http://infiniteundo.com/post/25326999628/falsehoods- programm...](http://infiniteundo.com/post/25326999628/falsehoods-programmers- believe-about-time) [2] [http://infiniteundo.com/post/25509354022/more- falsehoods-pro...](http://infiniteundo.com/post/25509354022/more-falsehoods- programmers-believe-about-time)

<comment><USER5> Nobody has a good solution to leap seconds. 86400 seconds = 1 day is nailed into too much software. The problem is serious enough that some operations, including high frequency trading, are stopped around a leap second.

</comment></comment></comment><comment><USER7> I know pandas is a bit meaty for a date time library if you don't already use it but their Timestamp class is awesome. String parsing is a breeze, offsets and timezones are easy and then there's a ton of support for time series.

        In [34]: pd.Timestamp('2016-08') == pd.Timestamp('2016.08') == pd.Timestamp('2016/08') == pd.Timestamp('08/2016')
        Out[34]: True

        In [38]: pd.Timestamp('2016') == pd.Timestamp(datetime.datetime(2016,1,1))
        Out[38]: True

        In [49]: pd.Timestamp('2016') + pd.offsets.MonthOffset(months=7) == pd.Timestamp('2016-08')
        Out[49]: True

        In [52]: pd.Timestamp.now()
        Out[52]: Timestamp('2016-08-17 08:01:07.576323')

        In [53]: pd.Timestamp.now() + pd.offsets.MonthBegin(normalize=True)
        Out[53]: Timestamp('2016-09-01 00:00:00')

see [http://pandas.pydata.org/pandas- docs/stable/timeseries.html](http://pandas.pydata.org/pandas- docs/stable/timeseries.html) for more examples

<comment><USER8> I also really like the Timestamp class, are the obvious reasons not to use it?

<comment><USER9> Having pandas as a dependency?

<comment><USER8> That doesn't seem like a terrible dependency, is that the only reason?

</comment></comment></comment></comment><comment><USER3> I don't understand why this library exists. I am (literally) manipulating datetimes for a living in a Django app this whole year and we don't even have Arrow installed. Pytz and maybe dateutil is all you need.

Also I really hate when someone fragment the energy and their time making a new, inferior library instead of fixing and patching the existings for basic things like this. This way we will have a bunch of incomplete, inferior libraries which all have quirks instead of only one really good one which could everybody use...

<comment><USER10> I don't see what the big deal is. These people are spending their own time making libraries, and not using up your time. Are you to judge how people should make use of their time?

Second, I think it's great that people are making alternatives - it promotes a healthier ecosystem where people can share good ideas as well.

> instead of fixing and patching the existings Finally, by your logic, the > popular requests library shouldn't have existed and Kenneth would have been > patching the more conventional urllib library

<comment><USER3> > Are you to judge how people should make use of their time?

This library did not born because of fun, but because of solving a (non- existing) problem from frustration. I would have not said one word if he was doing this for fun or just learning or something like that.

<comment><USER10> What defines a problem as non-existing/existing? It's very subjective. While it may not be for you, the author definitely saw an issue that needed to be fixed.

Again, I'm using the example of requests: was Kennethwrong to implement something new when there was already a standard lib?

</comment></comment></comment></comment><comment><USER11> Looks like a nice polished interface. I am wondering what is Pendulum's policy on invalid input. The examples illustrate the inconsistent approach to invalid inputs:

In some cases it guesses what you meant:

        >>> pendulum.create(2013, 3, 31, 2, 30, 0, 0, 'Europe/Paris')
        '2013-03-31T03:30:00+02:00' # 2:30 does not exist (Skipped time)

In other cases, it raises exceptions:

        pendulum.parse('2016-06-31')
        # ValueError: day is out of range for month

<comment><USER12> +1, i'd expect a ValueError in the first example

</comment></comment><comment><USER13> Python stdlib datetime/time/calendar libs are junk. That one constantly has to read obscure function signatures in the docs to do rather obvious things is just awful.

On the otherhand if you've e.g. Ruby/Rails datetime handling than you get used to reasonable things working ( such as Time.now + 1.day ) that Arrow doesn't handle well. As a matter of fact Arrow got rid of DT deltas and seemingly made the situation worse.

I've only looked at the examples in the docs; but to be serious, Python should just scrap their DT/time/calendar libs and copy Ruby verbatim. This NIH thing needs to stop..

<comment><USER14> 1.day? I confess to not being a Rubyist, but does that require monkeypatching the base int class?

I don't see anything unreasonable about Pendulum's interface. Let's let Python be Python and Ruby be Ruby.

<comment><USER15> No, don't think so. I think this is a native syntax construct in Ruby.

<comment><USER16> 1.day is not a native Ruby concept, it is a method monkeypatched into the Numeric class by Rails' ActiveSupport. See [http://api.rubyonrails.org/classes/Numeric.html#method-i- day](http://api.rubyonrails.org/classes/Numeric.html#method-i-day) and [https://ruby-doc.org/core-2.2.0/Numeric.html](https://ruby- doc.org/core-2.2.0/Numeric.html).

<comment><USER17> I can see how people think it is native Ruby. Very few people use Ruby without Rails.

</comment></comment></comment></comment></comment><comment><USER18> What benefits does this have over [Delorean]([http://delorean.readthedocs.io/en/latest/](http://delorean.readthedocs.io/en/latest/))?

The README for Pendulum seems to show me one feature Delorean doesn't explicitly have -- `is_weekend()` -- otherwise these libraries are conceptually very similar.

I do agree that this (and Delorean) is a usability improvement over `datetime` and perhaps even Arrow (though I'm not tremendously familiar with Arrow).

<comment><USER19> So far I haven't seen either of these libraries do substantially better than datetime+dateutil+pytz at anything they claim to be good at.

<comment><USER20> I'm happy to not have to import 3 libraries anymore (2 that aren't part of standard library) to see if one date is greater than another or to add few days to a date.

<comment><USER19> They both import all three under the hood.

</comment></comment></comment></comment><comment><USER2> I've been happily using django.utils.timezone for a while now and doing everything on the backend in UTC. For any user-facing timestamps, to some degree I'd rather keep that in the front end and a separate concern from my API.

Not saying storing user timezone and converting on the backend is bad; but this is simpler when localized timestamps aren't a core part of my app.

<comment><USER21> Yes, always work in UTC. But you could use this library to convert user provided naive datetimes to UTC, and datetimes coming from the database into localised datetimes. Converting from/to timezones other than UTC in Django isn't as nice as it could be.

<comment><USER22> No, don't always work in UTC.

If a Samoan user told you to record an event for January 1st 2012 on January 1st 2011, if you stored the date in UTC would have reminded them on January 2nd 2012 (all local).

Because in May 2011 Samoa announced they were going to skip a local day and move across the international date line. So 2011-12-30T09:00:00 UTC was 2011-12- _29_ T23:00:00 Pacific/Apia, but 2011-12-30T10:00:00 UTC was 2011-12- _31_ T00:00:00 Pacific/Apia.

<comment><USER21> Wow, that's a really interesting case. I guess the same thing would happen whenever an offset was adjusted after you store a value in UTC intended for another timezone. I don't think this is even supported by Django - all times are converted to UTC on entry to the database.

<comment><USER22> > Wow, that's a really interesting case. I guess the same thing would happen > whenever an offset was adjusted after you store a value in UTC intended for > another timezone.

Yep, or if a DST change was added or rescinded (which can happen on surprisingly short orders, many governments love fucking up with DST, this year 2016 we got an infirmation of Egyptian DST with _3 days_ lead time).

</comment></comment></comment></comment></comment><comment><USER23> What about precision? There is the Date object with day-precision and the Datetime object with microsecond precision ... but nothing else. There's no canonical way in Python with any library that I know of to say "July, 2013" or even "12:15pm". The former will simply put in July 1st and the latter will put in seconds and microseconds implying precision that doesn't exist.

Anybody know of an elegant solution/library or even a library that would be open to including such a concept?

<comment><USER24> numpy does this, with np.datetime64('2013-07') or np.datetime64('2013-07-01 12:15'). I wouldn't recommend using it if you're not otherwise using numpy, though.

</comment></comment><comment><USER25> My experience over the last few years has been datetime > dateutil > pytz > arrow > back to dateutil. Maybe I'll try Pendulum next. ;)

</comment><comment><USER26> Good to see we're starting to come close to getting dates and times handled according to the rules (I won't say sensibly, because the rules themselves aren't sensible). But then we start over-reaching and trying to handle social constructs built on top of dates and times, which is even more of a mess D:

Eg, spot the error:

        _weekend_days = [SATURDAY, SUNDAY]
        date.is_weekend = date.day in _weekend_days

Hint: [https://en.wikipedia.org/wiki/Workweek_and_weekend#Around_th...](https://en.wikipedia.org/wiki/Workweek_and_weekend#Around_the_world)

(TIL one country doesn't even have _consecutive_ weekend days)

<comment><AUTHOR> I agree but this is an optional feature which might cover most of the developers needs. But, if not, it's configurable:

        pendulum.set_weekend_days([pendulum.SUNDAY])

</comment></comment><comment><USER27> Looks clean.

I think the `in_words()` function should probably be delimited by commas though, good to have your strings easily deconstructed into their constituent parts.</comment>


High-Powered REPL for Haskell, Inspired by IPython - <AUTHOR> https://github.com/litxio/ptghci <comment><USER2> There is already a Haskell kernel for IPython:

[https://github.com/gibiansky/IHaskell](https://github.com/gibiansky/IHaskell)

How does this project differ in scope/design goals?

(This project uses a different approach to implement essentially the same thing:

> It is implemented as a wrapper around GHCi based on Python's prompt-toolkit > library and heavily inspired by IPython. )

<comment><USER3> It doesn't look like this works in the web browser or uses any of the Jupyter infrastructure at all. It seems like the UX is far better than IHaskell's Jupyter console integration though, which is fantastic.

IMO the biggest issue with IHaskell is that it requires a correctly configured Python environment (in addition to a correctly configured Haskell environment), which this also does, so I don't think this is a substantive improvement.

(I currently help maintain IHaskell)

<comment><USER4> > IMO the biggest issue with IHaskell is that it requires a correctly > configured Python environment

Ah, you reminded me that I need to put up a PR with some fixes...

</comment></comment></comment><comment><USER5> IPython dev here; congrats, that looks great !

</comment><comment><USER6> They can base the kernel on top of these C++ libraries:

\- [https://blog.jupyter.org/a-new-python-kernel-for-jupyter- fcd...](https://blog.jupyter.org/a-new-python-kernel-for-jupyter-fcdf211e30a8)

\- [https://github.com/QuantStack/xeus](https://github.com/QuantStack/xeus)

One day, hopefully, language-independent part of Jupyter will be rewritten completely in Rust (backend) and WebAssembly (frontend), to achieve the portability, better safety guarantees, and speed.

</comment><comment><USER7> how does typeBarEnabled and tab completion work? I have yet to find a solution in any editor that can do type under cursor for a trivial codebase and this, for me at least, is the most necessary tool for writing Haskell because of how crappy docs are usually

<comment><USER8> You should give VScode + haskell-ide-engine a try. It offers a really good completion engine.

</comment></comment><comment><USER9> Looks really nice! I'm looking forward to trying this out.</comment>


Intuition + Money =  An Aha Moment - <AUTHOR> http://www.nytimes.com/2008/10/12/business/12stream.html <comment><USER2> Quote of the dsy: "In science, the most exciting expression isn't 'Eureka!' It's 'Huh?'".

<comment><USER3> For me it's "booyah!".

Said shortly after I prove or disprove something.</comment></comment>


Show HN: SlackBorg – make conversational Slack bots with Python - <AUTHOR> https://github.com/josefdlange/slackborg <comment><AUTHOR> This project is still in its infancy but I was frustrated that I couldn't find a Slack Bot library in Python that was more than a single command-response framework.

This is a first pass at allowing stateful conversations. Hope you like it! Please feel free to contribute questions, comments, or code!</comment>


Canada Wins, U.S. Loses in Global Fight for High-Tech Workers - <AUTHOR> https://www.npr.org/2020/01/27/799402801/canada-wins-u-s-loses-in-global-fight-for-high-tech-workers <comment><USER2> There are other factors to look at here though, wages for tech workers at even top tech companies are abysmal in Canada. Vancouver for example pays a median of $34/hr (statistics Canada) * 1702hrs/yr (OCED) ~ $60,000/yr -$14,000 in tax gets you a whopping $46k/yr in a place more expensive than San Francisco. Montreal is even more of a joke for tech wages where massive financial companies want and get programmers for $26-$30/hr

<comment><USER3> The article talks specifically about immigrant tech workers and the impact of different immigration rules between both countries on the tech job market. Salaries in some parts of the US is much larger than in Canada, nobody is arguing about that, but it's easier for a tech company to hire an immigrant in Canada. In a nutshell, the author pushes the idea that the US current immigration policy gives a disadvantage to the US tech industry, especially for startups.

It seems like an oversimplification, because immigrating in Canada is not so simple, especially when accounting for the differences between provinces (I've heard that Quebec is a bit paradoxical about immigrants).</comment></comment>


Would healthy people ever willingly replace their eyes with bionic eyes? - <AUTHOR>

If the technology for artificial eyes advances so much that their performance far surpasses the performance of natural eyes to give a competitive advantage in life, would be there a day when people desire to or willingly replace their healthy eyes with those bionic eyes?
Or for that matter, limbs, hearts, lungs or whatever?
Would it result in a day when people just have their brains and everything is bionic?
How would people react to such technology becoming very accessible? <comment><USER2> In 2008 one of the DARPA 'Young Faculty Awards' went to someone at UW-Madison for a project named "Super Artificial Eyes"; I don't know nearly enough biomedical engineering to parse even half of his paper titles, but it appears he's still working in this area. I'm sure the military would be very interested in this and similar techniques, thus the DARPA funding. I would guess that for a long while after it's actually viable it would remain mostly an expensive toy for nation-states but eventually it would leak out to people who can make use of it (sports stars, for instance) or people who are just into self-modification, long before it becomes common among normal humans.

How will people react to it? Just ask yourself how older people reacted to electricity, the Internet, genetic engineering of infants, &c. It will seem normal once enough people have grown up with it, for the rest of us (outside of the neophiles, which probably is a majority on HN but a tiny minority in the general population) it will just seem crazy and strange.

</comment><comment><USER3> Sure, just look at plastic surgery. Women have been replacing their perfectly healthy boobs with artificial ones for decades. It's just a matter of having the technology ready for the "upgrade."

</comment><comment><USER4> When I was a kid, tattoos were looked down on, and piercings were something you saw in pictures from Brazil. Now? Both are common and accepted.

Standards can change a lot, quite quickly.</comment>


Mea Culpa: GitHub works well, my mistake made them look bad - <AUTHOR> http://www.andrewljohnson.com/article/Mea%20Culpa:%20GitHub%20works%20well,%20my%20mistake%20made%20them%20look%20bad

<comment><USER2> Very classy apology. While Andrew's quickly jumping to conclusions is certainly not something to emulate (as he obviously implies in his apology), his ability to assume complete responsibility for a mistake that damaged a reputation is something all members of Internet communities should take note of.

<comment><USER3> Similarly, GitHub acted in a classy way too. Tom helped Andrew throughout the thread without any snark or dismissals that are, sadly, quite easy to dish out. It certainly contrasts with the recent "go away" Tumblr story.

<comment><USER4> Hadn't heard of this. <http://news.ycombinator.com/item?id=2151768>

<comment><USER5> Don't forget to see this comment! <http://news.ycombinator.com/item?id=2152203>

As well as this one: <http://news.ycombinator.com/item?id=2152047>

</comment></comment></comment></comment><comment><USER6> With apologies to xkcd:

      $ git push origin HEAD:make-me-a-sandwich
      git: what? make it yourself.
      $ git push origin +HEAD:make-me-a-sandwich
      git: okay.

</comment><comment><USER7> Instant overreaction and posting to HN has come up a lot lately.

The Skype story yesterday was another mistake where a technical support person wrote that a bug was "by design" when they meant to type "bug," so of course it gets raced into HN as 'news' rather than trying to get clarification.

<comment><USER8> To be fair when working as a software tester on more than one occasion did a developer mark an obvious bug as "by design".

<comment><USER9> Sometimes it is by design, but the design is flawed.

</comment></comment></comment><comment><USER10> +1 for actually stepping forward and apologizing! Always impressive when people do that.

</comment><comment><USER11> Thanks for this, it's always tough to admit when one is wrong.

</comment><comment><USER12> I think the lesson here is that for all our high-minded self-esteem, Hacker News is just as susceptible to hive-mind behavior as the sites HN users like to pooh-pooh.

</comment><comment><USER13> I wish github (and git in general) had a better way to view the history of your history, as it were. It's great that get let's you change histoy, but it can be quite problematic if someone messes up that history, especially if it's not caught right away. Yes, it's in the reflog, but so is _everything_, so finding the right thing can be quite daunting.

<comment><USER5> Have you tried gitk, or <https://github.com/shoes/shoes/network> , for example? What would you like to see?

I don't work for GitHub, I've just never really had this problem, so I'm curious.

</comment></comment><comment><USER14> As a side remark, I'd love it if github had an option to disable forced pushes for a project. In general they are very confusing in collaborations.

</comment><comment><USER15> Shame on those who upvoted the original linkbait story. When will these sorts of sensational headlines stop?

<comment><USER16> No kidding, if I were GH I would be furious that that story was sitting at the top of HN (which is about as influential in the circles GH cares about as it gets) for the better part of a day.

It's embarrassing for both Andrew and for HN.

</comment></comment><comment><USER17> Google cache: [http://www.andrewljohnson.com/article/Mea%20Culpa:%20GitHub%...](http://www.andrewljohnson.com/article/Mea%20Culpa:%20GitHub%20works%20well,%20my%20mistake%20made%20them%20look%20bad)

Site is down. (Or not, there was a 500 error when I tried to access it)

<comment><USER10> Seems to be back again.

</comment></comment><comment><USER18> It is great to admit but this is also good lesson for developers... you should always blame yourselves first; I have heard lots of funny stories over the years.

1.) I think there is an issue with the compiler :) 2.) The Java Classloader is broken :) 3.) Git is broken :)

My response -> "I will think of a million things it could possibly be on my way to your desk of those; the compiler, the classloader and git won't even be in the list"

3.) It doesn't work in IE 6...

Well ok, I guess the browser is the one area where blaming something else might be appropriate.

If after looking through all the possibilities that could be a reason for it not being your fault, stand up get a coffee and look at it again.

</comment><comment><USER19> Wouldn't it be great if your scm actually kept all your changes no matter what?

<comment><USER19> So it appears that every response to my message said that it wasn't lost but would be in 90 days if no one noticed. That is not the definition of 'never loses changes'. The fact of the matter is that someone that doesn't understand the way git works can cause irreversible damage without recourse if not discovered. In many source control systems this is not the case. I still use git on github even with this flaw.

<comment><USER20> The underlying problem is that GIT was never meant as a centralized scm. A centralized source control system will never lose changes, even if one of the users messes up. This means that it distinguishes between normal committers and 'admins'. Only admins can do irreversible actions.

Git uses local, cloned repositories and users can do everything they like with them. Changes can be pushed and pulled to other repositories, possibly changing them irreversibly.

By using github you use GIT in a (kind of) centralized way. Suddenly there is an 'central project repository' again, that needs to be protected against damage. But as GIT was never meant to do this, and trusts its users, it has to be bolted on somehow... at least, that's how I understand it.

I hope they will get this right as it's very important for accountability.

<comment><USER21> You don't need to allow others write access to your repositories on github. Simply have them fork your public repository but don't add them as a collaborator. They can commit all they want and send you or any one of your 'admin' collaborators a pull request. This idea that git/github is losing changes is not true. You have at least until the next time the gc is run (90 days at github?), which is well beyond the time required to resolve the issue in any active project.

</comment></comment></comment></comment><comment><USER22> This is something that always bothered me about git. Anyone with access to the repository can delete or overwrite a branch. Would be nice, if github had a way restrict deletes of a branch, or a prevent a force push. Not sure if git architecture actually makes this possible.

</comment><comment><USER23> Wasn't there fiasco involving one prominent magazine for PC machines, where the author claimed that Vista was using all of the memory, while that memory in fact was cached.

But when in doubt, what happens with your cache on XP, Vista or Windows7 just use Mark Russinovich's RamMap. For example it helped me realize that NTFS compressed files, although compressed on disk would end up using the same amount of cache (memory). For that reason, it's probably better to store files compressed, rather than relying on NTFS.

<http://www.google.com/search?q=rammap>

</comment><comment><USER24> Good for you. I think this points to plenty of opportunity out there for making Git easier to use. I know I would pay for something like that.

</comment><comment><USER25> Takes something to apologize like that. I'm sure they're glad about it.

You seriously made me paranoid about my repositories.

</comment><comment><USER26> Nicely done, sir. Assuming all present here are human (!), we all screw up...something to do with the programming, I guess?!

</comment><comment><USER27> Everyone learns from this! Now let's form a circle, colour some line-drawings, and watch a Disney flick.</comment>


Nearing my 1 year cliff and have an offer elsewhere – when to give notice? - <AUTHOR> I have been working at a bay area startup for 11 months now. I have another job lined up and I plan on leaving my startup.
I have heard some bad things about the CEO wanting people gone immediately once they say they are going to leave the company. Ideally, I would like to give 2-4 weeks of notice and have my last day be shortly after I hit my 1 year cliff.
However, I am afraid that if I give notice before my cliff date they might fire me and screw me out of my equity stake just before I vest.
Has anyone run into this situation or have advice? Are there any CA/Federal laws I should know about? <comment><USER2> Wait until your cliff date passes, don't gamble if you don't have to.</comment>


Ask HN: How do I become a Customer Success Manager? - <AUTHOR> Hi HN!
I wanted some career advice and I'm hoping that someone here will see it!
I have a strong Web (SaaS) Development background. I also have some Project Management, Marketing and Sales experience. I also know how to managing a fast-food franchise!
I recently found out that Customer Success Management is a thing and would love to become a Customer Success Manager.
I'm technical, can speak business, love making people happy... how do I do this?
Would love your advice. <comment><USER2> In my experience, the title "Customer Success Manager" is a different way of saying Customer Service Manager, Project Manager, Client Services Manager. It really depends on the company. For example, I worked for a company that was opposed to using the word "customer", they preferred "client" so titles were adjusted to use client instead of customer. We had the "client support team", "client support managers", "client account manager".

Considering that, you could search and apply to jobs that are customer facing like those mentioned above. You could also search for the term "customer success manager" and compare the requirements of those positions to "customer service manager", "project manager", "pre-sales engineer", "account manager", etc..

</comment><comment><USER3> Its difficult, I believe you should really get started working with.</comment>


This Psychologist Might Outsmart the Math Brains Competing for the Netflix Prize - <AUTHOR> http://www.wired.com/techbiz/media/magazine/16-03/mf_netflix

<comment><USER2> I've always known that science journalists don't know anything about science. I'm only now realizing that they don't know anything about journalism either.

They only know how to tell one story. That's the story of the underdog scientist who is (or more commonly, "might be about to") upsetting the stuffy old establishment. Everything that goes on in the scientific community has to be shoehorned into the storyline of "Dodgeball" or "The Mighty Ducks", or else they have no idea how to talk about it.

I was originally going to post this comment on the thread about the "surfer dude with theory of everything" article, but it fits here just as well.

<comment><USER3> Sure, there's plenty of fluff in the article, but it isn't because the author (<http://www.math.wisc.edu/~ellenber/>) is clueless about science. The article is probably at the right level of technical depth. Seems ambitious to even touch SVD in Wired.

<comment><USER2> Oops. I stand corrected. The author of this _particular_ article obviously _does_ know the subject very well. My apologies.

</comment></comment></comment><comment><USER4> This article needed a lot more info about the psychologist's approach to make it interesting, it was 90% background and the barest hint at the end about what he is actually doing. For all we know he may have just made minor tweaks to some existing algorithm.

<comment><USER5> The article mentions tweaking the algorithm to take the timing of ratings into account. It gives the example that a person might rate two movies as 3/5, and a third they watch right after as a 4/5, because it was better than the previous two, but under normal(ized) circumstances that user would've given the 3rd movie a 3/5 too.

Soo.... it's an interesting notion, that there can be time-segment-based normalization of the data set. Team Bellkor/KorBell credit a big part of their gains to using the ordering of rankings, rather than the rankings themselves to test for similarity, so this guy's actually got a novel approach for normalizing the dataset. I really don't know how he can detect if he's dealing with the kind of person that is meticulous enough to make sure their new ratings take all their previous ratings into account, though, or if he's dealing with the kind of person that gives everything a rating from 4/5 to 5/5.. I wouldn't be surprised if he hits a wall because of this.

Really I think netflix would make a lot better strides towards their goals by improving their data collection technique. They could probably make great enhancements towards normalization just by saying "you gave this previous movie 3/5 stars. How do you rate this latest movie?" That way the data would be much more normalized. There are lots of possibilities for this sort of enhancement, so I'm not sure why they're only letting competitors look at the already collected dataset.

</comment></comment><comment><USER6> Why does he or the author consider him a psychologist? I think its a bit misleading when simply reading the title of the article. He has an undergraduate degree in psychology, but his master's is in operations research (and correct me if I'm wrong, but OR is usually the application of statistics to business problems, right?). Wouldn't the article more accurately be something like "Operations research guy uses statistical technique motivated by psychology ... "

</comment><comment><USER7> It was a great article, but he hasn't really been anonymous in the Netflix Prize world:

[http://www.netflixprize.com/community/viewtopic.php?pid=6090...](http://www.netflixprize.com/community/viewtopic.php?pid=6090#p6090)

Anyway, congrats Gavin...

</comment><comment><USER8> "Just a guy in a garage" is now at #8. "When Gravity and Dinosaurs Unite" tops the leaderboard ( <http://www.netflixprize.com/leaderboard> ), above BellKor (the progress prize winner of 2007).

</comment><comment><USER9> Yet another psychological problem mathematicians too eagerly claimed as their own. Why not try to find patterns about the movies which appeal to a certain individual? Is it against the rules to use outside data (actors, directors, etc)?

<comment><USER9> From the Netflix prize FAQ:

 _Why not provide other data about the movies, like genres, directors, or actors?

We know others do. Again, Cinematch doesn't currently use any of this data. Use it if you want._

That seems like an easy target - if I've 5-starred every movie with Kevin Spacey, I probably will like anything with Kevin Spacey. Why not mine blogs and reviews, trying to find themes which are appealing to individuals?

<comment><USER5> It's probably just not that hot of a solution, believe it or not. The recommendation engine should be able to make much better associations between movies, without even being able to describe what those associations are. Looking at features like genre, director, actor etc, is like a spam filter looking for specific spammy words. As soon as the spammers start saying "p3n1s" instead or Eddy Murphy starts making family movies, it falls apart. Check out [http://karmatics.com/docs/evolution-and-wisdom-of- crowds.htm...](http://karmatics.com/docs/evolution-and-wisdom-of-crowds.html) (scroll down to "3. Recommendation Systems" for the relevant part) for an explanation.

<comment><USER10> Great link. Thanks for posting that.

</comment></comment></comment></comment><comment><USER11> Kills me how fast WIRED postings make it in. We start discussing articles before I even get to read them in the real magazine :(

<comment><USER12> Wired and Reddit are part of the same media conglomerate, so that explains how the wired articles get on Reddit. I think a lot of n.yc readers read reddit, so that is how they get here so fast I bet.

</comment></comment><comment><USER13> Now there just needs to be an economist to drop in and sneak an entry with a 9% improvement.

Statistics and math are excellent tools, but they're quite blind.

<comment><AUTHOR> well... there is probably already a few teams with econometricians on board. based on my prior experience with that ilk - I'm sure their progress got held up by the insistence that all returns (err, ratings) follow a guassian distribution.

Also, all of that training in math and stats is pretty useless if you just use it to "prove" something you already "know" :)</comment></comment>


A collection of open AWS security solutions - <AUTHOR> https://asecure.cloud/solutions/ <comment><AUTHOR> I wanted to have an easily searchable collection for security solutions posted by AWS and the community, and something that could be updated on an ongoing basis.

I would love to get some feedback or suggestions for content, layout or any other details.</comment>


Estonia revokes certificates for 760.000 id cards - <AUTHOR> Estonian government decided to revoke certificates for the majority of ID cards used in Estonia before Saturday this week due to a known vulnerability. The software and certificates for ID cards are being updated. See http://id.ee/index.php?id=30519 <comment><USER2> Why not use the HTTPS version of the link:

[https://id.ee/index.php?id=30519](https://id.ee/index.php?id=30519)

Not sure why they don't redirect.</comment>


Learning a Personalized Homepage - <AUTHOR> http://techblog.netflix.com/2015/04/learning-personalized-homepage.html

<comment><USER2> Great writeup...I generally don't have a problem with the pages Netflix generates for me...the main complaint is that things get stale if you visit every day, but that's more of an issue of the relatively narrow library that Netflix can afford (it was much more inviting back when Starz was in its fold). I would like to see some category of really shaking things up...I mean that sometimes, the page shows things that are too obvious for me...e.g. "You watched a Star Trek episode, well here's a row devoted to every Star Trek series and documentary, even though you know you've sampled the other series during your time as a Netflix customer" (and some seem just lazy....just because I watched one of those Fireplace videos during Christmas, I now have a row of things dedicated to moving-art types of videos)...I'd like to see a row of things that are highly-rated but completely outside of the genres that I currently watch...what would you title such a row? "Adventurous Choices"? I'm sure Netflix's algorithm already tries to sprinkle in well-liked items that are well outside of my zone of comfort...it'd be nice to just have a row where I _knew_ everything in it was of this metric.

And while we're on Netflix's legendary use of user analytics...does their A/B testing _seriously_ tell them that the mouseover-to-scroll-the-row-at-a- snails-pace is what users want? It is the most baffling and frankly, user- hostile feature of the site, so much that if I was a new customer, I'd think the site was run by amateurs.

<comment><USER3> Just a guess, but that scrolling behavior you hate could be an optimization for the case of two or more people trying to choose a show/movie together. This way, whoever's operating the page won't browse in a way that disorients the audience, but instead give them time to discuss options as they mosey by.

<comment><USER4> Even alone, I find it forces me to reconsider more.

I kinda see it as like a "whoah there sonny, you know I only have 100 movies total, why don't we look through each one of them before you give up there, eh speedy?" which while frustrating ... kinda makes sense. (if I were to verbalize their UX).

</comment></comment></comment><comment><USER5> Their machine learning to give you an optimized homepage is cool, but I wish they still gave some degree of optional manual control. For example, I wish I could force "My List" to always appear at the top of the page. I think by now they've figured out that at least half my viewing is things on my list and it seems it's usually at the top, but this can still be frustrating the times it's not.

Also, I wish I could tell Netflix "I want to watch a movie" or "I want to watch a TV show" and have it only show one or the other. I usually know which I'm in the mood for/have time for; it's a pain to scroll through row after row of movies when I only want to watch something for half an hour.

</comment><comment><USER6> [http://instantwatcher.com/](http://instantwatcher.com/) helps with some of the filtering that people in this thread want (categories, tv vs movies, etc)</comment>


Sleepy America: 60% of adults say they're more tired than ever before - <AUTHOR> https://www.studyfinds.org/americans-sleep-coronavirus-more-tired-than-ever/ <comment><USER2> I wonder how much of this is anxiety behavior. You have a scary sounding situation outside that you can't do much of anything about actively, so instead you invest your energy in distraction like television and gaming - which is really a "delay" strategy, not a solving strategy.

Personally, I've been trying to intentionally invest my time in productive things (writing little games, learning, working out) to try and actually reduce my anxiety instead of just burying it.

As the joke goes: "Anxiety must be a liquid because it flows right into your brain as soon as you lay down to sleep."

<comment><USER3> I've been working on similar productive things (i.e. reading, jogging, projects), to keep out the 'what-ifs'. One of those projects I intend to start soon is building a small game. I've come across a lot of discussion about engines, frameworks, and hand-built options. A large majority push for larger engines like Unity or Godot that 'do it all' to focus more on the game and less on what's needed to build it. That seems alright, but being a backend dev, I generally enjoy understanding the full operation and building it out as close to my needs as possible.

What have you used for your smaller games? And what would you recommend for someone with programming experience, but lacking experience in pretty much every other facet of game development?

<comment><USER4> I am a big fan of the Lua LOVE framework. It's all Lua and very minimal boilerplate code.

Recently there was a post about a game called BYTEPATH and the developer put up an entire tutorial on how they made the game including hacking into what little required code there was (the main event loop).

[https://github.com/a327ex/blog/issues/30](https://github.com/a327ex/blog/issues/30) [https://love2d.org/](https://love2d.org/)

<comment><USER3> Thank you. This looks great.

</comment></comment></comment></comment><comment><USER5> > About half of participants get out of bed 10 minutes before remote workday > starts.

Guilty

IMO it comes down to good habits and (more importantly) kids. I have never been more relaxed in my life. I get 8+ hours of sleep every night, and sometimes nap during the day. Cutting down on long commutes has made such a positive difference to my life that I'm never doing it again, pandemic or not.

Everyone I know with young children is on the opposite end of the spectrum though, now that childcare/daycare/babysitting/family assistance options aren't available anymore.

<comment> Spartan-S63 I've been getting worse at this. The thing is, it leaves me feeling more anxious if I roll out of bed and go straight to work. I like having a slower morning where I can sip coffee, read, or work on a side project before starting work.

Between working from home full time, having the pandemic fatigue, and the days being longer, I go to bed later, sleep in later, and wake up closer to when my workday should start. It's a solvable problem, I just need to find the discipline to reset my schedule, again.

</comment></comment><comment><USER6> I've felt exhausted for the past month. I also started full-time remote work in December. My previous routine of working out at the gym before work vanished.

I don't know how much of this is anxiety and how much is new bad habits (or lack of good habits). Some of it is stress (my new job is stressful). Some of it is the constant fireworks, instability, and the rise in violence in my area since the protests started.

But I definitely relate to feeling tired now.

</comment><comment><USER7> If you're working from home AND trying to watch / educate your kids you might be like me and trying to fit work in wherever you can, and that can impact sleep.

<comment><USER8> our 2 small kids have decided to spend the pandemic waking up at 5am or earlier. Neat, right?

</comment></comment><comment><USER9> Could be excess CO2, it's summer, AC is on, lockdown had more people at home breathing more air. I've found opening a few windows for an hour to recirculate the air solves this issue. Hour long walks daily helps too

</comment><comment><USER10> We all need to take more naps.

<comment><USER11> I'm going to see a sleep doctor on Friday. I've been napping two hours every day from 12-2 like clockwork and I wake up feeling confused and more tired than when I went to sleep. I did a sleep study years ago and was diagnosed with OSA but always felt like I was suffocating wearing the CPAP. Tried in the last few weeks to just force myself to wear the thing and I feel like I'm stopping breathing as I fall asleep. It's awful and a damned if I do damned if I don't kind of thing. Hopefully it's "just" apnea because I feel like I'm literally going crazy from such poor sleep.

<comment><USER12> You might consider experimenting with different masks and pressure settings to see if it helps a bit. CPAPs are awful but the common alternative is surgery.

<comment><USER10> Another less invasive option would be to see a chiropractor. I've watched videos claiming they help open nasal passages, but not sure if that's pseudoscience. I think surgery should always be the absolute last option.

</comment></comment></comment></comment><comment><USER13> The older you get, the more tired you are. Last I checked, everyone is getting older.</comment>


Free Chipotle and Video Games (PS3, XBox 360, Wii) at 385 Sherman in Palo Alto - <AUTHOR> http://www.thinkcomputer.com/stanford

<comment><USER2> YESSS!! Ill be there soon

</comment><comment><AUTHOR> First come, first served! 5:30 - 8:30 P.M. tonight if you're in the area.</comment>


The Sinister Brutalism of Shipping Container Architecture - <AUTHOR> https://www.nytimes.com/2019/08/14/opinion/shipping-container-homes.html <comment><USER2> I have been following a youtube couple building a shipping container home. It isn't as simple or cheap as you think. You need to deal with rust, sealing floors that have chemicals, cutting out windows, etc... I wonder if they can do that only because they live somewhere with no building regulations.

In contrast to that, our local school additions were a snap. They were prefabs that just needed to be dropped onto slabs.

I think there is a definite hipster trendiness to some uses of containers. It's the typical hype, trough cycle where it's being used in novel ways but also not so good effective ways in other cases.

[https://youtu.be/i8qtI15Ntws](https://youtu.be/i8qtI15Ntws)

<comment><USER3> >It isn't as simple or cheap as you think. You need to deal with rust, sealing floors that have chemicals, cutting out windows, etc...

And once you're done with that you run into humidity and ventilation issues. There's a reason people generally only use them for storage containers. If you want a building you can occupy there's cheaper and easier ways to do it.

<comment><USER4> What would be cheaper and easier?

<comment><USER5> Prefab, modular housing.

</comment></comment></comment></comment><comment><USER6> Headline should have been "The sinister brutalism of shipping container architecture". I mean come on. Know your audience.

<comment><USER7> Agreed. Belatedly changed.

</comment></comment><comment><USER8> I didn't even realise it was going to be about Edinburgh or Fringe when I read the title, but the first thing that came to mind was the hostel there charging up to 25£ per night to sleep in a shipping container. I just arrived here but don't think I could've handled it when the weather wasn't perfect, especially at 45AUD per night.

</comment><comment><USER9> OK, maybe shipping containers aren't exactly the modular cheap things we can transform into living spaces...but to imagine it creating a dystopia?

<comment><USER10> There's a video series of a guy who tried to do this in California in the middle of a desert and his cost went north of $100k. (Paperwork alone was $25k IIRC).

Watching that series reminds you of what a huge bureaucratic nightmare looks like.

Search for "Modern home project" on YouTube.

<comment><USER11> I almost started a tiny home business. However, during market research, I discovered the biggest problem with tiny homes is zoning laws. That really threw a monkey wrench into my plans.

Have been considering what it would take to get zoning laws preventing tiny homes changed in less popular locales.

<comment><USER12> You'd probably have better luck subverting existing regulatory infrastructure that closely matches your use-case.

Instead of tiny homes, try thinking within the regulatory box of "classifies as an RV or towed camper". That might allow you to bypass some of the other limitations you were facing.

<comment><USER13> Exactly. There was a Kirsten Dirksen video showing some cabins built on a piece of property that was zoned (I think) for mobile homes. Voila', they welded some big wheels on the bottom of the structures.

They still seemed poorly laid out with crummy bathrooms (in this case, no piped water and a terlet that was basically an indoor plastic porta-potty) but I did admire the law-skirting.

There can also be avoidance of property taxes in some states I believe.

</comment></comment></comment></comment></comment><comment><USER14> Christchurch utilised shipping containers for rockfall/ruin collapse protection, (and with modifications of course) temporary offices and accommodation after the 2011 earthquake.

They really filled a gap.

</comment><comment><USER15> I'm glad to see the Freitag store mentioned - that really is quite fun:

[https://www.freitag.ch/en/store/freitag-flagship-store- zueri...](https://www.freitag.ch/en/store/freitag-flagship-store-zuerich)

[https://www.zuerich.com/en/visit/attractions/freitag- tower](https://www.zuerich.com/en/visit/attractions/freitag-tower)

</comment><comment><USER16> The Sinister Brutality of New York Times Articles on Hacker News

</comment><comment><USER17> Watched a youtube video of a very capable builder creating a container "home" in Yucca Valley. Total joke.

</comment><comment><USER18> Was I the only one who nodded in agreement thinking about Docker orchestration woes when reading the title? >:)

<comment><USER19> Shipping, Container and Architecture are all prominent Software terminology.

In fact, any HN reader who didn't think that should be perma banned ;)

<comment><USER20> and Brutalist design!

</comment></comment></comment><comment><USER21> So an academic doesn't like reusing industrial machinery for living in. Does he also hate rowhomes? Tokyo apartments? College dorm rooms? A Manhattan studio? There are many places in the world where you get a drab, rectangular living space, with _less_ room than a shipping container, yet people are thankful for it.

Shipping containers may be the answer to what I consider a plague on the average American: minimum-sized homes. You can't live in a tiny home in America, because all homes are regulated to be a minimum size, rooted to a concrete slab, with a bevy of other regulations. So you have to choose between throwing your money away on renting, or buying an overpriced, unnecessarily large home.

A shipping container is small, incredibly strong, and unlikely to fly away under strong winds. They're also modular, which makes them adaptable. _And_ they can be stacked, creating multiple floors without any extra engineering. You could easily expand your home's footprint whenever you could afford it!

For people who just want affordable housing, they're kind of amazing. Who cares if they don't look pretty? Build a facade! We did it in the 1950's with formstone, when people thought brick looked cheap and ugly. Maybe the editor can slap some fake bricks on the outside of the container and call it retro- modern.

<comment><USER22> > So an academic doesn't like reusing industrial machinery for living in. Does > he also hate rowhomes? Tokyo apartments? College dorm rooms? A Manhattan > studio?

This isn't an academic's whim. Shipping containers are not designed or adequate for residential use. This does not change if you enumerate other examples of awful living conditions.

<comment><USER21> Nothing about a shipping container is particularly inadequate for residential use. It's an empty box, exactly like the empty shell of a stick-built American house. You wouldn't live inside a stick frame house just because it has four sides, you have to keep building onto and into it until it's done.

<comment><USER23> Exactly like, except for the lack of windows and insulation? Obviously those can be added, but it takes a plasma torch, not a hammer and a saw, unlike traditional building materials.

<comment><USER24> You can both insulate shipping containers and cut windows into them.

<comment><USER22> > You can both insulate shipping containers and cut windows into them.

You can do that to anything, even cardboard boxes taken out of the dumpster. That doesn't mean they are adequate living spaces.</comment></comment></comment></comment></comment></comment>


Ask HN: Thoughts on CMS business - <AUTHOR>

I have the opportunity to buy a 90% finished CMS web app.  I'm really unsure as to the risk/opportunity since I know it's a very crowded space (with both free/open source and paid versions.)  While I belive that this product will offer a solution that is different and more robust, I'm still somewhat skeptical.
The site basically functions to allow designers to outfit their client sites, giving them their own backend to control content.   It is really well done and offers a great deal of customization and options.
Thanks in advance. <comment><USER2> My first startup was a CMS product in 1998. At the time, it was a terrific space, and we did well.

But by 2002, the space was filled, because CMS software just isn't that difficult to write. The factor that made it a viable business in 1998 was that most sites were still static HTML. A DB-driven site with dynamic content was a relatively new concept, so writing software to make it happen was a great opportunity.

But it seems like EVERY site is now dynamic content.

Even if your product really is the best ever, it is 2010. You are 12 years too late. I cannot recommend this business line at this point in time.

</comment><comment><USER3> My suggestion for making money in this space is not to build a CMS and sell it, but rather to build add-ons for existing systems. I use ExpressionEngine and I have seen popular add-ons sell for as much as the CMS itself (personal license.) That way you have left the hard part to the developers of the CMS (growing a community, attracting developers and building a customer base.)

</comment><comment><USER4> What is involved with the 10%? Is it a PHP/MySQL? Sounds risky to me mainly from a time point of view. Can you give us a bit more info on why the backend is such a great deal? I mean you can easily get that with open source such as Drupal.

<comment><AUTHOR> The product itself is done, it just needs the payment facilitation added. It's built in Ruby on Rails and has a very robust templating system/api.

<comment><USER5> Have you looked at Django lately? They basically give you everything you need including a full-featured with JQuery admin back-end. Their template system is extendable and swappable for alternatives if you want more flexibility. Not to be a nay-sayer, but this sounds like a tough sell when there is so much people can get for free.

Can you beat Squarespace in terms of features, performance, support, etc.?

</comment></comment></comment><comment><USER6> Unfinished software in a crowded space? Sounds pretty risky to me. Are you getting a smoking deal on it?

<comment><AUTHOR> Yeah, all in all we are definitely getting a good deal.</comment></comment>


Lumen: Auto brightness based on screen contents - <AUTHOR> http://www.anishathalye.com/2016/07/31/lumen/ <comment><USER2> This is basically a workaround for a problem that I've noticed has affected laptops for _many_ years --- the ability to set brightness and contrast independently, despite the fact that desktop monitors have retained both controls (and more).

 _One big problem with this setup is that my laptop's backlight is either so dim that I can't read the text in my terminal or so bright that I'm blinded by looking at websites. The problem is especially bad at night._

That suggests the contrast is insufficient. On a monitor with both controls, this means turning up the contrast while keeping brightness the same or slightly reduced.

<comment><USER3> I totally agree independent controls for brightness and contrast would be a big improvement, but I do not think they would solve this problem. Increasing the contrast will help you read the grey letters on black background in the terminal, but then reading black letters in a white background will not be comfortable.

Personally, I just use a light color scheme for my terminals and keep brightness as low as possible.

</comment></comment><comment><USER4> What I'd really like is a 15" E-ink display with a good refresh rate. For coding and lookup up documentation at night or in the sun, that would be a pretty good setup.

<comment><USER5> Here you go. Not cheap. [https://www.indiegogo.com/projects/paperlike-world-s- first-e...](https://www.indiegogo.com/projects/paperlike-world-s-first-e-ink- monitor-13-3#/)

<comment><USER6> Wow. That's incredible - I'm amazed that they've got the refresh rate so low.

<comment><USER7> I'm guessing they're just using the standard VNC / RDP algorithm that only sends (ands therefore refreshes) parts of the screen that changed.

It's at best a 150ppi (1600x1200, 2000 pixels along the diagonal over 13") screen, lower resolution than the original Kindle.

</comment></comment></comment></comment><comment><USER8> I have a tablet/convertible that does this (Thinkpad Tablet 2) and it's the most infuriating thing. It doesn't seem possible to turn it off.

<comment><USER9> My TV does something similar. Best/worst example is if I display a black console with a blinking white cursor: the backlight flashes on and off from min to max brightness in time with the cursor. It is an abomination, a gimmick whose only purpose is to cheat at contrast ratings. If I ever meet the engineer who came up with this BS, I will stab them with a strobe light.

</comment></comment><comment><USER10> The "without Lumen" gif seems edited to make the effect worse. The brightness is reduced when switching to the terminal, and increased when switching to the editor. You can see the editor window background getting gray when it slides off the screen. If you need to be dishonest to "sell" your tool then I'm going to assume it's not very good.

<comment><USER11> I didn't interpret that for dishonesty; he's just trying to illustrate how it works, in my opinion, by showing a scenario where the screen is too dark for the content on it, and another scenario where the screen is too bright for the content on it.

<comment><AUTHOR> Yes, exactly. Sorry if it was misleading.

It's hard to demonstrate something that changes your screen brightness, because brightness changes won't be captured using screen capture software, and because what people see would depend on their screen brightness setting too. I could have used a video camera or something to record my computer's screen, but I thought that would be overkill / not worth the effort, so I just opted to produce a gif that does an okay job of illustrating the effect.

</comment></comment></comment><comment><USER12> I tried and it doesn't work on my MBA on El Capitan 11.6.

There's kind of the same thing on my TV, and it sucks balls.

The changes in brightness is extremely unnerving, especially for action scenes where the light intensity varies a lot. So it was the first thing I disabled.

So IMHO this won't work that well.

<comment><USER4> Dynamic brightness on TVs was made by manufacturers in order increase contrast ratios in specs. In practice it is one of the many useless "sales" features, along with excessive sharpening filters, which has to be disabled in order to actually use the TV.

That being said, I think the effect will be less unnerving in an interactive environment where you control the contents of the screen. My phone also automatically adjusts brightness based on the brightness levels outside, and I don't find that annoying.

<comment> qu4z-2 "dynamic contrast" is the worst. That said, it looks like this works the opposite way -- it dims the backlight for mostly-white content, and boosts it for mostly-black. The fading could still be annoying, but at least it won't practically turn off the backlight when I switch to a terminal...

</comment></comment></comment><comment><USER13> Thank you! This is a big pain point I've had for long time and didn't realize of the true cause until now. Anyone know of a Linux port? Or any plam to port it?

<comment><USER14> hacked together something for nix using standard tools: [https://pypi.python.org/pypi/autolux](https://pypi.python.org/pypi/autolux)

can install with 'pip install autolux'. uses imagemagick, xdotool and xbacklight. please make it better

</comment></comment><comment><USER15> I strongly identify with this problem. I've used "hackervision", a chrome plugin, for years. It works pretty well.

hackervision inverts website's colors. I'd prefer to read white-text-on-black- background everywhere. If I start using programs that force a white background, I'd consider using lumen.

</comment><comment><USER16> I've had several laptops with automatic brightness setting like this built into the monitor/integrated graphics driver. You could not disable it in a few of those (not even regedit it out), and it was truly the worst thing that I had ever experienced. Utterly useless, and utterly aggravating.

<comment><AUTHOR> It's not useful for certain cases, and it's downright annoying for some, such as when you're watching video.

For the use case described in the blog post, though, I think it's pretty useful. I've been using Lumen every day while working, and it's been pretty helpful to me.

<comment><USER16> Actually, I don't think it's useful for that case specifically. My example would be switching between say reddit (very bright UI in default or common subreddit themes) and my IDEs (using white text over dark background) or imgur. The brightness increase is generally not noticeable, but the darkening of bright screens is absolutely obnoxious to me.

The only time I change my brightness is when my laptop is unplugged, or when I'm using it very late at night with no external light.

Others may prefer the Lumen way, but I wouldn't use it even if I were paid for.

</comment></comment></comment><comment><USER17> This could be the 2016 version of f.lux

<comment><USER18> I hope they play nicely together.

I also hope there will be a Linux version, that plays nicely with Redshift, because that's my set-up.

<comment><USER19> Working fine on my Mac with f.lux running as well.

I haven't found redshift to play nicely with manual xrandr brightness adjustments. I've to shut down redshift to just lower the brightness below 1 at night, which sucks (because I lose redshift)

<comment><USER18> You can fiddle about in the config file of redshift a lot, and take control of gamma, colour ramps and backlight at different times of day. Maybe it's possible to make it play nice with your set-up too?

I just wish I could save some presets and quickly switch between them from the GUI, like how I used to use f.lux' ember and darkroom modes for late-night reading.

<comment><USER19> Yes, but not all modes of redshift work across all displays. I decided to take a look at the redshift configuration[0] just now, and it seems that the newer versions have some nice config options that might fit my usecase: `gamma-day`, `gamma-night`, `brightness`, `brightness-day|night`. I should be able to setup a lower brightness with this for my really late night work.

[0]: [http://jonls.dk/redshift/](http://jonls.dk/redshift/)

</comment></comment></comment></comment></comment><comment><USER20> I wonder what the effect on battery life might be, with Lumen in use constantly .. like, could this be used to squeeze out another hour of life?

<comment><USER21> I wondered the opposite - will Lumen "looking" at the screen all the time help to drain it?

<comment><AUTHOR> It probably won't have that much of an impact. It seems to use 0.5-1% CPU on my computer.

</comment></comment></comment><comment><USER22> My partial solution to this is just to make make Chrome darker, using a plugin like Dark Reader[1]. It "inverts" the colors on the page but lowers the contrast so the page still looks pleasant.

That means that my terminal, Spotify, my desktop, and finally Chrome are all dark at night.

[1]: [https://chrome.google.com/webstore/detail/dark- reader/eimadp...](https://chrome.google.com/webstore/detail/dark- reader/eimadpbcbfnmbkopoojfekhnkhdbieeh?hl=en)

</comment><comment><USER23> some suggestions to deal with the issue OP is describing, using existing tools;

Night Mode Pro, firefox extension to invert colors of website; [https://addons.mozilla.org/en-US/firefox/addon/night-mode- pr...](https://addons.mozilla.org/en-US/firefox/addon/night-mode-pro/)

Stylish, firefox extension to apply styling on sites (make white background dark): [https://addons.mozilla.org/en- US/firefox/addon/stylish/](https://addons.mozilla.org/en- US/firefox/addon/stylish/)

There is more options, for other browsers too. Article: [http://www.ghacks.net/2015/05/18/turn-any-page-in-a-night- fr...](http://www.ghacks.net/2015/05/18/turn-any-page-in-a-night-friendly- version-in-chrome-and-firefox/)

</comment><comment><USER24> It seemed to work at first, but now it's no longer working. I restarted the app, but still doesn't seem to work as described. I like how f.lux turns the screen close to amber color late at night, but it makes it a little difficult to read code, and raising the brightness helped, but Lumen sounded like a nice tool because I may not have to worry about manually increasing the brightness during nighttime. Oh and when it was actually working in the beginning, I tested out my two external monitors connected to my macbook, but it didn't seem to work on them. Anyway, I think the idea behind Lumen is very neat.

<comment><AUTHOR> The state of multi-monitor support is unknown (I don't currently have an external monitor to test on). So I guess it doesn't work for multiple monitors right now. Sorry about that!

</comment></comment><comment><USER25> My "solution" looks like this:

      #!/bin/bash
      for output in $(xrandr --current | grep -e "DVI[^\ ]*" -o)
      do
          xrandr --output $output --brightness $1
      done

Bound this script to super+(1-6) for values of 1.0-0.5 and it handles all of my brightness adjusting needs. 0.5 for "I just woke up" and 1.0 for watching movies. It obviously isn't automatic, but I personally think that's a benefit...

And yes, the script could be made nicer, but it works for me, which is enough.

</comment><comment><USER26> Looks cool.

In a similar vein, I've benefited from using the Dark Reader plugin for Chrome: It does an excellent job for most webpages. I use it for hackernews, reddit, youtube, language learning sites, etc.

[[https://chrome.google.com/webstore/detail/dark- reader/eimadp...](https://chrome.google.com/webstore/detail/dark- reader/eimadpbcbfnmbkopoojfekhnkhdbieeh)]

</comment><comment><USER27> Shame it's not for Windows

</comment><comment><USER28> Shouldn't it just downregulate brightness and then slowly crank it back up? I could not stand anything below full brightness.

Giving up on the cool hacker look and changing my Emacs and Terminal to black on white is one of the best things I've done. My desktop background is pure white too.

</comment><comment><USER29> A fortune for automatic brightness based on legibility of on screen characters with various global tunables such as average distance from screen and less than 20/20 vision, as I don't want to make per application profiles for everything I use.

</comment><comment><USER30> Doesn't seem to change anything for me. MBPr 15" on OS X 10.9.5.

<comment><AUTHOR> Try this:

1\. Start Lumen 2\. Open up a dark window (e.g. a terminal) and make your display bright according to your preferences 3\. Wait a second 4\. Open up a light window (e.g. a web browser) and make your display darker according to your preferences 5\. Wait a second

Now try switching back and forth between the two, and you should see it automatically doing stuff.

</comment></comment><comment><USER31> Does anybody know any similar tool for Windows?

</comment><comment><USER32> Thank you.

</comment><comment> stephane-klein Thanks! I love this missing tools since many years!

</comment><comment><USER33> Interesting software, awkward English.

s/contents/content/g

</comment><comment><USER34> > This is how Lumen was born. Lumen is a tiny menu bar app for macOS that > magically sets screen brightness based on screen contents.

I hate it when people replace "automatic" with "magic". It's not magic.

<comment><USER35> In the wise words of Strong Bad...

"The word 'technology' means 'magic'! It's basically anything that's really cool that you don't know how it works."

<comment><USER36> We know how it works, it changes the brightness based on screen contents.

<comment><USER37> That's _what_ it does, not _how_ it works.

I.e., 'What' is just the top-level abstraction. 'How' is the functional composition underneath.

<comment><USER38> No the guy released the source code so you do know how it works as well</comment></comment></comment></comment></comment>


I've taught quite a few friends how to code. Here are my thoughts: - <AUTHOR> https://medium.com/@rotemtam/the-law-of-bruised-foreheads-1e86cfc40eb5

<comment><USER2> Don't give me money, teach me how to make money. That's like a common saying. In this case, if I ever have a friend that needs to learn to code I think I'd rather point them in directions in which they can become self-taught programmers like myself. Although I am 100% in agreement that they should have bruises before asking questions

<comment><AUTHOR> I think the moment you give someone clarity after they have been wrangling with a tough problem is very magical. Because they can see the complexity which never comes through in a simple tutorial or demonstration.</comment></comment>


Michael Moore's Generous Gift to the Oil Companies - <AUTHOR> https://lee-phillips.org/moore/ <comment><USER2> Sometimes I wish the Michael Moore would, for at least one film series, adopt the Penn and Teller "Bullshit!" concept where one episode covers a prominent but controversial belief, and a follow-up (or even a segment within the same episode) covers its antithesis.

They mentioned once that they wanted to create a "Bullshit Bullshit!" which would debunk ways that their previous episodes were wrong or could be argued as such. I don't think they ever got around to it, but the idea is gold.</comment>


Why computer science graduates can't talk themselves into jobs - <AUTHOR> http://www.theguardian.com/commentisfree/2014/aug/07/computer-science-graduates-victims-dirigiste-education <comment><USER2> A weak piece that, more than anything else, serves to highlight the sorry state of journalism in the paid-for media.</comment>