Suchergebnisse mit Tag „Perl“

TOP

Hash function speed comparison

I need to hash strings to a shorter checksum on a "BigData" heavy-throughput project. The common choice would be SHA, probably SHA1 for speed reasons or CRC32 as the checksums will be used internally only and don't need to be cryptographic secure. A StackExchange answer suggested MurmurHash3, but how does it play with Perl?

Weiterlesen
TOP

Code cleanup: Find unused subs

Most projects are growing. New features get added, old ones deprecate. But as life goes on, ancient parts of the source code stay alive even if they're not being used anymore. My current cleanup challenge has 581k lines of code in 1500 files grown for about 15 years. Part one: Find defined, but unused subs.

Weiterlesen
TOP

Warum ist 075 = 61?

Manche Fehler passieren, obwohl man es eigentlich besser wissen müsste - nur einfach in dem Moment nicht daran denkt. So auch dieses Problem: 75 und 61 sind doch verschiedene Zahlen, wie können sie gleich sein? Sind sie nicht. Aber 075 und 61 sind gleich - und haben mich einige Zeit beschäftigt, bis ich das Rätsel gelöst hatte.

Weiterlesen
TOP

Kollegen für Perl, PHP, Design, DevOps und Sysadmin gesucht

Zoe sieht beim Abendessen mein T-Shirt: "Was heißt denn Schpark Punkt Punkt Punkt Punkt Punkt fünf?" Sie lernt lesen und alles was Buchstaben hat, ist derzeit interessant. Zufällig war es ein Firmen T-Shirt von der letzten Weihnachtsfeier - und da steht nunmal "Spark5" drauf. Der richtige Anlass, endlich einen Blog-Post über unsere freien Stellen zu schreiben.

Weiterlesen
TOP

Reference found where even-sized list expected

I started working myself though a long list of unfixed warnings today and encountered something I didn't see before: Reference found where even-sized list expected at project/Something.pm:573. The message seems to be clear, but do you find the problem at line 573?

Weiterlesen
TOP

Get multiple IDs from ElasticSearch

ElasticSearch is a search engine. It's made for extremly fast searching in big data volumes. But sometimes one needs to fetch some database documents with known IDs. I found five different ways to do the job. Let's see which one is the best.

Weiterlesen
TOP

ElasticSearch vs. mySQL: Das zweite Rennen

Im ersten Anlauf schienen mir die Ergebnisse wenig aussagekräftig, also habe ich neue Testdaten generiert. Dieses Mal steht die dreifache Menge Datensätze zur Verfügung, die Suchkriterien bleiben die gleichen.

Weiterlesen
TOP

ElasticSearch Query

Um ElasticSearch mit den beiden Datenbanken vergleichen zu können, müssen alle drei natürlich die gleiche Aufgabe lösen. Dazu muss eine bestehende SQL-Abfrage in die Query-Sprachen von ElasticSearch und MongoDB übersetzt werden.

Weiterlesen
TOP

German Perl Workshop 2014: Videos

Knapp vier Wochen nach dem German Perl Workshop 2014 haben die Organisatoren die Aufzeichnungen der Vorträge online gestellt, darunter auch mein Talk zum Thema Log everything... und dann?

Weiterlesen
TOP

Passing arguments

Many functions, methods or subs (no matter how you call them) need some arguments. In Perl TIMTOWTDI, but some are faster than others. I'll compare eight ways to get arguments passed to a sub.

Weiterlesen
TOP

Benchmarking mapping tables

Software often needs to transform values from A to B. Such transformations (given they're static) might be done using a database table, if/elsif blocks or a mapping table. Such tables are easy to create, maintain and understand. A database is always the slowest solution for a limited number of items, because the overhead for the client, network and database server is very big compared to sourcecode processing. Sourcecode-based solutions are faster, but which one is the best.

Weiterlesen
TOP

Testing lies even for the sharp S

Lars Dieckow (Daxim) and Curtis Poe (Ovid) both had talks at the German Perl Workshop 2014 in Hannover. Both topic have been very different, but it turned out that Ovid's talk on the last day also had some relation to a small discussion Daxim and I had after his talk. I didn't get it in time, but the connection between both came to my mind while planning this post.

Weiterlesen
TOP

Log everything ...und dann? #GPW2014

"Log everything" ist seit einiger Zeit modern: Einfach alles protokollieren um im Bedarfsfall alle Debuggingdaten noch greifbar zu haben. Aber alles zu loggen ist nur die halbe Wahrheit, wenn man die Daten nicht angemessen aufbereitet. In meinem Talk auf dem German Perl Workshop 2014 habe ich unsere Lösung dieses Problems präsentiert.

Weiterlesen
TOP

Perlformance

TIMTOWDI: There is more than one way to do it ist das Perl-Credo. Some ways are better than others ergänzte Perl::Critic später und diesen Spruch möchte ich heute etwas abwandeln: Some ways are faster than others. Natürlich muss man sich die Frage stellen, wie wichtig Geschwindigkeit für eine Scriptsprache überhaupt ist. Sollten zeitkritische Aktionen nicht besser gleich in C oder einer ihrer Variationen geschrieben werden?

Weiterlesen
TOP

cu@GPW2014

Nur noch 11 Tage, dann beginnt der 16. German Perl Workshop, dieses Jahr in Hannover. Seit Monaten sind die Jungs von Hannover.pm mit den Vorbereitungen beschäftigt. Nach der YAPC 2012 wird dies mein zweiter Perl-Kongress. Die DC13 letztes Jahr war ein Ausrutscher in die Welt abseits der Kamel-Zwiebel-Programmiersprache, aber der GPW2014 wird für mich eine nicht unwichtige Neuerung bringen.

Weiterlesen
TOP

Perl RegEx /s /m Magic

Perl's "Regular Expression" Engine is one of the most flexible and powerful pattern matching and manipulation tools. "Easy" and "powerful" often behave like magnetic poles of the same kind: They can't be together. But the "s" and "m" suffix modifiers supported by the Perl RegEx engine aren't that complicated to understand but still very powerful.

Weiterlesen
TOP

DBI error 4: statement contains no result

Some errors are really hard to find: They appear only sometimes or only on live systems or within complex source that can't run manually using a debugger. Adding debug output might help, but might also be confusing as the DBI error code 4 "statement contains no result" does.

Weiterlesen
TOP

Perl Taint mode: Datenwäsche

Im ersten Teil habe ich den Taint mode vorgestellt und gezeigt, wie gefährlich unbekannte Daten sein können. Jetzt geht es um die nicht minder wichtige Frage, wie man sich diese Daten trotzdem nutzbar machen kann. Das Ziel einer jeden (Web-)Anwendung sollte es sein, mit legitimen Eingaben problemlos und effizient umzugehen ohne dabei die Sicherheit gegenüber Betrugsversuchen leiden zu lassen.

Weiterlesen
TOP

Perl Taint mode: Vergiftete Daten

(SQL) Injection ist immer wieder für Bugs gut, vor allem bei Webanwendungen, aber auch andere Stellen können ganz leicht sehr gefährlich werden. PHP hat das lange Zeit in eindrucksvoller Weise demonstriert - dazu reichte schon ein sehr simples index.php:

Weiterlesen
TOP

Perl grep, map und ()

map und grep sind zwei sehr mächtige Perl-Befehle: Richtig eingesetzt ersparen sie so manche überflüssige Programmzeile und zusätzlichen Speicherbedarf. Mit Hilfe zweier unscheinbarer Klammern kann map um die Funktion von grep erweitert werden.

Weiterlesen