10 ms·
Things I Hate About PostgreSQL (2013)
- altstar 10y agoJust needs a [2013]
- creshal 10y agoWhat an awful format for slides.
- divbit 10y agoBesides the fact that the font is really tiny, it's actually much nicer on phone than most of the "n things..." websites which seem to try and maximize clicks.
- hibbelig 10y agoThe font is _too_ tiny. I couldn't read the mono space parts.
- vacri 10y agoReally? It all looks perfectly legible for me on FF and Chrome, on both win + lin. It'd be even more so if fullscreened like you'd expect a slideshow to be presented.
- hibbelig 10y agoProbably, but the context here was mobile. The monospaced parts are too tiny on my iPhone 5c.
- divbit 10y agoShitty life pro tip : Get a pair of 2x glasses at the dollar store for all your phone reading needs.
- mrob 10y agoDisable CSS (in Firefox: View, Page Style, No Style) and the problem is solved.
- the_duke 10y agoI loved them, looks great, easy to read. Liked the animations too. Not too much, but looks good.
- coldtea 10y agoWhat exactly is awful about them?
- obsurveyor 10y agoIt seems great for presenting them but after the fact: Pollutes browser history(or if you click too fast, doesn't even have any), not convenient to browse at your own pace, no way to jump to a specific slide(visually) The formatting is really good too and would probably work great as an article format but you're stuck reading tidbits, going back and forth.
- coldtea 10y ago>Pollutes browser history(or if you click too fast, doesn't even have any) In what way browser history, usually full of tons of random items and webpages one has opened, should not be polluted? It's just a log, not some kind of organised curated list of webpages. >not convenient to browse at your own pace How so? I can click left/right and go wherever I want at whatever pace I like. >no way to jump to a specific slide(visually) That, I give you.
- kchoudhu 10y ago10 slides in, and I realize that my back button is fucked. Why do people do this?
- CJefferson 10y agoIf I was doing slides like this, it would be because I was going to use them in a talk. Then I would want the back button to go back one slide. If I then put them on the internet, I may not bother editing them to make the more "internet friendly".
- saurik 10y agoI personally would expect the back button to go back one slide, and would argue the opposite: that having the back button skip all the way to the previous web page is unintuitive and not "internet friendly". I mean, imagine if this slide deck were implemented using normal links: the fact that they are using some JavaScript-oriented feature to change the hash instead of changing the path shouldn't change the functionality, and implementing this without JavaScript would make it more clear that this is conceptually a page transition.
- rix0r 10y agoBut how would you go forward in the first place? Not with the "Forward" button, because you haven't visited the page yet. Instead, you press "Right" or "PgDn" or what have you. So I would expect the converse button ("Left" or "PgUp") to go back a slide as well (which it presumably does). That leaves the browser's Back button to go back to the previous web page. Everybody's happy!
- coldtea 10y ago>That leaves the browser's Back button to go back to the previous web page Why approach 10+ slides as "a single page"? If you consider them as 10 web pages, the back button makes sense to go back one page. Same for the left button, given the "presentation" use case. And if they were actually designed as webpages, with html links taking you to slide2.html, slide3.html etc., that's exactly what you would get. So if anything, whether this is a SPA or not, this is more in tune with how the internet works, and how it was designed to work.
- rtpg 10y agoI know a lot of people use Postgres (myself), and I was looking at the source recent, it seems pretty high quality. Makes it all the more surprising that there aren't really any performance tests. Reviewing and pulling things in is always hard, though. In other software I highly recommend always breaking up big things into smaller changes if possible, but I don't know if that works well for the conservative release cycles for DBs. Though maybe the conservative release cycle is what's wrong? Having to do a refactor to implement a feature doesn't mean that you need to do both at once.
- nbevans 10y agoWebsite is broken. UX fail.
- Turbots 10y agopress the arrow-right button
- coldtea 10y agoIt's amazing that in 2016 people still don't know to press left and right arrows (or spacebar) in an online presentation. It's the way ANY slideshow works, on desktop and online form. And it's a trivial thing to try, even when not told to. Not to mention by now there have been around 1000 such slideshows posted on HN.
- wtbob 10y ago> It's amazing that in 2016 people still don't know to press left and right arrows (or spacebar) in an online presentation. It's amazing that in 2016 people still don't fall back gracefully in the absence of JavaScript and/or CSS.
- curried_haskell 10y agoSorry, but no it's not. You're in the extreme minority if you don't have JS or CSS. It's simply not even worth the time to cater to you.
- wtbob 10y ago> It's simply not even worth the time to cater to you. That attitude is evil. That attitude underlies much (albeit not all) that is wrong with the Web in 2016. That attitude is wrong. Espousing that attitude evidences a profound failure to understand the value of the Web.
- robocat 10y agoIt takes more time to make an unfriendly JavaScript UI then it takes to make normal pages. It is worth the time to make your pages without JavaScript if you care about googlability, and accessibility.
- jokoon 10y agoI still don't understand database systems, how they work internally, and what problem they really solve. It seems that new paradigms like R and RAM-only key values system are just simpler, faster and cheaper in programmer time. Loading everything in RAM and do a search seems like a huge saving of time and just works for most cases. Usually if you have more complex needs, you need to adapt your solution, and databases don't seem like a silver bullet. Database queries seem like a solution to the problem of storing data on disk when RAM was too expensive. So today it's still used as some sort of standard, but when you can have 16GB of ram, I think you better teach yourself what sort of algorithm and data structures a database use to be faster, use the ones you like and need and solve your problem case by case. The example of how reddit store its data is pretty demonstrative that ultimately, you should not let a database system do all the work. Databases are just a file format to me, but the way it tries to work for you at a lower level will respond to basic cases, but when you increase complexity it's not relevant anymore. Especially today when you have big data and machine learning, everyone should just learn to understand data manipulation. Not saying to teach yourself C all over again, but having a decent idea of the math of what indexing is really about. Forcing yourself to use a database because the company always used it isn't appealing to me. It's like one of those things when a programmer had an idea which is based on a constraint, everyone starts using it, several products are made, but nobody really remember the original idea of the inventor of that paradigm.
- andybak 10y agoTime to wheel out pseudo-Greenspun again: "Any sufficiently complicated NoSQL program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of a decent RDMS." Or maybe: "Those who do not learn history are doomed to repeat it"
- threeseed 10y agoI guess companies like Google, Facebook, Twitter, Apple, Microsoft, LinkedIn, eBay who run their entire core business on NoSQL databases don't know what they are doing.
- kiwijamo 10y agoI really like the slideshow UI. Anyone know which software was used to make this?
- kawsper 10y agoThis is made with Reveal.js, but there is another one as well called Impress.js, they seem quite equal. [0] https://github.com/hakimel/reveal.js/ https://github.com/hakimel/reveal.js/ [1] https://github.com/impress/impress.js/ https://github.com/impress/impress.js/
- alex-yo 10y agoYey, looks like people just watch presentations, not read it, that's why here is 1 comment about the content, 15 about how the presentation looks like :)
- tsomctl 10y agoI'm not even able to read it. I can't figure out how to go forward from the title page.
- d33 10y agoHow about pressing space or right arrow key? If this doesn't work, make sure it's focused by clicking on a slide. Oh, and there are controls in bottom-right corner.
- coldtea 10y agoSince time immemorial, the way to go forward in such pages is to press the left and right arrow buttons. This has worked in 99.9999% of presentations uploaded on the internet and posted on HN. It's also very intuitive to try, since this is how it is in any presentation desktop app too.
- chrismonsanto 10y ago> Since time immemorial, the way to go forward in such pages is to press the left and right arrow buttons. "Time immemorial"? Damn, I remember pretty clearly what life was like before Web 2.0, and I'm still in my 20s. The first time I encountered one of these presentations I was confused as hell, at least this one has the decency to put arrows to click in the bottom right corner, a lot of presentations don't.
- coldtea 10y ago>I remember pretty clearly what life was like before Web 2.0, and I'm still in my 20s Well, I'm in my late thirties, and "before web 2.0" is "time immemorial" in tech years. >The first time I encountered one of these presentations I was confused as hell Yeah, but that should have been like 5-10 years ago. How come people still don't get them? Heck I was confused as hell when I first encountered DOS, mice, GUIs, UNIX, browsers, etc back in the day. But we learn and move on. What puzzles me is that HN is not full of "average users" but devs and technies, and also the fact that such presentations are posted tons of times a month, and yet someone still asks... (Sure, I can understand that this could imply a "fundamental non intuitiveness" of such UI, but whether it's intuitive or not when we first meet it, it should be second nature by now. I believe in "idiom based design" over intuitiveness (which constraints us to UIs that we can understand at first glance, preventing designs that could need a little getting accustomed to, but be far more powerful in the long run). And I'd argue it's not even that non-intutive. From games to Powerpoint, all kinds of apps use the arrow keys to navigate -- why wouldn't one at least try them?
- qwertyuiop924 10y agoI always enjoy good critique. There was a similarly excellent talk about the differences between Python and Ruby, which discussed the strengths and weaknesses of the design choices each made. It was fascinating. Unfortunately, I can't remember the link...
- pmontra 10y agoMaybe http://www.wikivs.com/wiki/Python_vs_Ruby http://www.wikivs.com/wiki/Python_vs_Ruby or one of the links at the end of that page?
- openfuture 10y agoExtra relevant link cause when you try to go to 'main page' from that article you get a postgresql error!
- stuaxo 10y agoThe main thing I've hated about postgres over the years is pgadmin3. Haven't had to use it for a while but it was always easy to get it into a pickle in common situations, like losing the connection to the database.
- icebraining 10y agoYeah, PGAdmin is fickle and not very intuitive. I've heard there are some decent alternatives, though, like Navicat.
- dvdgsng 10y agoDBeaver is pretty good.
- ahachete 10y agoHave you tried pgadmin 4? It's a complete rewrite.
- elmigranto 10y agoIt looks pretty awkward to me. I don't get why they felt it's a good idea to do it in a browser with spaghetti-bowl of jQuery full of second-long animations.
- theprotocol 10y agoIt is indeed awful, albeit functionally superior to pgAdmin III.
- stuaxo 10y agoI haven't had any postgres projects in the last year or so, so no - it does look a lot more functional than 3.
- exceptione 10y agoThe slides are from mid-2013, how many points are still valid? Has there been progress in the last 3 years?
- koolba 10y ago> The slides are from mid-2013, how many points are still valid? Has there been progress in the last 3 years? From skimming through, I'd say the vast majority. Not sure about the PDF doc link issues as I only use the online HTML Docs but the overall generation of the docs is still a black art.
- DoofusOfDeath 10y agoI'm just trying to get started at PG contributing, and a lot of things regarding the process and regarding the strong emphasis on backwards compatibility ring true. But my experience is very limited, so take that with a grain of salt.
- scrollaway 10y agoThe google thing gets worse every release. The Django project fixed it by adding canonical links to all the docs, see for example view-source:https://docs.djangoproject.com/en/1.9/ref/models/querysets/ https://docs.djangoproject.com/en/1.9/ref/models/querysets/ (Has a <link rel="canonical" href="https://docs.djangoproject.com/en/1.10/ref/models/querysets/"> https://docs.djangoproject.com/en/1.10/ref/models/querysets/...) The postgres project really needs to do that. It's a mess.
- aninteger 10y agoThere's really only one thing I dislike about pgsql. It seems overly difficult to return two disjointed result sets from a stored procedure/function. This is fairly common and easy in MSSQL. It also is easy in MySQL. Something like this: SELECT int_col_1, int_col_2 FROM table1 SELECT varchar_1, varchar_2, int_col_2 FROM table2 In pgsql if the columns are the same type and number then we can use a union, otherwise the suggested alternative seems to be to just make 2 queries.
- koolba 10y ago> In pgsql if the columns are the same type and number then we can use a union, otherwise the suggested alternative seems to be to just make 2 queries. If the two commands have nothing to do with each other then yes that's usually the best option. That does open you up to understanding transaction semantics if you want to ensure both see exactly the same snapshot. Another option is to use JSON as the great normalizer. Any row can be converted to JSON via row_to_json(...) or manually via the more low level functions. That allows you to "stack" multiple, distinct, JSON responses atop each other. Probably a bad idea 99% of the time to use something like that but it can come in handy that one time you want to jam things through in one query.
- WayneBro 10y agoYou didn't state a single reason why you think that grabbing multiple resultsets in a single trip to the database is a bad idea though... The only real argument I've ever seen against it has to do with "Separation of Concerns". Some people don't want any logic in their database. However, there's never any reason why. (I bet you've UPDATEd multiple tables in one query though.) Reasons are often given, sure...but they're almost never based on that persons experience because PGSQL users don't have this feature. So, they'll never know just how awesome it is to have real stored procedures like TSQL has. Anyway, it's not about "jamming" things into one query. It's about composability and PGSQL is lacking it.
- koolba 10y ago> You didn't state a single reason why you think that grabbing multiple resultsets in a single trip to the database is a bad idea though... It's a bad idea for the same reason that having a function that returns back multiple values is a bad idea. Yes it's useful sometimes but on the whole it ends up being confusing. From a result set processing perspective it's also a pain in the ass as your app code is now tied to handling multiple results in a particular order, i.e., more/tighter coupling. > (I bet you've UPDATEd multiple tables in one query though.) You'd win that bet. There are a lot of ways to do this and it's a legit operation because you want N things to change at once (where N isn't in the same table). > Reasons are often given, sure...but they're almost never based on that persons experience because PGSQL users don't have this feature. So, they'll never know just how awesome it is to have real stored procedures like TSQL has. > Anyway, it's not about "jamming" things into one query. It's about composability and PGSQL is lacking it. What's your goto "killer example" of what this could be used for? I've used SQL Server quite a bit[1] and while it's not a terrible database, on the whole I don't like it. Rattling off at random: lack of MVCC (sure they have it now but it's not the default and still has warts), explicit locking that drives you nuts, defaulting to case insensitive string comparison, lack of built in functions. The inane licensing options don't help either. I'd take Postgres over SQL Server any day of the week and twice on Sundays (i.e. side projects). [1]: Officer I swear! It was already like that when I got there!
- known 10y agohttp://www.wikivs.com/wiki/MySQL_vs_PostgreSQL http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL
- comppresar 10y agoHey, buzzard, are you cloth-eared? Come on, look at hotchas here http://u.to/Zeg3Dw http://u.to/Zeg3Dw
- fideloper 10y agoI'd be all over pgsql if replication wasn't such a mess. Yes it works (presumably), but I can't find any useful (e.g. informative) information on a comparison between (the many??) methods to go about it and/or most modern way to accomplish it. If anyone here knows of a good source, I'd love to see it :D (If you use the word "just" or link me the docs, you're dead to me).
- epoch1970 10y agoWhy do you reject the documentation? It has exactly what you're asking for: https://www.postgresql.org/docs/current/static/different-replication-solutions.html https://www.postgresql.org/docs/current/static/different-rep... It describes the various methods that are available, it lists implementations of each, it explains the tradeoffs involved, and so on. Table 25-1 summarizes the information. Regardless of the database system being used, replication is just inherently complex. There isn't really a one-size-fits-all solution. The method to use depends on the requirements and context of a given implementation.
- exceptione 10y agoI think you might want to watch this tutorial from january 2015: https://www.youtube.com/watch?v=GobQw9LMEaw https://www.youtube.com/watch?v=GobQw9LMEaw from Josh Berkus. It starts with a comparison of the different ways available for replication.
- deleted 10y ago[deleted]
- lobster_johnson 10y agoCalling it a mess is unfair. It's actually quite straightforward, and the documentation (see sibling comment) guides you through the pros and cons. For example, if you run with streaming replication — the recommended approach for most setups — then you can decide to enable WAL logs or not. If you only want replication, and not point-in-time recovery, then just running with WAL-less streaming replication is extremely simple and straightforward.
- hyperpape 10y agoOne thing that I really wish existed was a comprehensive guide to vacuuming, transaction id wraparound and similar issues. There have been a few posts recently that discussed problems that arise, but what I haven't seen is a sort of comprehensive "here are the issues that exist, here is what you must monitor in order to be safe" type of guide. The official docs are helpful, but fall short of that kind of guide, and none of the posts I've seen are really comprehensive. Unfortunately, I'm pretty new to postgres and can't write it myself.
- elmigranto 10y agoI found this to be great introductory that touches on all the major points to keep in mind with Postgres. It's pretty up-to-date too! https://www.youtube.com/watch?v=knUitQQnpJo https://www.youtube.com/watch?v=knUitQQnpJo It isn't quite what you ask for, but should be enough to get you high-level overview of major systems and contains solid practical advices (on vacuuming, mvcc, replication, backups, etc…), so you know what to google for deeper understanding.
- hyperpape 10y agoThanks! It's too long for me to watch right now, but I've saved it for the next time I can dedicate that much time to a video.
- elmigranto 10y agoFeel free to skip to any topic, it is quite well structured to do that.
- dorfsmay 10y agoI somewhat agree, and somewhat have the opposite view: I love psql and tab completion, it's magic, in fact it spoiled me, I know have a hard time to work on any other DB. Not mention in the article, but I love how the postgres dev keep up with modern SQL. Again it makes it really hard to go back on a SQL 92 compliant system. Now, the vacuum business, that's horrible. I've run into so many case where "vacuum full" just solve the weirdest problems. One very recently where I use postgres as a queue (because it was easy and works across platform/clouds) nad it became slow and horrible even though I had dropped a bunch of schemas. "vacuum full;" oh wow! The replications story is ugly. You can make it work, but it's literally a craft and you end up having to babysit it. One the author missed, lots of weird performance issue, got my answer from the uber post. The rule #1 of adding indices is to only use column that you really really need, because otherwise you're going to slow down your writes. Well, it turns out not on postgres, all indices for the table you're writing to are being updated! I'm pretty sure very few people were aware of that before uber told us. The more I use the postgres front end (psql, SQL) the more I love it, but the backend (performance, replication) is starting to taste more and more sour.
- rpedela 10y agoThe index issue is being worked on now after the Uber blog post. commitfest: https://commitfest.postgresql.org/10/775/ https://commitfest.postgresql.org/10/775/ email thread: https://www.postgresql.org/message-id/CABOikdMNy6yowA%2BwTGK9RVd8iw%2BCzqHeQSGpW7Yka_4RSZ_LOQ%40mail.gmail.com https://www.postgresql.org/message-id/CABOikdMNy6yowA%2BwTGK...
- chucky_z 10y agoReally? Coming from PGSQL to a MySQL-only shop made me really miss PGSQL's performance. Sure, MySQL is faster on `select pk from tbl where pk=1`, but the second you get into complicated joins, including subqueries, or doing any analytics the performance is very random. With pgsql, I can get a clear concise explain and if I disagree with what's happening (because I know exactly what my hardware is capable of) I can tune any query to be decently performant. With mysql, you get... I mean explain is ok, but I wouldn't put it above that. "EXPLAIN ANALYZE" is my gold standard forever and ever. I even liked it more than SQL Server's equivalent; which is also fantastic.
- garyclarke27 10y agoSublime Text works well for me as a Postgres query editor. Rock solid super fast, unlike all alternatives, (I've tried them all) except psql, which is solid but ugly. ST3 has for me a much nicer interface and has amazing search and replace ability, attractive themes, syntax highlighting from pg specific plugin. Remarkably it even copes with queries that return millions of rows. You can control it's behaviour with the same config options as psql, full feedback error messages, line numbers etc Easy to setup build system, see http://blog.code4hire.com/2014/04/Sublime-Text-psql-build-system/ http://blog.code4hire.com/2014/04/Sublime-Text-psql-build-sy...
- bdcravens 10y agoHave you look at DataGrip? (https://www.jetbrains.com/datagrip/ https://www.jetbrains.com/datagrip/) Been using since it was in beta, and it handles SQL Server and Postgresql well. (haven't used it for other platforms yet)
- jkmcf 10y agoOddly, I don't see anything about managing user permissions, access, and authorization. It's wicked arcane compared with every other DB out there. I believe one main reason MySQL caught on early with hosting providers was because of this.
- lobster_johnson 10y agoThat's odd, I feel the opposite. For years the way to create a user in MySQL was this: grant usage on *.* to 'bob'@'localhost' identified by 'itsasecret'; Meanwhile, PostgreSQL had the extremely straightforward "createuser" command line tool, and the "create user" SQL statement. (MySQL got "create user" and "alter user" around 2006 or so.) Having to edit pg_hba.conf to allow network connections was always an annoyance for me, but at least the error message you get if it's set up wrong tells you to edit that file, which is also very straightforward and contains documentation out of the box. Not allowing external access by default is arguably a security practice, though I always thought distro maintainers ought to have erred on the side of usability by enabling localhost access by default.
- DeAndre222 10y agocontact ghostinterceptors247@outlook.com for any type of hacking services and you wont be dissapointed oferring legit services on different range of hacking issues or message at +1 480 439 6115