Author Archives: Johan

Cross Stitch Upcycling

Share

This is the process of buying cheap cross stitch wall hangings second hand in thrift stores, and recycling/upcycling them by replacing parts of it with your own content. Preferably pop art subjects like old school video game characters :-)

Removing Parentheses from Subtitles

I often watch English movies and TV series, but not being a native English speaker I like to also have English subtitles.

Usually, the downloadable English subtitles for English content is made for hearing impared, and it can get quite annoying watching lines like this:

or:

So what I do is this:

Open the subtitle file (mostly .srt) in EditPlus. EditPlus is an advanced text editor that is not free, but any text editor with Regexp (Regular Expression) search and replace will work. Here are tips for free ones.

Select Replace from the Find menu.

Enter the search term: \[.+\]|\(.+\)|♪.+♪

Make sure the “Regular Expression” box is checked and click Replace All.

And they’re gone!

sub-regexp

What it does is matches a start character, then any number of (non line break) characters, and then a end character. Either [x], (x) or ♪x♪

This could possibly leave a few rows, for example if it looks like this:

[someone
talking]

This will not match, due to the line break.This will also leave empty lines, or lines with only markup (like “<i></i>”) but that should not be a problem, at least not for VLC.

The results are more than good enough for me! :-)

List Event Post Type – WordPress Widget Plugin

This is a widget that lists posts in the custom post type “events” and sorts them by custom meta field “event_date”.

Use your custom HTML markup to display the list. These codes can be used:
[title] < – title of event post
[link] <- permalink to event post
[venue] <- custom meta field “event_venue
[date xxx] <- custom meta field “event_date” in the PHP date format “xxx”

for example:

<p class="date">[date Y-m-d]</p>
<p class="info"><a href="[link]">[venue] - [title]</a></p>

Use other plugins, such as “Advanced Custom Fields” or code you theme to include the custom post type “events” and meta fields “event_date” and “event_venue”, without these the widget will not work as expected.

This plugin is not finished, many things can be improved, it doesn’t for example check if a post has the field “event_date”, or has a custom post type “events” at all. Default values would have been nice too.. But it works ok for now.

Download the plugin file

Language specific menus in WordPress without coding

A common problem for me, and the customers I make web for, is making multilingual websites in WordPress without re-coding the theme or using paid plugins.

One solution I’m thinking of now (but haven’t tested yet) is to use a “menu logic” plugin to make different custom menus (or menu items) appar on different pages. In most of my cases Swedish menu on Swedish pages and English menu on English pages.

This could be combined with the Widget Logic plugin (or Widget Logic Visual that I have used and like a lot), to make a more multilingual feeling website.

Note that this method does not change any of the text in the theme, such as “one comment” or “Category index for” or such text that the theme contains, so the site will not be fully multilingual, but it can be enough for your needs.

When I search the WordPress Plugins for “menu logic” I get two promising results: “Zen Menu Logic” and “Menu Item Visibility Control“. Both look like they should be able to do this.

With Zen Menu Logic it says that you could just install it, choose witch menu position should change (your theme needs a menu location for custom menus). Then you should get an option in the page/post editor what custom menu should appear on that page (you need to creat the custom menus first) .

With Menu Item Visibility Control you should be able to control what menu items are shown with conditional wordpress tags. You could make this work with language categories, or together with meta tags. I have used this system on many sites (categories and custom meta tags, managed by “Advanced Custom Fields“), but coded the conditions into the themes.

I would say that Zen Menu Logic is a more logical choice for those who are not experienced in coding. It could, together with Widget Logic Visual make for an easy and straightforward solution for the do-it-yourself WordPresser.

The Menu Item Visibility Control could on the other hand be very powerful together with a custom made theme and combinations of other advanced plugins.

Have you tried any of these solutions? Please leave a comment, link it and tell me how it worked for you!

Go out and make webz!

wpaudio as standalone

Hey guys!

I have been using the great WPaudio plugin for different WordPress web projects. Now I’m working on a PHP/HTML web site, and so I was looking at using the great WPaudio player as a standalone player for that site too.

It was actually quite easy to do this, here is what you need to do:

1. You need the plugin files, download the plugin here.

2. If the following sounds hard, skip this step. The plugin uses jQuery, You can use one of the publicly hosted ones (I use the Google API one), but you can also download jQuery here. (it doesn’t seem to work with latest jQ (1.6.2) so I use the 1.4.4 one).

3. Insert the three <script> tags in the HTML (shown below)

4. All links to mp3-files will now be converted to players! Yay!

Example here, look at the html here. The ugly colors are for identifying what color goes where. You can change them to whatever you like in the “style” attrib.

This example needs the “wpaudio-mp3-player” folder to be in the same dir as the html file.

Here is the code:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>test | wpaudio</title>

<script type=’text/javascript’ src=’http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js’></script>

<script type=’text/javascript’>/* <![CDATA[ */ var _wpaudio = {url: ‘wpaudio-mp3-player’, enc: {}, convert_mp3_links: true, style: {text_font:’Sans-serif’, text_size:’18px’, text_weight:’normal’, text_letter_spacing:’normal’, text_color:’inherit’, link_color:’red’, link_hover_color:’blue’, bar_base_bg:’green’, bar_load_bg:’cyan’, bar_position_bg:’magenta’, sub_color:’olive’}}; /* ]]> */</script>

</head>
<body>

<p><a href=”http://owe.ompom.se/data/musik/Orientexpressen%20-%20Nattritt.mp3″>Orientexpressen &#8211; Nattritt</a></p>

<script type=’text/javascript’ src=’wpaudio-mp3-player/wpaudio.min.js?ver=3.1′></script>
</body>
</html>

Stims intäkter visar ingenting

Länge sen jag skrev något här, men om nån vecka får jag min kandidatexamen från Musikhögskolan i Stockholm så då kanske jag har tid att blogga också! :-) Anyways.

Jag måste bara kommentera en nyhet i DN som heter “Färre gick på konsert i fjol“. I artikeln hänvisar de till Stims årsrapport och skriver:

Livemusiken skulle rädda vinsterna åt en industri som sett skivförsäljningen dala år efter år i ett par decennier. Beskeden har också varit positiva under hela 2000-talet: Varje år har konsertintäkterna ökat – på knappt tio år har de fördubblats. I Storbritannien var 2008 året då inkomsterna från livemusiken gick om den inspelade musiken. I Sverige har det dock inte hänt än.

Men nu är den positiva trenden bruten. Färska siffror från musikskaparnas organisation Stim visar att intäkterna från festivaler och konserter sjunker eller står stilla. I årsrapporten för 2010 redovisar man ett tapp på 11 miljoner kronor, från 57 miljoner kronor år 2009 till 48 miljoner året därpå.

Det är lite svårt att veta var siffrorna kommer ifrån, men de hänvisar till Stims årsrapport -10 och jag gissar att det är detta DN nappat på (sid 54):

stim_ar10_sid54

“Framförande av svensk och utländsk musik i Sverige” -> “Festivaler, konserter, event m m”

Problemet med detta är bara att dessa siffror är Stims intäkter från verksamheten. Det säger naturligtvis ingenting alls om hur många konsert-/festivalbesökare, hur mycket intäkter arrangörerna hade eller hur mycket gage musikerna fått. Det är alltså svårligen en indikation på om färre går på konsert, eller på om “live-scenen” minskat eller ökat.

Vad har Stims intäkter med hur Sveriges musikliv ser ut att göra? Ingenting naturligtvis.

Intressant är också att notera att i uttalandena från arrangörerna i artikeln så låter det ljusare:

“Visst har vi haft bättre år än de senaste tre åren” – Live Nation

“vi har ökat hela 2000-talet” – Stockholm Globe Arenas

Artikeln fokuserar oerhört på de allra största populärmusikaliska festivalerna i de stora arenahallarna, och verkar inte alls erkänna de många normalstora till mindre arrangörerna som ordnar många hundra konserter var om året.

Artikelns slutkläm känns verklighetsfrånvänd, vem vill lägga tusen spänn på en gammal arenakonsert? Men Johanssons sista mening sätter, kanske omedvetet, huvudet på spiken. Varför vill vi öht bygga arenahallar, när det finns lokala arrangörer som behöver små och normalstora trevliga och anpassade lokaler till bra musik? Som om “livemarknaden” handlade om ett par tre trötta festivaler…

– För tio år sedan hade vi Globen, Scandinavium och en nyöppnad Cloetta-hall och Löfbergs Lila. I dag har du fem, sex sju nya arenor i den storleken bara i Sverige. Det är klart att det blir mindre intäkter på var och en. I Tyskland finns i dag 25 nya arenor jämfört med när jag turnerade med Roxette där 2001. Jag undrar hur det här ska gå.

Har livemarknaden mättats?

– Live Nation har tre stadionkonserter i år, Foo Fighters, Metallica och Iron Maiden. Det är vad vi brukar göra. Det finns bara en Lady Gaga, det finns bara ett Metallica – när de har åkt ut på sin turné då är det klart. Jag undrar vad det ska vara för ”varor” i alla nybyggda hallar, säger Thomas Johansson.

Dessutom, jag tror inte folk greppar hur mycket offentliga medel som trycks in i byggandet och driften av alla stora arenahallar, som är för stora och dyra att användas till annat än Lady Gaga, och där vinsten givetvis går till privata bolag. Här behöver vi granska det offentliga stödet i förhållande till de kulturpolitiska målen.. Mer om det snart.

Que sheet – beat sync

(hint: Google Translate)

Jag går just nu en väldigt intressant filmmusikkurs med Johnny Wingstedt som tillval på musikhögskolan. Vi håller på att lära oss använda beat sync för att skriva filmmusik som synkar med synkpunkter i filmen.

Vi fick en massa formler för att räkna ut vilket slag i musiken en viss synkpunkt kommer på (beroende på tempo och starttid). Vi ska också göra que sheets för musikpartierna. Så jag tänkte att man måste kunna låta ett kalkylprogram (excel) göra jobbet åt en.

Så nu har jag gjort ett kalkylblad som utifrån absoluta tidskoder (timme:minut:sekund:frames) räknar ut relativ tid, och utifrån relativ tid och tempo (bpm) räknar ut vilket slag man hamnar på. Frames måste tyvärr läggas till i en separat kolumn för att det ska gå att använda bas 25 (eller vilken FPS man vill).

cue-sheet

Filen är gjord i MS Excel 2002 och är inte testat i något annat program, men jag tänkte kolla i Open Office Calc och Apple Numbers vid tillfälle.

Formlerna är dock desamma och borde fungera oavsett program (här med svenska funktionsnamn). Kolumn D innehåller den absoluta tiden (inkl. omräknade frames) som sekunder med decimaler.
A4: [BPM]
C4: [FPS]
A7: 1
A8 och nedåt: =E8*$A$4)/60+$A$7
E7: 0
E8 och nedåt: =D8-$D$7
D7 och nedåt: =B7*24*60*60+C7/$C$4

Jag har dessutom en massa felkontroll.. Man måste givetvis inte ha det, men de ger automagiskt en snygg utskrift. (de tomma fälten i B- och C-kolumnerna innehåller =SAKNAS() (or =NA() in english))

cue-sheet-excel

Jag har också lagt till lite snygga vilkorsstyrda formateringar, t.ex. att frames-fältet blir rött om värdet är högre än FPSen, och att radlinjerna bara syns om raden har data.

Nu har jag gjort en uppdaterad version som räknar ut om ett beat ligger innanför leeway-marginalen (som man kan speca i gömda rad 7).

beat-control

Här är nya filen:
-> beat-sync_que-sheet_lee-control.xls

KOPIMI: Gör vad ni vill med den. Hör gärna av er om ni har nytta av den!

Här finns nu också en “bar layout” som PDF (numrerade kryss från 1 till 288), till att planera takterna:
-> barlayout.pdf

BTW så använder jag VirtualDub som spelare. Den visar frame count och millisekunder, kan stega mellan frames med pilknapparna och är grymt snabb. Funkar till PC och MAC, dessutom.
vdub

Video embed codes

I’m building a site where users can embed video into their profiles. Letting people use custom HTML is way too risky, so I’ve made a script that detects the video service and builds the embed code from the video URL.

I have added the video sites most popular here right now, I’m probably going to add more on request. I’ve minimized the embed codes as much as I can, removed all unnecessary (for me) parameters.

The video sites as of now are:
YouTube
MySpace
Google
Vimeo
Yahoo
Flickr

And audio:
Soundcloud

(separating audio and video might not be necessary for other sites)
Here are the PHP functions, getVideoEmbedHtml() and getAudioEmbedHtml() with some testdata at the top:

embedcodes.txt
embedcodes.php

if you run the PHP script you can see the outputted embed codes in the source.

KOPIMILL

Med anledning av Rasmus inlägg “Hej då Newsmill“, och kommentarerna därefter har jag nu byggt ett litet KOPIMILL-script.

Det finns här:
http://www.johanronstrom.se/kopimill.php

Det finns ingen text lagrad på servern utan allt hämtas och parsras (?) från Newsmill dynamiskt. Idén är att man säkert ska kunna länka till t.ex. den här artikeln utan att tvinga in sina läsare på Newsmill (hemska tanke). Så nu kan man läsa artiklarna utan äckliga kommentarer och “millningar”.

Att scriptet ligger på min server är inte så hållbart i längden, så om någon vill hosta scriptet, kanske t.o.m. regga kopimill.se så finns scriptet att ladda ner i footern på sidan. Det är bara en fil. Bara att spara om som .php så är det igång. Alla kan ha sin egen KOPIMILL!

Ser för övrigt trevlig ut i lynx :-)
kopmill lynx

Buggrapporter, förslag på förbättringar och sånt tas med fördel på padden kompisen.se/kopimill .

UPPDATERING: KOPIMILL hostas nu på kopimill.info.

Image game

We were playing games last night and I was reminded of a Swedish TV game show where each team of contestants was shown five images and had to come up with a song that related to three of the images.

So we came up with the idea to do that at home with a laptop and randomized images from the web. So I made a page that does that!

It simply fetches five images from the flickr’s random “interesting photos from the last 7 days” using this function (derived from this post):

<?php
$doc = new DOMDocument();
@$doc->loadHTMLFile("http://www.flickr.com/explore/interesting/7days/");
$xpath = new DOMXpath($doc);
if($xpath){
  $src = $xpath->query("//td[@class='Photo']/span/a/img/@src");
  $url = $xpath->query("//td[@class='Photo']/span/a/@href");

  print '<a href="http://www.flickr.com'.$url->item(0)->nodeValue.'">
      <img src="'.$src->item(0)->nodeValue.'" /></a>';
  print '<a href="http://www.flickr.com'.$url->item(1)->nodeValue.'">
      <img src="'.$src->item(1)->nodeValue.'" /></a>';
  print '<a href="http://www.flickr.com'.$url->item(2)->nodeValue.'">
      <img src="'.$src->item(2)->nodeValue.'" /></a>';
  print '<br />';
  print '<a href="http://www.flickr.com'.$url->item(3)->nodeValue.'">
      <img src="'.$src->item(3)->nodeValue.'" /></a>';
  print '<a href="http://www.flickr.com'.$url->item(4)->nodeValue.'">
      <img src="'.$src->item(4)->nodeValue.'" /></a>';
}
?>