The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,839 other subscribers

Archive for the ‘Software Development’ Category

How Shazam Works To Identify (Nearly) Every Song You Throw At It

Posted by jpluimers on 2016/05/10

The basics:

  1. Beforehand, Shazam fingerprints a comprehensive catalog of music, and stores the fingerprints in a database.
  2. A user “tags” a song they hear, which fingerprints a 10 second sample of audio.
  3. The Shazam app uploads the fingerprint to Shazam’s service, which runs a search for a matching fingerprint in their database.
  4. If a match is found, the song info is returned to the user, otherwise an error is returned.

More details at How Shazam Works To Identify (Nearly) Every Song You Throw At It including this fingerprint example

Song Audio Fingerprint

Song Audio Fingerprint

–jeroen

via: How Shazam Works To Identify (Nearly) Every Song You Throw At It.

Posted in Algorithms, Development, Software Development | Leave a Comment »

Sacrificial Architecture: design your software to live for a limited time.

Posted by jpluimers on 2016/05/05

Today I revisited a post by Martin Fowler on Sacrificial Architecture from last year because I was looking for this quote:

“design for ~10X growth, but plan to rewrite before ~100X”

Thanks Lars Fosdal for pointing me to it in the first place back then.

–jeroen

via:

Posted in Design Patterns, Development, Software Development | Leave a Comment »

Visual Studio 2013+: printing with syntax highlighting has moved to the “Productivity Power Tools”

Posted by jpluimers on 2016/05/04

Back in the Visual Studio 2010 days there was a request for Printing source code with syntax coloring.

Then, the Visual Studio team released an extension that did just that: Color Printing Extension Now Available! – The Visual Studio Blog – Site Home – MSDN Blogs.

It got updated for Visual Studio 2012 in the gallery Color Printing extension, but that does not mention it has moved to the Productivity Power Tools 2013 extension.

Both tools are from the Visual Studio IDE team, and mentioned on their blog.

–jeroen

via: printing – How to print XML from Visual Studio 2013 with syntax colouring? – Stack Overflow.

Posted in .NET, Development, Software Development, Visual Studio 2010, Visual Studio 2012, Visual Studio 2013, Visual Studio 2015, Visual Studio and tools | Leave a Comment »

Mac OS X and python “ValueError: unknown locale: UTF-8”

Posted by jpluimers on 2016/05/03

On Mac OS X, to solve the Python error “ValueError: unknown locale: UTF-8“:

Add some lines to your ~/.bash_profile then re-start bash (or re-login):

export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

–jeroen

via python – Pelican 3.3 pelican-quickstart error “ValueError: unknown locale: UTF-8” – Stack Overflow.

Posted in Development, Python, Software Development | Leave a Comment »

reStructuredText notes (.rst file extension)

Posted by jpluimers on 2016/04/28

Thanks to Eric Grange who asked Which lightweight markup language? I learned about reStructuredText (no cap R!) from a few comments Joseph Mitzen made.

It looks like reStructuredText has been around for much longer than Markdown, has better features (#1 for me: it is unambiguous, #2: native support on GitHub), but isn’t as popular. I think the latter is because finding editors supporting a live preview for it is a bit hard and tools are scattered around the net.

So here are a few notes on how I got reStructuredText to work on my Mac using OS X.

The hardest part was getting the reStructuredText preview for Atom to work:

  1. Verify you have recent apm/npm
  2. Download, then install the latest Mac Pandoc release (filename like “pandoc-*-osx.pkg”).
  3. Open Atom
  4. Menu “Atom” -> “Preferences” to open a “Settings” tab in the Atom user interface
  5. In the list “Settings”, “Keybindings”, “Packages”, “Themes”, “Updates”, “Install”, choose the last one: “Install”
  6. In the “Search packages” textbox, type “language-restructuredtext”, then hit Enter
  7. Wait a few seconds until “language-restructuredtext” appears in the list, then click the “Install”  button next to it
  8. In the “Search packages” textbox, type “rst-preview-pandoc”, then hit Enter
  9. Wait a few seconds until “rst-preview-pandoc” appears in the list, then click the “Install” button next to it
  10. To enable spell checking:
    1. In “Settings”, go to “Packages”
    2. Search for “spell-check”
    3. Click “settings”
    4. Add “gfm.restructuredtext” to the “Grammars” list
    5. Note you get “gfm.restructuredtext” from the “language-restructuredtext” package as described in Spell check in Atom – Atom quick tip #3 – Atom Editor Tips and Tricks.
  11. Restart Atom from the command-line (otherwise it will not find pandoc *)
  12. Open a reStructuredText file
  13. Press Ctrl-Shift-e to show the preview
  • pandoc error:

The error you get when pandoc cannot be found is this one:

‘pandoc’ could not be spawned. Is it installed and on your path? If so please open an issue on the package spawning the process.

It is easy to solve by modifying the Atom startup shell script and then don’t start Atom.app, but start atom from the command-line in a terminal window:

atom

For Windows:

  1. Install Chocolatey Gallery.
  2. Follow the steps at Hello Windows.
  3. Fails horribly: “The term ‘Install-ChocolateyPackage’ is not recognized as the name of a cmdlet”.
    1. Split-Path bug preventing Chocolatey to install a package · Issue #686 · chocolatey/chocolatey · GitHub.

A later try to get Pandoc installed on Windows was much easier: there is a Pandoc for Windows installer now.

Settings changes

I made a few, for instance:

  1. Ensure Tab to expands to spaces: See Soft Tabs and Tab Length under Settings > Editor Settings. via github – Atom – Change indentation mode – Stack Overflow.

Tables

Tables are always a hard thing in any markup. Luckily truben.no/table/ has a good table editor (it’s the same as table-editor.com) and can emit reStructuredText, Markdown, HTML and other formats.

More in the future

Give me some time, and I will post more about using the format and how it compares to my Markdown past.

Note that pandoc does not fully support reStructuredText (for instance not all table features are supported), but docutils rst2html.py does and also gives better warning/error information when parsing.

Here are some links about the reStructured syntax and how they can be rendered by rst2html.py:

For now, I’ll end with the goals of reStructuredText which I really like:

Read the rest of this entry »

Posted in Development, MarkDown, Perl, PHP, Power User, Python, reStructuredText, Scripting, Software Development | Leave a Comment »

400+ Free Resources for DevOps & Sysadmins

Posted by jpluimers on 2016/04/27

400+ Free Resources for DevOps & Sysadmins ranging from bitbucket/gitbub via letsencrypt through loggly to cloudflare and all soorts of *aaS online IDEs, payment services and more.

via: Mary Tee referred to by Joe Hecht.

–jeroen

Posted in Development, Encryption, Let's Encrypt (letsencrypt/certbot), Power User, Security, Software Development | Leave a Comment »

findstr as alternative for recursive grep search

Posted by jpluimers on 2016/04/27

Usually I use the old Borland grep.exe that still ships with Delphi. Too bad it is 16-bit app which does not recognise Unicode.

FindStr does. Though much slower and with limited regular expression capabilities, can do recursive searches too:

findstr /spin /c:"string to find" *.*

The /spin is a shortcut for these case insensitive command-line options (the full list of possible options is below):

  /S         Searches for matching files in the current directory and all
             subdirectories.
  /I         Specifies that the search is not to be case-sensitive.
  /N         Prints the line number before each line that matches.
  /P         Skip files with non-printable characters.

Sometimes I leave out the /P to include binary files.

–jeroen

via:

Read the rest of this entry »

Posted in Batch-Files, Development, Power User, RegEx, Scripting, Software Development, Windows, Windows 7, Windows 8, Windows 8.1, Windows NT, Windows Server 2000, Windows Server 2003, Windows Server 2003 R2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Vista, Windows XP | Leave a Comment »

O RLY Parody Book Generator for Slack

Posted by jpluimers on 2016/04/26

Oh yes, someone finally did it!

Insult your co-workers with snarky O RLY parody book covers!

Source:

via: O RLY Cover Generator: Create parodies of the iconic O’Reilly book covers

URL example:

https://orly-appstore.herokuapp.com/generate?title=Finding%20your%20own%20G%2B%20posts%20on%20Google&top_text=Your%20off-line%20memory%20organised.&author=Kanye%20West&image_code=13&theme=12

–jeroen

Posted in Development, Software Development | Leave a Comment »

XSD enumerations: key value pairs

Posted by jpluimers on 2016/04/26

One of the things you cannot do in XSD, is have string enumerations contain both a key and a value.

But there is a little appinfo trick inside annotation that you can user under some circumstances, for instance when you interpret the XSD:


<xs:simpleType name="event_result">
<xs:restriction base="xs:string">
<xs:enumeration value="101">
<xsd:annotation><xsd:appinfo>Syntax error</xsd:appinfo></xsd:annotation>
</xs:enumeration>
<xs:enumeration value="102">
<xsd:annotation><xsd:appinfo>Illegal operation</xsd:appinfo></xsd:annotation>
</xs:enumeration>
<xs:enumeration value="103">
<xsd:annotation><xsd:appinfo>Service not available</xsd:appinfo></xsd:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>

appinfo is the application counterpart of documentation: both can contain any xml, but appinfo is aimed at machines, whereas documentation is aimed at humans.

–jeroen

via:

Posted in Development, Software Development, XML, XML/XSD, XSD | Leave a Comment »

Anyone that installed D10.1 had the new installation dialogs that Embarcadero brags about…

Posted by jpluimers on 2016/04/22

Conclusion:

–jeroen

Source: Anyone that installed D10.1 had the new installation dialogs that Embarcadero…

Posted in Delphi, Delphi 10.1 Berlin (BigBen), Development, Software Development | 10 Comments »