ergoconsulting.dk – svar fra Klagenævnet

Efter min henvendelse til Jens Schovsbo om afgørelsen vedrørende ergoconsulting.dk har jeg nu fået svar fra Klagenævnets Sekrætariat.

Klagenævnet har modtaget Deres e-mail af 4. januar 2012, hvori De rejser et spørgsmål til klagenævnets afgørelse af 2. januar 2012 af sag 2011-0179 (ergoconsulting.dk). Klagenævnets omtalte afgørelse er begrundet, og klagenævnet kommenterer ikke efterfølgende sine afgørelser.

Det er jo klar tale. Men jeg vil nu stadigvæk gerne vide om Klagenævnet har undersøgt hvordan Paten- og Varemærkestyrelsen betragter indsigelsen mod det relevante varemærke. Så nu prøver vi med aktindsigt.

Comments

Kompetancefordelingen mellem Patent- og Varemærkestyrelsen og Domæneklagenævnet

I andledning af en afgørelse i Domæneklagenævnet vedrørende ergoconsulting.dk har jeg skrevet følgende email til klagenævnsmedlem Professor, dr. jur. Jens Schovsbo:

Som aktiv deltager i debatten vedrørende danske domænenavne skimmer jeg
ofte Domæneklagenævnets afgørelser. Jeg har et principielt spørgsmål
vedrørende en af sagerne afgjort den 2. januar 2012 jeg håber du kan
hjælpe mig med.

Det drejer sig om domænet ergoconsulting.dk hvor klager samtidigt
overfor Patent- og Varemærksestyrelsen har gjort indsigelser over
indklagedes varemærke.

Burde Domæneklagenævnet ikke have afventet en afgørelse fra PVS og
anerkendt indklagedes varemærke indtil det var blevet ophævet? Efter min
opfattelse må PVS være at betragte som den kompetente myndighed til at
foretage denne afgørelse og ikke Domæneklagenævnet?

Hvis jeg får et svar kunne det måske bruges som oplæg til en diskussion.

Comments (1)

Splicing two sockets in Perl (request for help)

A couple of times I have written code which basically does this:

  1. accept() an incoming connection
  2. do some magic to get another socket
  3. start passing bit between the two sockets
  4. perform a correct close down sequence

An example use case of this is a proxy implementing the HTTP CONNECT method, but in for some known hostnames it will log a message and mangle the hostname before proceeding. This has been used as a legacy fall back solution while changing a network setup. But my uses are not restricted to HTTP proxies I have done the same for a few legacy protocols where the magic has been of different complexities.

The two final steps are quite general and it would be nice to have a module doing just that. Take two sockets and make it easy (or even automatic) to pass bytes between them.

The naïve non-blocking solution would use a scalar string buffer for each direction and perform a select loop while maintaining the write vector depending on which buffers contain data. I have written this code multiple times. In development this is usually quite successful, in production less so. While Perl might be quite suited for the magic in step 2, the naïve way of passing bytes have quite an overhead for the buffer management.

A less naïve way would use a array of strings for buffers, but I’m not quite sure if this would be a win in all cases. You might be able to get away with some string operations on the read side of the buffer, but it might be more expensive on the write side. I have not benchmarked this.

Most of the time I don’t care about Perl level IO handles. I know that there is a real C level file descriptor beneath. So an even better POSIX compliant solution might be to use XS to have plain C strings and use readv()/writev() and a iovec structure as buffer.

Can we do even better? At least on Linux we can. With the Linux splice() specific system call it is possible to us a pipe as buffer and never to have to copy data from and to user space.

I have not been able to find any off the shelf solution on CPAN. So I think I need to write it myself, but what would the nice and general API be? I guess the basic interface would be something like:

    my $chain = IO::Splice->new($fh1, $fh2);

    $chain->pump(); # read and write from both handles if possible and needed
    $chain->read($fh1);  # read to buffer from one specific handle
    $chain->write($fh2); # write from buffer to one specific handle
    $chain->can_write(); # returns the handles it needs to write to

but it might be simpler to have two callbacks for setting a file handle in write or no-write state:

    my $readset  = IO::Select->new( $fh1, $fh2);
    my $writeset = IO::Select->new();
    my $chain = IO::Splice->new( $fh1, $fh2,
        writable => sub {  $writeset->add( shift ) },
        unwritable => sub { $writeset->remove( shift ) }
    );

    while ( ... select ... ) {
        $chain->pump();
    }

As said, I think I have plenty of implementations of the naïve way but before releasing some code it would be nice to get some input on the API. But the best feedback would be a module that already have a usable API but might not implement the Linux specific way. That would allow me to steal the interface…

Comments (4)

Valganalyse

Mit politiske ståsted er nok ikke nogen dyb hemmelighed. Men læs gerne med i mine farvede overvejelser om dansk politik. I min verden består blå blok af Venstre og Konservative og rød blok af Socialdemokraterne og SF. Derudover har vi de ultraviolette (Dansk Folkeparti), de ultrarøde (Enhedslisten), de ultrablå (Liberal Alliance) og de lidt udefinerede i Radikale Venstre.

Blå bloks mest fremherskende anvendelse af eksperter er som forhalingsteknik. De nedsætter et ekspertudvalg og nægter herefter at diskutere problemet. I sager hvor blå blok er modige venter de til ekspertudvalget har udtalt en anbefaling, hvorefter der kommer en række lovforslag der på ingen måde har sammenhæng med ekspertudvalgets anbefalinger. I sager hvor politikerne er mindre modige bliver lovforslagne timet til at kunne vedtages kort tid før ekspertudvalgets anbefalinger, hvorved ingen rigtigt orker at hører efter eksperterne.

Blå blok udøver panikpolitik med dertil hørende lovsjusk. “Noget må gøres! Dette er noget! Derfor må vi gøre dette!”. Et godt eksempel er knivloven der med ét kriminaliserer en lang række dagligdags handlinger uden på nogen måde at have belæg for at fjerne problemet med våben i nattelivet.

Blå blok løber fra ansvaret, men vil stadigvæk styre beslutningerne. Hele regions- og komunalpolitikken giver udtryk for at blå blok på Christiansborg gerne vil udstede populære garantier og beslutninger. Men når planerne ikke kan gennemføres overlades ansvaret til regionerne og kommunerne. Upopulære beslutninger uddelegeres til regionerne, men kun sålænge de tager de rigtige beslutninger.

Blå blok snyder på vægten. Når skattestoppet opgøres på henholdsvis procenter eller kroner/øre er der tale om en reel omfordeling af skattebyrden til fordel for boligejerne (det er iøvrigt mig). Jeg tror ikke at vores skattesystem er perfekt balanceret og måske er det boligejerne der skal lettes. Men lad os for pokker kalde en spade for en spade fremfor at snyde på vægten.

Og så er jeg ikke engang begyndt på de knæfald gør til deres ekstreme samarbejdspartner… (men mere om dem om lidt).

Men jeg har ingen tillid til at rød blok er bedre. Bevares der er nogle detaljer til forskel, for eksempel tror jeg ikke de stiltiende vil snydeforære boligejerne en skattelettelse på helt samme måde. (Hvis de kan komme til det vil de fastholde lettelse men reklamere for det som en procentmæssig lettelse.)

Dansk Folkeparti fører hovedsagligt en frygtpolitik. Det fører ikke noget godt med sig. En stor del af frygten anser jeg for at være fabrikeret med et politisk (eller endnu værre magtbegærligt) motiv. Men vi må ikke lukke øjnene for at en del af frygten er reel og muligvis endda velbegrundet. Det skal vi gøre noget ved! Men ikke med panikpolitik eller ved at dyrke frygten til endnu større frygt.

Enhedslisten troede jeg at jeg havde voldsomme fordomme om, men så tog jeg mig sammen og læste deres principprogram. I det mindste erkender de at deres ideologi tidligere har ført til “uhyrlige forbrydelser mod menneskeheden”, men derudover understøtter principprogrammet det meste af hvad jeg tidligere anså som værende fordomme.

Det efterlader Radikale og Liberal Alliance. Jeg må nok indrømme at jeg er skabs-LA’er, i hvert fald er jeg meget enig med de fleste af LA’s konstruktive politiske målsætninger. Efter min mening går LA bare med kanon store skyklapper og ignorerer alt der falder uden for kasserne “vækst” og “ophævelse af forbud”. Det er ikke nok til mig. Velvære og et godt samfund er mere end vækst og ophævelse af forbud. Et eksempel er klimaområdet hvor jeg flere gange har oplevet LA-kandidater forsøge sig med Jedi mind-tricks. Lad mig springe over debatten om hvorvidt der kommer mere nedbør eller ej. Jo mere vi brolægger Danmark jo mere problematisk er det at komme af med den nedbør vi får i dag. Det er også et klimaspørgsmål.

Tillige mener jeg at alt for mange af LA’s kandidater personligt er nogle amatøragtige klaphatte. Jeg skal derfor afveje min stemme for en politik jeg i et vist omfang kan stå inde for med at samme stemme sandsynligvis hjælper en klaphat i folketinget. Og jeg vil gerne kunne se mig selv i spejlet fredag morgen.

Jeg er Radikal i min grundholdning, det er ikke nogen hemmelighed. Jeg er også enig i de fleste radikale mærkesager. Men også vigtigt: I de Radikale kandidater ser jeg den største gejst for deres egen politik og samtidigt ser jeg den største gejst for at høre og forstå andres meninger. Derfor vil jeg gerne have de radikale til at holde den kommende regering i ørene i den kommende valgperiode.

Jeg vil meget gerne stemme personligt og jeg vakler stadigvæk en lille smule. I Københavns storkreds og i Nordsjællands storkreds har jeg nogle klare favoritter. Hvis du stemmer radikalt og gerne vil stemme personligt i en af de to storkredse vil jeg gerne anbefale henholdsvis Karen Lumholt og Christian Friis Bach. Så må jeg se hvem jeg selv ender med her i udkantskøbenhavn.

Comments (2)

Om et moderniseringsministerium

Lars Løkke vil oprette et morderniseringsministerium!

Nu var jeg med sidst V og K oprettede et ministerium for at få minister- og løftekabalen til at gå op, så lad mig forklare hvad det betyder: Alle projekter på området vil blive bremset på ubestemt tid mens man opretter en helt ny organisation (mindst 3-6 måneder). Der bliver brugt uanede konsulentpenge på at udvikle en ny designlinje, kommunikationsstrategi og visionsudvikingsstrategi. Projekter der før kunne håndteres effektivt inden for et enkelt ministerium skal nu bremses af magtgnidninger mellem forskellige organisationer.

Og om to-tre år ser minister- og løftekabalen anderledes ud og på grund af ovenstående har moderniseringsministeriet ikke vist sig at kunne levere varen. Derefter bliver der selvfølgelig nedlagt, hvilket vil sige at man igen taber alle projekterne på jorden.

Med det er vel efterhånden en hævdvunden strategi fra Lars Løkke og co. Regionerne lader jo til at blive helt samme historie…

Comments

Min netbank er nede igen

Åben beklagelse til Nykredit Bank:

Det er vildledende at I angiver driftstatus på jeres netbank til at være OK når det er umuligt at logge ind på grund af driftproblemer hos jeres authentificeringsudbyder (DanID).

Det er højst utilfredsstillende at systemet har været nede i mindst en halv time før der kommer så meget som en bibemærkning om at en af jeres leverandører gør det umuligt at anvende jeres produkt.

Da jer er kunde hos jer er det jeres ansvar at jeres systemer virker. Det er ikke mit ansvar at undersøge drifsstatus hos hjeres leverandører.

Jeg vil anbefale jer at finde en anden leverandør af ydelser end PBS. De yder en elendig kundservice over for os slutkunder!

Comments

Danske spammere: PostDanmark

For omkring tre et halvt år siden beklagede jeg mig til PostDanmark over deres adresserede reklamer. Jeg fik aldrig svar…

Før nu! Sø- og Hendelseretten har afsagt dom (PDF) i en sag rejst af Forbrugerombudsmanden hvor det klart afgøres at reklamer i et adresseret omslag er adresseret (påstand 2).

Ifølge Forbrugerombudsmanden har PostDanmark anket sagen.

Comments (2)

Wrapping mod_perl in Plack

Plack is one of these wonderful adventures in the modern Perl world that makes it fun to write Web applications in Perl again. But I have a few applications written with Apache/mod_perl and they are not fun to work with. So what would you do?

One option would be to take the long road and port these apps to use Plack instead of messing around with Apache2::RequestRec. For this to work you might need to review the full code base before seeing any signs of progress.

Another option is to mock your Apache2::RequestRec object using Plack. This is the road explored by Plack::App::WrapApacheReq. With very little work this enables you to run your mod_perl application with any Plack handler you want. You can run your application as a stand alone server or serve it with nginx trough FastCGI.

But the fun doesn’t stop here. Debugging and profiling mod_perl have always been a PITA, but with Plack::App::WrapApacheReq it is easy. Just take the generic.psgi example and it enables you to run the Perl debugger easy or just to use NYTProf on your request handling code.

The initial ideas for writing Plack::App::WrapApacheRec came from my mocking code to test a legacy mod_perl application. Even this gets more fun by using Plack. I havn’t tested it yet, but with Plack::Test and Plack::Test::ExternalServer it should be trivial to run the same set of tests directly in a single process test suite or against your deployed server.

Plack::App::WrapApacheRec is still in it’s infancy. It only mocks as much of Apache2::RequestRec as I need to run a single legacy application and to run Plack::Handler::Apache2 (as an absurd example, but yes we are self hosting). But I think that with very little work we should be able to run most mod_perl applications. Take it out for a ride, if it complains about a missing method please report it with CPAN’s RequestTracker. Patches would be appreciated (or pull requests on github), but just a list of unimplemented method you need would be excellent.

Plack is fun, now working with mod_perl applications might become fun too.

Comments (5)

Dansk papirsspam: Danbolig Rødovre

Klip fra email netop afsendt til Danbolig Rødovre:

Jeg har i dag eller i går modtaget en reklame i min postkasse med overskriften “Solstrålehistorier fra Danbolig Rødovre” på trods af at min postkasse tydeligt af afmærket som omfattet af “Reklamer og gratisaviser – Nej Tak” ordningen.

Jeg anser dette som værende et brud på Forbrugerombudsmandens retningslinjer vedrørende “Adresseløse forsendelser” og vil derfor anmode om at I meddeler jeres distributør at mærkningsordningerne vedrørende reklamer fremover skal respekteres. Desuden vil jeg gerne have oplyst kontaktoplysninger på jeres distributørs klagesystem (jævnfør retninglinjernes afsnit 4.1) og I må meget gerne vidersende denne klage.

På forhånd tak,
Peter Makholm

Så skal jeg bare huske at tjekke om jeg får svar inden for de 7 dage som retningslinjerne beskriver.

Comments

Reading Twitter with generic RSS reader

For a long time I have mainly been reading Twitter with a generic RSS reader (newsbeuter). Recently this stopped working when twitter.com disabled ‘HTTP Basic Auth’ in preference of using OAuth. Now I can say a lot of good and bad things about OAuth, but to keep a short story short: It doesn’t work with generic RSS readers.

Instead of getting the RSS feed from a URL, my RSS reader can run a script that prints an RSS feed. So if I could just write a script that does the OAuth dance to convince twitter.com to give me an RSS feed?

Perl to the rescue! Or rather CPAN to the rescue: Net::Twitter::Lite have a nice simple example for setting up OAuth with a desktop application. It also provides access to most of Twitters REST API, but no method for retrieving generic URLs.

Using some Jedi mind tricks and reading the source I found a private and undocumented method _oauth_authenticated_request which does exactly what I need. It is quite simple:

  1. Get my script from gist.github.com/585710 and install the dependencies (Net::Twitter:Lite).
  2. Register you own app at dev.twitter.com to get a Consumer Key and Consumer Secret.
  3. Run the script once to setup access and get an Access Token and Access Token Secret.
  4. Run the script with an RSS feed url as parameter to get the RSS feeds.

Most interesting feed to follow is probably http://api.twitter.com/1/statuses/home_timeline.atom, which show the same as the home page on twitter.com would show you, and http://api.twitter.com/1/statuses/mentions.atom, which shows any tweet that mentions you.

Comments (1)

« Previous entries Next Page » Next Page »