HN user

knightni

152 karma
Posts0
Comments45
View on HN
No posts found.

I don't dispute that windows developers are in the majority - I dispute that other choices are as vanishingly rare as your initial comment suggested.

Anecdotally (I work at a large corp), slightly under half our devs use Linux. You only need to look at the array of software-for-programmers that's available under Linux to see that it's an extremely popular choice - the availability of programming software and libraries is generally better under Linux than it is under Windows.

While linux is certainly a bit more hassle to maintain than windows (I use a mac when given the choice, which i find gives me the best of both worlds), it's still a clearly superior environment for highly technical users. It's only recently with the introduction of Powershell that Windows has stopped being a substantial handicap for developers, imo.

An extremely large number of programmers use Mac and Linux machines. Linux on the desktop is sustained to a substantial extent by a programmer audience - and you only have to look at the availability of software for it to see that it's popular among that group.

Personally, when I'm not using a unix-y environment, it's because I've been forced. Using windows as a programmer feels like having one of my hands chopped off.

I think there's two really great things about retina screens on desktops/laptops:

- Firstly, I definitely notice the difference. The higher res screen is noticeably nicer to read. Sure, you don't need to go to the crazy extremes of some newer high res phones, but standard desktop monitors are noticeably ugly by comparison.

- Secondly, the res is high enough that you can finally change (apparent) resolution. My parents are in their late 60s and have bad-ish eyesight, so they lower the resolution on their screen. The result is incredibly ugly. Unfortunately resolution independent display seems to be a forgotten goal in modern OSes, so having screens that can change res is definitely worthwhile.

You're running into the fact that Postgres doesn't automatically cast ints to floats - so 1/50 = 0. Try using 1.0/50.0 instead.

Hereditary, but not in a strong sense - to quote the american diabetes association:

> In general, if you are a man with type 1 diabetes, the odds of your child getting diabetes are 1 in 17. If you are a woman with type 1 diabetes and your child was born before you were 25, your child's risk is 1 in 25; if your child was born after you turned 25, your child's risk is 1 in 100.

Even if both partners are diabetic, the risk is only 1 in 10 to 1 in 4. This strongly implies that what is heritable is the vulnerability to getting diabetes, rather than getting diabetes itself. There is, presumably, some trigger that also needs to occur.

> Being a programmer is fucking boring ... They want you to spend your time ... optimizing their databases

Honestly, I really fucking love optimising databases. I can't believe my luck that people want to pay me to do that sort of work for 8 hours a day.

To me, hell is having to define and defend my own problem. I would loathe running a startup - I love the feeling, instead, of having people come to me to solve their problems. Fortunately, I've managed to arrange a situation where enough of those problems are reasonably interesting to my apparently unusual tastes :-).

This is not meant as a dig against those who run startups, just a note from someone with a very different perspective.

WITH and window functions are portable (and both awesome - they will change the way you write your SQL for the better). I'm not sure if WITH RECURSIVE is portable - my recollection is that oracle and db2 at least don't need/use the RECURSIVE qualifier for recursive ctes: they just work it out for you.

Time intervals are also in the SQL standard as I recall (although not in the format listed here - postgres supports standard syntax too though). Not sure how fully supported it is cross-database, though.

Announcing MoSQL 13 years ago

...data warehouses in general mostly use SQL, and lots of businesses use data warehouses successfully. Teradata, Netezza, Oracle, DB2, etc. I'm not sure why his statement was controversial - SQL's a great language for reporting and analytics.

Announcing MoSQL 13 years ago

I would imagine that for your average startup, using solutions that don't even support transactionality will cause greater complexity issues. Especially given the enormous window before db scale out/up becomes an issue on well-designed applications.

> LIMIT OFFSET queries are always going to be hard because you have to generate lots of rows only to throw them away

In fairness, that often depends upon the intelligence of the planner. A lot of sort-limit-offset queries can be reasonably easy and not generate too many rows if the planner works correctly and you have the right indexes.

edit: Assuming you're mostly picking up early pages as opposed to getting late ones, anyway - which is usually the case for, say, a comment system.

Oracle and DB2 both offer ways to provide hints to the database about how you want the query processed, and the ability to store those hints independently of the query - Stored Outlines and Plan Stability being the features in question. This is particularly useful when you can't risk the plan changing in production and screwing you over - in that situation it's preferable to experience a gradual degradation->optimisation cycle personally.

It's one thing that I find it frustrating that Postgres (which I otherwise love) doesn't offer - I understand that they don't like optimiser hints, but at least the ability to say 'keep using the current plan until I give you permission to do otherwise' would be invaluable.

C# is an improvement in this regard - it at least gives you structs for when you need to store related data together without any greater overhead than you'd have in C.

Unfortunately unless you're on windows it's not that fast compared to Java.

Why not mess with colour? I have no need to see the 'correct' colour, if it's less comfortable to me.

I actually leave my LCDs at a redder tint most of the time now, as I find it more comfortable. This is particularly useful as most desktop LCDs won't adjust their brightness down far enough for me. Laptops are better, since they actually bother to adjust the power of their backlight.

Blind people who still like to listen to television may be a significant cause of this. They receive a 50% discount on both colour and b&w licenses, so from their point of view there's probably little reason to upgrade from a black and white television.

That's absolutely fair enough - I love that there's a variety of options out there for everyone, and I'm never going to criticise someone for finding what works for them.

I guess my point was more about the statement that there's no need for customization if the OS is well-designed - to my mind, there may be no need for customization for many (or perhaps even a majority) of users, but there is for some. An OS that tried to serve all niche needs without allowing customization would likely be a confused mess - and yet, for those users, having their niche need served can be extremely important.

My understanding was that at least on the lock screen there was no easy way to distinguish between different calendars - I want birthday reminders to show up persistently for at least a week before the event, which is obviously undesirable for most other events.

If the lock screen gets/has that functionality, I'm not sure what the real difference between that and a widget is - except that mine displays on the home screen while yours displays on the lock screen.

I disagree - widgets are enormously important to me, and were the deciding factor in my choosing an android phone. I'm quite forgetful, and I have a tendency to focus on one thing to the exclusion of others. Widgets allow me to display important information on my home screen that will be shown to me every time I look at the phone.

This means that I can have a list of (for example) upcoming birthdays on my phone that I see over and over again, enough that I will eventually see the reminder at a point when I am in a position to do something about it. Alarms are useless by comparison, because I will inevitably be busy with something else when they go off. Calendars/todo apps are equally useless to me, because they require me to remember to open up an app all the time.

I realise my use case is relatively niche, but I imagine there's a lot of different niche users out there that benefit from customisability.

I read Thinking, Fast and Slow this year too, and it is definitely up there on my best books of all time list.

I also read Black Like Me, which seems to be required reading in the US, but I only recently became aware of it. Definitely worth a look.

Don't get me wrong, I don't strive for 'perfection'. I passed through the architecture astronaut phase quite some time ago now :-).

Equally, I don't think that the opposite end of 'hacked together' is some kind of AbstractAbstractFactoryFactory extravaganza - that's just a different kind of bad code. To me, good code is code that is simple for other people to understand, and takes basic precautions with respect to being not-too-brittle to change. Every so often, I find that once the code has received enough alterations, it needs a bit of TLC.

Most of the time, when stuff I write ends up as 'bad code', it started out as good code, and then got mangled over time due to a series of requirements changes (not necessarily due to bad processes - you often just understand your requirements better as you go along).

This is a fairly natural series of events that can be helped by periodic refactoring. Unfortunately, because each change is small, none of them on their own justify the time required for the refactor. That's when you've got to hope you've got a management team that trusts your judgement, and is willing to carve out the time necessary for this stuff. Most people, alas, don't have that.

I really love my work thinkpad, except I'm not a big fan of trackpoints, and the touchpad is truly hateful. For work that's fine because I'm always docked, but I probably wouldn't consider them for personal use for that reason alone.

This just isn't true.

A couple of years ago an issue with the USB3 driver broke suspend on laptops with USB3 for quite some time, requiring workarounds. Multi-touch trackpads took some time to get full gesture support. Auto-switch between paired graphics cards still doesn't work.

That's not to say things aren't pretty good now - but to imply that linux doesn't require some fiddling about under the hood hardware-wise is stretching a lot.