Toolbox Blogs

it.toolbox.com · Group blog · on HN since 2008

Toolbox Blogs is a multi-author blog network covering IT topics including PostgreSQL, security, programming management, and networking.

What HN saysHN links it for individual posts on topics like PostgreSQL internals and Google's reCAPTCHA acquisition; commenters give no view on the site overall.
48HN people shared it
18linked it in comments
53stories submitted
449story points
7 years agolast shared
2008people per year2026

Most-shared posts

  1. 1
    Why PostgreSQL doesn't have query hints
    2 people · 156 points · first shared 2011 · 60 comments on HN
  2. 2
  3. 3
  4. 4
    Postgresql publishes first real benchmark 17470
    2 people · first shared 2009
  5. 5
  6. 6
  7. 7
    PostgreSQL: What happened to Hot Standby?
    1 people · 29 points · first shared 2009 · 36 comments on HN
  8. 8
    Theory P: The Philosophy of Managing Programmers
    1 people · 20 points · first shared 2019 · 6 comments on HN
  9. 9
    Texas Pickup Truck Crash Shuts Down the Internet (2007)
    1 people · 8 points · first shared 2018 · 4 comments on HN
  10. 10
    Cool List Of LINQ Examples, Tips and How To's
    1 people · 6 points · first shared 2011 · discussion on HN
  11. 11
    RIP Ingres
    1 people · 6 points · first shared 2011 · 2 comments on HN
  12. 12
    Stop the Madness Called Email
    1 people · 6 points · first shared 2009 · 10 comments on HN
  13. 13
    Email-Init: The Dawn of an Open Source Mail Client
    1 people · 5 points · first shared 2010 · discussion on HN
  14. 14
  15. 15
    Never Ask Strangers About DEFCON
    1 people · 3 points · first shared 2012 · discussion on HN

What HN people wrote when they linked it

adamnemecek · 2014-06-05
I'm inclined to disagree and this article seems to disagree as well http://it.toolbox.com/blogs/macsploitation/bypassing-objectivecs-messa… (it's not a great test but it's a test) Given I've found some other articles that claim that it's not that slow but none of them really present any data. I guess that it depends on your definition of "major factor".
6ren · 2011-12-11
Codd emphasised the relational model as being able to change the underlying storage representation without breaking apps. Will this eventually be a problem for NoSQL? Or, is the scalability worth the sacrifice? Or, does NoSQL typically have only one (main) app, so making it work with a specific storage representation is not a big deal? The relational use-case was many different apps, with different versions, needing different access paths to the data. But if you just have one known set of access paths (like a REST URI), you can just design the DB for that. Hierarchical databases worked well when just one DB, one app; they just weren't very flexible. Hierarchical databases are fast and simple but inflexible as the relationship is restricted to one-to-many, only allowing for one parent segment per child. http://it.toolbox.com/wiki/index.php/Hierarchical_Database
gengstrand · 2009-09-18
It's a brilliant move in using collective intelligence. You get better quality CAPTCHAs. You get more accurate digitization on the cheap. I go into more detail on this at http://it.toolbox.com/blogs/future-of-work/google-acquires-recaptcha-3…
schulz · 2010-10-13
It depends how you approach the problem. I'm guessing here, from my own experience implementing social graph features, but here goes: There are a couple of ways you can go about this, the first is the database: Join the network of people against the land of content and bring it back. This doesn't work (as an aside this is what people mean when they say web scale, it has nothing to do with web traffic, it's social graphs) your database will cry. All though not at first, in development it works fine, and you feel fine, and for a while you're ok, but you start growing.... Another way you can go about it is by denormalizing. In this world you store a pointer to each content item for each user. So anytime I do something all the people [following|watch|connected|friended] to me get a record indicating I did this. This works, but now you have lots of data (lots and lots of data!) spread all crazy around. You need some kind of system to push that data out to everybody. It's those last two that drive up your hardware usage, it's not necessarily web boxes, but it's boxes in the background broadcasting the events out to the world, and the datastores to hold it all. Depending on how your web code works you could also have a lot of overhead on the webservers putting all that stuff together. My experience here comes from building the social features into toolbox.com. A good example is this page http://it.toolbox.com/people/george_krautzel/posts-connections That's all the…
dredmorbius · 2019-08-02
Back in the day, it was "IBM and the seven dwarfs", Digital Equipment, Control Data, General Electric, RCA, Univac, Burroughs, and Honeywell. Later, Amdahl offered fully-IBM-mainframe compatible systems. Tandem's specialty was fully redundant, fault-tolerant systems. https://it.toolbox.com/blogs/shayne-nelson/the-60s-ibm-the-seven-dwarv… By the 1990s, "big iron" referred not only to mainframe (S360 descendants -- now S390 / zOS), but big Unix vendors: Sun (now Oracle), HP, Data General, SGI, etc. Some of these still survive in some form: https://en.wikipedia.org/wiki/Mainframe_computer#Current_market
moring · 2019-05-03
I actually disagree with "Don't use timestamp (without time zone)". The Java class library (and before it, Joda time) distinguishes "instants" and "locals" which is pretty much the same as PostgreSQL's "with time zone" and "without time zone". They are just different data types with different use cases, and saying that one is preferred is misleading. I like to compare them to bytes and characters. You would use bytes if you need bytes, and you would use characters if you need characters. They are unrelated data types unless a character encoding is specified. Likewise, instants and locals are unrelated data types unless a time zone is specified. BTW, the manual page links to https://it.toolbox.com/blogs/josh-berkus/zone-of-misunderstanding-0928… which explains that "with time zone" doesn't store a time zone.
photon137 · 2012-09-16
> index only scans will do wonders for append-mostly workloads Won't updates be actually slower once indexes are added to take advantage of index-only scans? Another issue that I can see comes not from having the index-only scan feature (which is cool, though belated) but having a query planner intelligent enough to figure out which index to hit - ie query optimization. If the columns used in WHERE clause do not contain the appropriate columns (particularly for non-clustered indexes), shouldn't index hints be supported to help pick up the relevant index or would we end up with horrible execution plans leading to tablescans?([1] - I see this as a case of devs overriding users) [1]: http://it.toolbox.com/blogs/database-soup/why-postgresql-doesnt-have-q…
ibejoeb · 2011-04-14
I'm pretty much on board with these points. Here's an interesting explanation of the absence of hints: http://it.toolbox.com/blogs/database-soup/why-postgresql-doesnt-have-q… Also: FIRST_VALUE and LAST_VALUE really need IGNORE NULLS to do proper, high-performance rollforwards for things like time series data and periodic analysis.
alnayyir · 2010-07-19
What little I've managed to open source so far, is licensed under what amounts to a 2-clause BSD + what I call the "Diane Bruce clause". http://it.toolbox.com/blogs/bsd-guru/have-we-lost-the-fun-21360 * [email protected] wrote this file. As long as you retain this notice you * can do whatever you want with this code, except you may not * license it under any form of the GPL. * A postcard or QSL card showing me you appreciate * this code would be nice. Diane Bruce va3db
microtherion · 2009-12-12
I also like this one about printers: http://it.toolbox.com/blogs/irm-blog/bryces-pet-peeve-computer-printer… where he talks about "today's consumer dot-matrix printers".
sketerpot · 2009-12-11
No, this guy is actually every bit as much of a bozo as the article suggests. Check out his guide to hiring a programmer: http://it.toolbox.com/blogs/irm-blog/hiring-the-right-programmer-11596 In particular, his example of good C code is illuminating: int. Table [10] [10]; /* 2 dimensional array */ for (i=0; ; <10; ++i) for (j=0; ; <10; ++i) printf("%d/n",table[i][j]); Enough said, I think.
mattyb · 2009-07-01
tsally, don't look! I was hoping to see simple built-in replication in 8.4 (didn't make it into 8.3, see here: http://it.toolbox.com/blogs/database-soup/postgresql-development-prior… so I guess it's on the 8.5 wishlist.
ocskills · 2009-02-10
Of note, Sun ironically performed a benchmark between PostgreSQL and Oracle. The results were that PostgreSQL performed very closely to Oracle under several scenarios. http://it.toolbox.com/blogs/database-soup/postgresql-publishes-first-r… It's not a direct comparison between MySQL, but Oracle is highly regarded from a performance standpoint.
andrewf · 2009-01-07
Sun has previously demonstrated Postgres scaling well on their 32-way (8 cores x 4 threads/core) hardware. http://it.toolbox.com/blogs/database-soup/postgresql-publishes-first-r…
bane · 2013-12-22
"running servers" reminds me a lot on restrictions on some systems against "running arbitrary code", then letting you browse the web with javascript turned on. These days servers take all kinds of form, from an FTP server to somebody hosting a deathmatch from their xbox. Hell would my browser going to a page that uses web sockets count as a server? Is an X server a server? I'm sure I'm running half a dozen chrome extension that count as servers in some way. Here's a web server in a browser! http://it.toolbox.com/blogs/puramu/a-browser-based-webserver-15604 It's dumb and pointless, what they should be saying is what they mean, if they're afraid of too much bandwidth utilization then say "users may not saturate their connections above 30% bandwidth utilization for longer than 3 hours" or some such. If it's not wanting people to run commercial services then a couple clauses of either "for noncommercial use only" or "not to be held liable for commercial servers running on residential lines" or whatever is the appropriate legalese. It's just weird old thinking that has nothing to do with how the technology actually works.
peeters · 2013-11-19
It's a reasonable idea that already has use in displaying cryptographic fingerprints. Typically when servers present a certificate, if the cert is untrusted, a fingerprint (a hash of the public key) is shown to the user. This is meant to caution the user: if all of a sudden they see a fingerprint that they don't recognize, it might be somebody malicious trying to capture your traffic! Instead of presenting the fingerprint as a big hexadecimal string, some clients instead produce ASCII art and display that instead, on the theory that the human brain is better at memorizing that than a big string of digits. For example, OpenSSH: http://it.toolbox.com/blogs/unix-sysadmin/visual-ssh-fingerprints-with… I would argue this has even more use in a system that is trying to warn about changes, rather than about possible malicious attackers. After all, in the SSH example above, an attacker just needs to get a certificate that looks close enough to the real one that the user will accept it.
wulczer · 2011-07-20
There are strong opinions on it, but I firmly believe that "always have an autoincremental id" is a very wrong approach. Read http://it.toolbox.com/blogs/database-soup/primary-keyvil-part-i-7327 (an often-quoted series of blog posts on why surrogate numeric keys are evil). In general, if you have an entity with a well-defined natural key (users and their logins, shipments and their tracking codes), why would you use an autogenerated key that's meaningless? Case in point, my current schema, designed from scratch. Users can have multiple dashboards, each dashboard has a label. A user cannot have multiple dashboards with the same label, but the two users can of course use the same label for their dashboards (like "sales" or "mydashboard"). The dashboard's table primary key is (username, label) - that pair uniquely identifies a dashboard, so it's a perfect PK candidate. Also, as already noted in one response, many-to-many relationships are typically modelled by an intermediate table that has foreign keys to both sides of the many-to-many, and its foreign key is the sum of these foreign keys. EDIT: added a concrete example
ableal · 2010-06-24
(Late notes, mostly to jot down a few URLs; also, the R.Young post I linked to above got further debate) - At http://news.ycombinator.com/item?id=1084150, late in 2009, there had been some debate on the merits/etc. of DB2. - R.Young is giving the "DB2 9.7 freebie" a spin under Linux: http://drcoddwasright.blogspot.com/2010/06/bill-teds-excellent-adventu… - A bit of search led to a series of articles by Chris Eaton. List at http://it.toolbox.com/blogs/db2luw, best practices to configure DB2 guides at http://it.toolbox.com/blogs/db2luw/best-practices-for-db2-for-luw-2498… - Another post in that series includes a comment which clarifies what is and is not included in DB2v9.7 Express-C: http://it.toolbox.com/blogs/db2luw/db2-97-announced-by-ibm-i-think-it-… ["What is not yet included in Express-C is PL/SQL support, CLPplus or build in package libraries (DBMS_PIPE, UTL_SMTP, etc)."]

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close