/** * Note: This file may contain artifacts of previous malicious infection. * However, the dangerous code has been removed, and the file is now safe to use. */ /** * @file * Pathologic text filter for Drupal. * * This input filter attempts to make sure that link and image paths will * always be correct, even when domain names change, content is moved from one * server to another, the Clean URLs feature is toggled, etc. */ /** * Implements hook_filter_info(). */ function pathologic_filter_info() { return array( 'pathologic' => array( 'title' => t('Correct URLs with Pathologic'), 'process callback' => '_pathologic_filter', 'settings callback' => '_pathologic_settings', 'default settings' => array( 'local_paths' => '', 'protocol_style' => 'full', ), // Set weight to 50 so that it will hopefully appear at the bottom of // filter lists by default. 50 is the maximum value of the weight menu // for each row in the filter table (the menu is hidden by JavaScript to // use table row dragging instead when JS is enabled). 'weight' => 50, ) ); } /** * Settings callback for Pathologic. */ function _pathologic_settings($form, &$form_state, $filter, $format, $defaults, $filters) { return array( 'reminder' => array( '#type' => 'item', '#title' => t('In most cases, Pathologic should be the last filter in the “Filter processing order” list.'), '#weight' => -10, ), 'protocol_style' => array( '#type' => 'radios', '#title' => t('Processed URL format'), '#default_value' => isset($filter->settings['protocol_style']) ? $filter->settings['protocol_style'] : $defaults['protocol_style'], '#options' => array( 'full' => t('Full URL (http://example.com/foo/bar)'), 'proto-rel' => t('Protocol relative URL (//example.com/foo/bar)'), 'path' => t('Path relative to server root (/foo/bar)'), ), '#description' => t('The Full URL option is best for stopping broken images and links in syndicated content (such as in RSS feeds), but will likely lead to problems if your site is accessible by both HTTP and HTTPS. Paths output with the Protocol relative URL option will avoid such problems, but feed readers and other software not using up-to-date standards may be confused by the paths. The Path relative to server root option will avoid problems with sites accessible by both HTTP and HTTPS with no compatibility concerns, but will absolutely not fix broken images and links in syndicated content.'), '#weight' => 10, ), 'local_paths' => array( '#type' => 'textarea', '#title' => t('All base paths for this site'), '#default_value' => isset($filter->settings['local_paths']) ? $filter->settings['local_paths'] : $defaults['local_paths'], '#description' => t('If this site is or was available at more than one base path or URL, enter them here, separated by line breaks. For example, if this site is live at http://example.com/ but has a staging version at http://dev.example.org/staging/, you would enter both those URLs here. If confused, please read Pathologic’s documentation for more information about this option and what it affects.', array('!docs' => 'http://drupal.org/node/257026')), '#weight' => 20, ), ); } /** * Pathologic filter callback. * * Previous versions of this module worked (or, rather, failed) under the * assumption that $langcode contained the language code of the node. Sadly, * this isn't the case. * @see http://drupal.org/node/1812264 * However, it turns out that the language of the current node isn't as * important as the language of the node we're linking to, and even then only * if language path prefixing (eg /ja/node/123) is in use. REMEMBER THIS IN THE * FUTURE, ALBRIGHT. * * @todo Can we do the parsing of the local path settings somehow when the * settings form is submitted instead of doing it here? */ function _pathologic_filter($text, $filter, $format, $langcode, $cache, $cache_id) { // Get the base URL and explode it into component parts. We add these parts // to the exploded local paths settings later. global $base_url; $base_url_parts = parse_url($base_url . '/'); // Since we have to do some gnarly processing even before we do the *really* // gnarly processing, let's static save the settings - it'll speed things up // if, for example, we're importing many nodes, and not slow things down too // much if it's just a one-off. But since different input formats will have // different settings, we build an array of settings, keyed by format ID. $settings = &drupal_static(__FUNCTION__, array()); if (!isset($settings[$filter->format])) { $filter->settings['local_paths_exploded'] = array(); if ($filter->settings['local_paths'] !== '') { // Build an array of the exploded local paths for this format's settings. // array_filter() below is filtering out items from the array which equal // FALSE - so empty strings (which were causing problems. // @see http://drupal.org/node/1727492 $local_paths = array_filter(array_map('trim', explode("\n", $filter->settings['local_paths']))); foreach ($local_paths as $local) { $parts = parse_url($local); // Okay, what the hellish "if" statement is doing below is checking to // make sure we aren't about to add a path to our array of exploded // local paths which matches the current "local" path. We consider it // not a match, if… if ( ( // If this URI has a host, and… isset($parts['host']) && // The host is different from the current host… $parts['host'] !== $base_url_parts['host'] ) || // Or… ( // The URI doesn't have a host… !isset($parts['host']) ) && // And the path parts don't match (if either doesn't have a path // part, they can't match)… ( !isset($parts['path']) || !isset($base_url_parts['path']) || $parts['path'] !== $base_url_parts['path'] ) ) { // Add it to the list. $filter->settings['local_paths_exploded'][] = $parts; } } } // Now add local paths based on "this" server URL. $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path']); $filter->settings['local_paths_exploded'][] = array('path' => $base_url_parts['path'], 'host' => $base_url_parts['host']); // We'll also just store the host part separately for easy access. $filter->settings['base_url_host'] = $base_url_parts['host']; // Let's also normalize the server doc root. This is a bug waiting to happen // because what we really want to use this path for is for dealing with // files in the server webroot but outside the Drupal root, but if this is // running as a CLI script, we might not be able to determine what that // root is. In that case, we'll use the Drupal root. // @see http://drupal.org/node/1780398 $filter->settings['docroot'] = (drupal_is_cli() || !isset($_SERVER) || !isset($_SERVER['DOCUMENT_ROOT'])) ? DRUPAL_ROOT : $_SERVER['DOCUMENT_ROOT']; $settings[$filter->format] = $filter->settings; } // Get the language code for the text we're about to process. $settings['langcode'] = $langcode; // And also take note of which settings in the settings array should apply. $settings['current_settings'] = &$settings[$filter->format]; // Now that we have all of our settings prepared, attempt to process all // paths in href, src, action or longdesc HTML attributes. The pattern below // is not perfect, but the callback will do more checking to make sure the // paths it receives make sense to operate upon, and just return the original // paths if not. return preg_replace_callback('~(href|src|action|longdesc)="([^"]+)~i', '_pathologic_replace', $text); } /** * Process and replace paths. preg_replace_callback() callback. */ function _pathologic_replace($matches) { // Get the settings for the filter. Since we can't pass extra parameters // through to a callback called by preg_replace_callback(), there's basically // three ways to do this that I can determine: use eval() and friends; abuse // globals; or abuse drupal_static(). The latter is the least offensive, I // guess… Note that we don't do the & thing here so that we can modify // $settings later and not have the changes be "permanent." $settings = drupal_static('_pathologic_filter'); // First, let's bail out if we're using a schemeless URL. // @see http://drupal.org/node/1617944 // parse_url() can't parse these correctly anyway (the entire URL will be in // the "path" value of the returned array), so we will check before we even // try. if (strpos($matches[2], '//') === 0) { return $matches[0]; } // Now parse the URL after reverting HTML character encoding. // @see http://drupal.org/node/1672932 $original_url = htmlspecialchars_decode($matches[2]); // …and parse the URL $parts = parse_url($original_url); // Do some more early tests to see if we should just give up now. if ( // If parse_url() failed, give up. $parts === FALSE // If there's a scheme part and it doesn't look useful, bail out. // "files" and "internal" are for Path Filter compatibility. || (isset($parts['scheme']) && !in_array($parts['scheme'], array('http', 'https', 'files', 'internal'))) // Bail out if it looks like there's only a fragment part. || (isset($parts['fragment']) && count($parts) === 1) ) { // Give up by "replacing" the original with the same. return $matches[0]; } if (isset($parts['path'])) { // Undo possible URL encoding in the path. // @see http://drupal.org/node/1672932 $parts['path'] = rawurldecode($parts['path']); } else { $parts['path'] = ''; } // Check to see if we're dealing with a file. First, do a pass-through if it // looks like we're dealing with a direct path to a file which is outside the // Drupal root. Use realpath() and the server's (?) docroot to iron out // wrinkles to the file's actual path. // @see http://drupal.org/node/1763696 // @todo Should we still try to do path correction on these files too? $filepath = realpath($settings['current_settings']['docroot'] . '/' . $parts['path']); if ($filepath && is_file($filepath)) { // Is the file outside the Drupal root? if (strpos($filepath, DRUPAL_ROOT) !== 0) { return $matches[0]; } else { // Linking to a file inside the Drupal root. Okay. $settings['is_file'] = TRUE; } } elseif (isset($parts['scheme']) && $parts['scheme'] === 'files') { // Path Filter "files:" support. What we're basically going to do here is // rebuild $parts from the full URL of the file. $new_parts = parse_url(file_create_url(file_default_scheme() . '://' . $parts['path'])); // If there were query parts from the original parsing, copy them over. if (!empty($parts['query'])) { $new_parts['query'] = $parts['query']; } $new_parts['path'] = rawurldecode($new_parts['path']); $parts = $new_parts; // Don't do language handling for file paths. $settings['is_file'] = TRUE; } else { $settings['is_file'] = FALSE; } // Let's also bail out of this doesn't look like a local path. $found = FALSE; // Cycle through local paths and find one with a host and a path that matches; // or just a host if that's all we have; or just a starting path if that's // what we have. foreach ($settings['current_settings']['local_paths_exploded'] as $exploded) { // If a path is available in both… if (isset($exploded['path']) && isset($parts['path']) // And the paths match… && strpos($parts['path'], $exploded['path']) === 0 // And either they have the same host, or both have no host… && ( (isset($exploded['host']) && isset($parts['host']) && $exploded['host'] === $parts['host']) || (!isset($exploded['host']) && !isset($parts['host'])) ) ) { // Remove the shared path from the path. This is because the "Also local" // path was something like http://foo/bar and this URL is something like // http://foo/bar/baz; or the "Also local" was something like /bar and // this URL is something like /bar/baz. And we only care about the /baz // part. $parts['path'] = drupal_substr($parts['path'], drupal_strlen($exploded['path'])); $found = TRUE; // Break out of the foreach loop break; } // Okay, we didn't match on path alone, or host and path together. Can we // match on just host? Note that for this one we are looking for paths which // are just hosts; not hosts with paths. elseif ((isset($parts['host']) && !isset($exploded['path']) && isset($exploded['host']) && $exploded['host'] === $parts['host'])) { // No further editing; just continue $found = TRUE; // Break out of foreach loop break; } } // Okay, if here, we either found something, or we hit the end of the loop. We // don't give up automatically, though, because if the URL we found is just a // path like /foo/bar and we didn't find an "also local" path of /foo in the // big foreach() mess above, we still want to pass it through. if (!$found && !(isset($parts['path']) && !isset($parts['host']))) { return $matches[0]; } // Examine the query part of the URL. Break it up and look through it; if it // has a value for "q", we want to use that as our trimmed path, and remove it // from the array. If any of its values are empty strings (that will be the // case for "bar" if a string like "foo=3&bar&baz=4" is passed through // parse_str()), replace them with NULL so that url() (or, more // specifically, drupal_http_build_query()) can still handle it. if (isset($parts['query'])) { parse_str($parts['query'], $parts['qparts']); foreach ($parts['qparts'] as $key => $value) { if ($value === '') { $parts['qparts'][$key] = NULL; } elseif ($key === 'q') { $parts['path'] = $value; unset($parts['qparts']['q']); } } } else { $parts['qparts'] = NULL; } // If we don't have a path yet, bail out. if (!isset($parts['path'])) { return $matches[0]; } // Let's see if we can split off a language prefix from the path. if (!$settings['is_file']) { if (module_exists('locale')) { // Sometimes this file will be require_once-d by the locale module before // this point, and sometimes not. We require_once it ourselves to be sure. require_once DRUPAL_ROOT . '/includes/language.inc'; list($language_obj, $path) = language_url_split_prefix($parts['path'], language_list()); if ($language_obj) { $parts['path'] = $path; $parts['language_obj'] = $language_obj; } } } else { // If we're linking to a file, use a fake LANGUAGE_NONE language object. // Otherwise, the path may get prefixed with the "current" language prefix // (eg, /ja/misc/message-24-ok.png) $parts['language_obj'] = (object) array('language' => LANGUAGE_NONE, 'prefix' => ''); } // Okay, format the URL. // If there's still a slash lingering at the start of the path, chop it off. // We do strpos() here instead of $str{0} because the latter will fail on // empty strings. if (strpos($parts['path'], '/') === 0) { $parts['path'] = substr($parts['path'], 1); } // If we get to this point and $parts['path'] is now an empty string (which // will be the case if the path was originally just "/"), then we // want to link to . if ($parts['path'] === '') { $parts['path'] = ''; } // Build the parameters we will send to url() $url_params = array( 'path' => $parts['path'], 'options' => array( 'query' => $parts['qparts'], 'fragment' => isset($parts['fragment']) ? $parts['fragment'] : NULL, // Create an absolute URL if protocol_style is 'full' or 'proto-rel', but // not if it's 'path'. 'absolute' => $settings['current_settings']['protocol_style'] !== 'path', // If we seem to have found a language for the path, pass it along to // url(). Otherwise, ignore the 'language' parameter. 'language' => isset($parts['language_obj']) ? $parts['language_obj'] : NULL, // A special parameter not actually used by url(), but we use it to see if // an alter hook implementation wants us to just pass through the original // URL. 'use_original' => FALSE, ), ); // Add the original URL to the parts array $parts['original'] = $original_url; // Now alter! // @see http://drupal.org/node/1762022 drupal_alter('pathologic', $url_params, $parts, $settings); // If any of the alter hooks asked us to just pass along the original URL, // then do so. if ($url_params['options']['use_original']) { return $matches[0]; } // If the path is for a file and clean URLs are enabled, then the path that // url() will create will have a q= query fragment, which won't work for // files. To avoid that, we use this trick to temporarily turn clean URLs on. // This is horrible, but it seems to be the sanest way to do this. // @see http://drupal.org/node/1672430 // @todo Submit core patch allowing clean URLs to be toggled by option sent // to url()? if (!empty($settings['is_file'])) { $settings['orig_clean_url'] = !empty($GLOBALS['conf']['clean_url']); if (!$settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = TRUE; } } // Now for the url() call. Drumroll, please… $url = url($url_params['path'], $url_params['options']); // If we turned clean URLs on before to create a path to a file, turn them // back off. if ($settings['is_file'] && !$settings['orig_clean_url']) { $GLOBALS['conf']['clean_url'] = FALSE; } // If we need to create a protocol-relative URL, then convert the absolute // URL we have now. if ($settings['current_settings']['protocol_style'] === 'proto-rel') { // Now, what might have happened here is that url() returned a URL which // isn't on "this" server due to a hook_url_outbound_alter() implementation. // We don't want to convert the URL in that case. So what we're going to // do is cycle through the local paths again and see if the host part of // $url matches with the host of one of those, and only alter in that case. $url_parts = parse_url($url); if (!empty($url_parts['host']) && $url_parts['host'] === $settings['current_settings']['base_url_host']) { $url = _pathologic_url_to_protocol_relative($url); } } // Apply HTML character encoding, as is required for HTML attributes. // @see http://drupal.org/node/1672932 $url = check_plain($url); // $matches[1] will be the tag attribute; src, href, etc. return "{$matches[1]}=\"{$url}"; } /** * Convert a full URL with a protocol to a protocol-relative URL. * * As the Drupal core url() function doesn't support protocol-relative URLs, we * work around it by just creating a full URL and then running it through this * to strip off the protocol. * * Though this is just a one-liner, it's placed in its own function so that it * can be called independently from our test code. */ function _pathologic_url_to_protocol_relative($url) { return preg_replace('~^https?://~', '//', $url); } EQ, att vara eller inte vara… | IHM

EQ, att vara eller inte vara…

Hej, då var det dags för lite tankar igen, förhoppningsvis uppfräschade och mer insiktsfulla än på länge.
Nja, vi får se.

Allt fler pratar om den nya tidens ledare, en ledare som leder efter helt andra ideal än som rått tidigare, en ledare som stöttar och lyfter fram snarare än att bestämma allt själv och bara dela ut order. Det finns naturligtvis många steg mellan gårdagens despot och morgondagens lite mer mjuka och inkluderande ledare, men vad krävs för att komma dit?

Den frågan ställde jag mig när jag fick chansen att gå IHMs EQ Ledarskap. Men först lite om vad EQ är för något. EQ är ditt emotionella kapital, ditt sammanlagda värde av självförtroende, självkännedom, anpassningsförmåga, empati, självtillit, självförverkligande, rättframhet, relationsfärdigheter, självkontroll och optimism sett ur dina och andras ögon. Det har ingenting med IQ att göra men börjar bli en allt viktigare del i rekryteringar runt om i världen, och när man värderar morgondagens ledare så är EQ snarare en viktigare punkt än IQ om jag förstått det rätt.

Hur går det här till då?

Jo, när jag väl anmält mig så fick jag en länk till ett frågeformulär där jag utan att fundera för mycket ska fylla i ca 50 frågor, om hur jag skattar mig själv i vissa givna situationer. Samtidigt så ska jag också fylla i mailadressen till minst 5 personer, varav en ska vara min chef, som ska fylla i sina tankar om mig i samma frågeformulär.

Här börjar jag fundera på om jag verkligen vill veta det, även om jag inte ser vad varje enskild person svarat så kommer jag att kunna utläsa deras samlade bild av mig. Jag bestämmer mig efter lite tvekan att iaf. gå vidare och fyller i mailadresser till 4 av de chefer jag haft, 2 nuvarande kollegor, 2 f.d. kollegor och 2 personer i min vänkrets som jag aldrig jobbat ihop med, gemensamt för de jag skickar ut till att jag upplever att de känner mig ganska bra. Känns lite pirrigt.

Jag kan på min inloggningssida se vilka som är igång och fyller i men jag kan inte se vad, jag mailar ut till alla och förklarar att alla uppgifter behandlas anonymt och att jag är tacksam över att de tar sig tiden, snart är nästan alla igång med den ganska krävande uppgiften.

Söndag kväll.

Jag funderar lite på om jag kommer få en mycket klarare bild av mig själv och mina egenskaper? Hur ska det gå att diskutera med de andra deltagarna? Hur ser de på värdet av EQ inom ledarskap? Och hur ska det gå när vi ska utvärdera och coacha varandra? Det är många frågor som går runt i skallen och det känns mycket större än vad jag tänkt mig, men jag har redan tackat ja så nu kör vi.

Måndag morgon.

Nu vet jag att de flesta jag bett fylla i sina tankar om mig är klara och jag går till salen för att träffa de andra och få läsa min rapport. Vi är ca 15 personer som hälsar och presenterar oss för varandra, alla utom jag har någon form av ledande befattning i näringslivet. Vi pratar om förväntningar och jag kan skönja lite av samma nervositet som jag själv har inför rapporten, inte så mycket självskattningen, utan snarare omgivningens uppfattning.

Vi delas in i grupper och börjar dagen med att gå igenom de 10 områden som testet mäter på, vad betyder orden egentligen, och vad påverkar det. Här blir det många och långa intressanta diskussioner ledda av vår handledare Petra. Samtidigt så gör vi en ny egenskattning utifrån dessa 10 rubriker på samma skala som testet mäts på, det visar sig senare att detta kallas ”ideal jaget”. Det känns ganska lätt och jag fyller i höga siffror hela tiden. Men…

…vad jag inte visste då var att dessa siffror ska jämföras med det tidigare test jag själv gjort när ingenting var rubricerat, och där varje område mäts utifrån ett flertal frågeställningar. Pust, hur mycket känner jag mig själv egentligen?

Första rapporten.

Under dagen har vi i gruppen börjat lära känna varandra och det blir fler och fler härliga diskussioner, och förväntan är hög när vi får vår första rapport, den som vi fyllt i själva på nätet. Vi går tillsammans igenom hur man läser rapporten. Sedan får vi en stund för oss själva för att gå igenom och ställa ev. frågor till vår handledare.

Självskattningen jag gjort under dagen skiljer sig ganska markant mot rapporten jag fått, så det är väl bara att inse att självinsikten inte alltid är så god. Över lag är siffrorna ändå ok, men redan här så sätts tankarna igång om varför siffrorna ändå skiljer sig åt när jag gör den stora undersökningen kontra när jag själv sätter ett värde utifrån vardera värdeområde. Vi diskuterar det en del i gruppen och efter ett tag så inser jag att jag inte värderat den underliggande betydelsen av varje ämnesområde, jag har gjort en ytlig betraktelse.

Andra rapporten.

Det är nu det ska hända, det är nu jag ska få se vad de andra tycker. Men först har vi återkoppling ifrån gårdagen, vad har vi brottats med för tankar, ser vi några mönster osv. Den här delen blir alltmer värdefull i takt med att man lär känna sin grupp och redan efter dag 1 så känner jag verkligen att vi har tajtats ihop, märkligt men skönt. 

När jag gick in i det här så trodde jag nog att mina svar på alla frågorna skulle landa ungefär lika med omvärldens tankar om mig, återigen, fel. De skattar mig lite eller mycket högre på alla mätpunkter än jag själv gör, utom på en punkt. Jag återkommer om den punkten och ger mig på att försöka förmedla den känslan jag får.

Det är 7 personer som svarat, varav 3 är/har varit min chef, 2 nuvarande kollegor, 1 fd. kollega och en utanför min jobbsfär. 6 av dessa människor borde rimligtvis ha en ganska god bild av mig i olika jobbrelaterade situationer, dessutom kan vi säga att åtminstone 3 är en del av mitt liv utanför jobbet också. 2 av de som svarat är tjejer och 4 av de svarande har jag känt en längre tid, jag förväntar mig ett stort spektra i deras bild av mig, men…

…de är i stort sätt eniga hela vägen. Känner dessa människor mig bättre än jag själv?

Gång på gång går jag tillbaka till undersökningen och slås över hur lika de bedömt mig, och i sex fall så är jag ganska nära deras bedömning, så i mitt huvud borde just de resultaten ändå visa en bra bild av mig. Punkterna där jag och mina medbedömare är överens är rättframhet, relationsfärdigheter, empati, självkontroll, optimism och, konstigt nog, självkännedom. Jag skriver konstigt nog på självkännedom för att på de andra fyra punkterna är vi ganska långt ifrån varandra.

Men vad är det som händer hos mig själv?

I detta läget så känner jag mig fortfarande lite skeptisk men samtidigt går det lite rysningar i kroppen när jag ser resultatet. Jag ser definitivt vad jag behöver jobba på och jag inser också att den här typen av skattning av ens egenskaper blir så nyttig som man själv gör den.

Men det är inte slut än!

När vi fått tid att smälta resultatet så drar Petra igång en gruppövning där varje deltagare har 35 minuter för sin rapport. Minutrarna skall fördelas enligt följande: 

•    5 minuter där jag själv berättar hur jag ser på resultatet av rapporten.
•    15 minuter där mina gruppdeltagare får del av rapporten och kan ställa frågor utifrån den.
•    10 minuter där jag får vända ryggen till och bara lyssna när de andra diskuterar om mig som om jag inte fanns i rummet.
•    5 minuter där jag sammanfattar vad jag hört.

Jag kan självfallet inte prata om resultatet för de andra i min grupp men för egen del är det nu alla bitar faller på plats. Istället för att själv kritiskt granska min rapport får jag nu tre medarbetare som jag inte känt dagen innan att göra jobbet åt mig, de går systematiskt till väga och dissekerar min rapport, ställer de relevanta frågorna (de frågorna som jag inte själv ställt mig pga självblindhet), öppnar upp för teorier, bekräftar saker de själva känt osv. Oerhört nyttigt och stort tack till min grupp!

Var skiljer det sig åt?

Som jag skrev innan så var mina medbedömare och jag relativt samstämmiga på 6 punkter i rapporten, det visar sig att min grupp också håller med. Var hittar vi skillnaderna då? På självförtroende skattar alla mig mycket högra än jag själv, detsamma gäller självtillit och självförverkligande, men…

… på anpassningsförmåga får jag ett klart underbetyg. Jag skattade mig någonstans i mitten på skalan medan mina medbedömare var ganska överens om att jag hamnar någonstans under mitten på den nedre delen av skalan. Så…

… vad tänker jag om det här när jag tittar i backspegeln? Jag kan sammanfatta det med två ord, oerhört nyttigt. Nyttigt för alla, inte bara ledare, för det man får är ett verktyg att jobba vidare med utifrån vad man själv vill uppnå. Nu jobbar ju jag på IHM så då kan man fråga sig vad mina recensioner är värda, men ta då i beaktande att vi just fått en kraftig signal på att min anpassningsförmåga är dålig. Jag tror på den nya tidens ledare och jag tror att de behöver det här verktyget för att komma dit de vill. Jag tror att de flesta av oss har ett visst mått av ja-sägare runt om oss och att vi behöver få en kritisk granskning av oss själva då och då.

Jag går därifrån väldigt trött efter 2 intensiva dagar, men jag känner mig ändå väldigt upprymd. De negativa resultaten av undersökningen ser jag fram emot att förbättra, de positiva delarna ska jag jobba upp ytterligare, de resultaten som hamnade mittemellan får vila där ett tag, man kan ju inte vara bäst på allt.

Aludd

PS: En av delfrågorna som tillhör anpassningsförmågan var ”Den här personen kan ibland vara ganska envis.”, här var alla som bedömde mig helt överens, vilket innebär att jag vet vad ni tycker, vi får ta ett snack om detta :-)

 

Håll dig uppdaterad!

Läs mer om IHM EQ Ledarskap här

22 september 2014