new blog post: sources.d.n advanced search and other news
authorStefano Zacchiroli <zack@upsilon.cc>
Tue, 17 Sep 2013 16:00:38 +0000 (18:00 +0200)
committerStefano Zacchiroli <zack@upsilon.cc>
Tue, 17 Sep 2013 16:00:38 +0000 (18:00 +0200)
blog/archives/2013/09.mdwn [new file with mode: 0644]
blog/posts/2013/09.mdwn [new file with mode: 0644]
blog/posts/2013/09/sources.debian.net_-_advanced_search_and_other_news.mdwn [new file with mode: 0644]

diff --git a/blog/archives/2013/09.mdwn b/blog/archives/2013/09.mdwn
new file mode 100644 (file)
index 0000000..eb70ea0
--- /dev/null
@@ -0,0 +1 @@
+[[!template id=archive_month year="2013" month="09"]]
diff --git a/blog/posts/2013/09.mdwn b/blog/posts/2013/09.mdwn
new file mode 100644 (file)
index 0000000..c1a0551
--- /dev/null
@@ -0,0 +1 @@
+[[!meta redir=archives/2013/09]]
diff --git a/blog/posts/2013/09/sources.debian.net_-_advanced_search_and_other_news.mdwn b/blog/posts/2013/09/sources.debian.net_-_advanced_search_and_other_news.mdwn
new file mode 100644 (file)
index 0000000..017eb34
--- /dev/null
@@ -0,0 +1,71 @@
+# all your ctag (and checksum) are belong to us
+
+A few months after the
+[[initial announcement|07/introducing_sources.debian.net]], here are some news
+about the [sources.d.n](http://sources.debian.net) service. I've been late in
+blogging this, but most of it has been implemented by myself and Matthieu
+Caneill during [DebConf13](http://debconf13.debconf.org/), which has been a
+great DebConf, totally exceeding my expectations (and they were already fairly
+high!).
+
+First, you might have noticed some *user-visible changes*:
+
+- there is now an
+  [**advanced search** page](http://sources.debian.net/advancedsearch/), which
+  complements the already existing
+  [regex code search](http://codesearch.debian.net/) with the possibility of
+  searching source files by their **sha256**, or the **ctags** defined therein
+  
+- on the same topic, when browsing through a package and using regex search,
+  you'll now search by default within *that* package, allowing to focus your
+  searches more easily than before. (You can easily override this by editing
+  the search box and removing the `package:` predicate.)
+
+- for the data geeks (or the wannabe host), there are now
+  [**disk usage stats**](http://sources.debian.net/about/stats/) (note that
+  they don't include the database size, though, see below for that)
+
+- the website also got a significant **facelift**, as part of which we have
+  moved the detailed explanations of what the service is about out of your
+  way. You now immediately get to the various browsing options.
+
+On the other hand, *under the hood*:
+
+- to implement ctags and sha256 searches we needed a serious DBMS, so we
+  switched from SQLite to **PostgreSQL**.
+  
+  Again, for the data geek: storing ctags/sha256 for all of sources.d.n content
+  with decent indexes takes about 37 GB, for about 160 million rows in the
+  ctags table and 20 million rows in the checksums one. (Currently filenames
+  are duplicated between the two tables so, probably, the DB disk size might be
+  reduced some.)
+
+- together with the switch to a serious DBMS, the update logics has been
+  completely rewritten in Python (from Bash...), and should now be entirely
+  transactional.
+
+- ... and given it was going to be Python anyhow, better to enjoy what it has
+  to offer, no? So there is now a **plugin mechanism** that makes it easier to
+  add extra data extractors, triggering them at each package update. Currently
+  there are plugins for sha256sum, ctags, and sloccount (even though the latter
+  is not yet exposed via the web interface). An added benefit of this is that
+  if you want to deploy debsources elsewhere, you can easily disable the most
+  time consuming extractors: running ctags *and* sha256sum on the fabulous 3
+  chromium/libreoffice/linux is not for the faint of disks...
+
+- we now receive **push updates** from the Debian mirror network, so that
+  you'll get updates on sources.d.n as soon as a package hits Debian mirrors (+
+  processing time, which is about 15-20 minutes on the average update run).
+  Many thanks to Simon Paillard and Adam Lackorzynski for their help in setting
+  this up.
+
+- thanks to a [suggestion by kugel](https://lwn.net/Articles/557371/) we have
+  adopted [Geany](http://www.geany.org/)'s conventions for filetype detection,
+  and we now take into account both file extensions and shebang lines (when
+  available)
+
+As you usual, your bug reports (and patches!) are more than welcome, just check
+[BUGS](http://anonscm.debian.org/gitweb/?p=qa/debsources.git;a=blob;f=BUGS;hb=refs/heads/bugs)
+before reporting to avoid duplicates.<br /> That's all!
+
+[[!tag lang/english planet-debian debian qa debsources]]