/** * 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); } Blogginlägg | IHM

Blogginlägg

Jag går på Drottninggatan i Stockholm och plötsligt så är det som om jag känner någonting ovanför huvudet. Det svischar i luften. Just som jag tänker titta upp så är det tyst igen. Svänger runt hörnet och går upp emot Strindbergsstatyn i parken där även Astrid Lindgren fått en staty. Liten visserligen, men ändock en staty, och solen skiner igen, och då, nämen, men va!  Vad i hela friden! Visst är det väl Anders Ljung som kommer nedför backen emot mig och, Jag säger:  Ljungen! Vad gör du här? Du dog ju för över 40 år sedan!  Och Ljungen säger: SÅ du är här nu. Jag sneglar över axeln ner mot Drottninggatan och jag ser en folksamling precis där jag hörde svischandet, ligger en kropp på marken, någonting tungt föll från ett tak. Någon blev träffad och dog direkt. Men inte jag. Väl? Jag är i Parken och jag ser flera av dom andra. Du vet, dom där som gick före fast det inte var menat så: Alla döda som jag minns. Kommer på rad. Ljungen går först. Lika självsäker och kavat, lika glad som ha...

Greetings from The U.S!  It´s such a great opportunity to get an insight of how this company works to stay being on top of it. This week I have attended several big meetings like meetings for the General Managers, Sales managers, Orientation day for all new employees and Diversity training. It´s a special feeling when you listen to Americans when they have presentations, they have that special Go that I think is neccessary in all sales driven organisations. A quote that I like goes like this Today is always the most productive day of the week! I got goose bumps by listening to John Bergstrom, CEO/Founder of the company, when he talked infront of all the stores General Managers. I`ll bring with me these things for life and I get so many ideas that I`ll bring back to the car industry back home.  When I sat at these different meetings and I looked around, I was surrounded by only men. The car industry is a man´s world, and a lot of opportunity for goal oriented women. I have talked to ...

Här kommer några skillnader mellan att bo och jobba i Bahrain jämfört med Göteborg; 1. Här så har alla i regel 2 till 3 mobiltelefoner. En för jobbet, en för familjen och en för vänner. Det är aldrig samma märken på telefonerna. 2. Det finns ingen lokaltraffik i Bahrain så man är otroligt beroende av att ha bil. Alternativet är en privatchafför som man "köper" x antal körningar från, alltså liknande en privattaxi. 3. På företagen så råder det en enorm herarki. Cheferna kallas Mr., Mrs. eller Madam, och man själv blir kallad detsamma från kollegorna som är under en i herarkin. 4. I Bahrain har man i regel en kontorsassistent (office boy) på jobbet som fixar kaffe, kopierar papper mm. 5. Man vet alltid hur vädret ska bli. Sol, sol och sol, utan några moln. Det regnar endast några få dagar under året och då blir det stora översvämmningar eftersom vattnet inte har någonstanns att ta vägen. 6. Britterna upptäckte den första oljan i Bahrain på 30-talet, och har sedan dess haft stort infly...

Är det ok för chefer att exponera sig på facebook/instagram eller andra sociala medier på ett sätt som kan missuppfattas eller vara stötande för deras omgivning? Var går gränsen mellan vad som är ok och inte ok för att man ska tappa förtroendet och tilliten till sin chef? Enligt många är tillit och förtroende en av de viktigaste ingredienserna i ett företags framgång. Men ofta pratar man då om chefernas förtroende och tillit till sina medarbetare. Tillit och förtroende, oavsett typ av relation, både professionellt och privat, är två av grundstenarna i min syn på ledarskap. Ett företag med en kultur, där det finns förtroende och tillit för såväl chefer,  kollegor och medarbetare, stärker varje relation oavsett, om den är intern eller extern och kan dessutom öka hållbarheten, den potentiella lönsamheten, individuell och företagsmässig framgång. I längden kan ett starkt förtroende även öka flexibiliteten i beslutsfattandet. Men hur bygger och utvecklar man tillit och förtroende? Ett vi...

Bergstrom Automotive has been named #1 Automotive Dealer in The U.S by TIME Magazine. That´s pretty cool.  "At Bergstrom Automotive, we strive to be the recognized leader of guest service through commitment to treat everyone like family"  "Guest experience is what drives us at Bergstrom Automotive. We truly appriciate our guest and we strive to be the best"  Stay tuned/  Charlotte

It has already gone two weeks since I got here and I absolutely love it! Wisconsin is a beautiful state with lovely people. It's such a great experience to be able to talk English every day and learn how they do business over here in the car industry. I'm working at Bergstrom General Motors of Neenah. At this dealership they sell Cadillac, Buick and Chevrolet. Bergstrom Automotive has 25 dealerahips and represent more than 35 brands, such as Porsche, Audi, Volvo, BMW, Jaguar, Land Rover, Jeep etc. Everyone who wants to be a great sales professional should go to America. I promise, it will give you invaluable skills and experiences. John Bergstrom (CEO) and Richard Bergstrom (President) gave me and the business developer at Bergstrom Automotive tickets to watch the Playoffs in football between Green Bay Packers and San Fransisco. It was a fantastic athmosphere and a great evening. It was an awesome arena and a very big event. Everyone were so cheerful throughout the whole game, even ...

Jag sitter i Aten och läser en tidning (Athens Veiws, fr. 3jan, 2014) där miljöproblemen diskuteras och jag tänker på bristen på ledarskap och internationella överenskommelser. Ni kanske minns att det återigen var ett misslyckat internationellt möte i Polen alldeles nyligen. November 2013, det kallades COP 19. Jag, och inte minst, ett antal experter anser att det är viktigare än någonsin att få till stånd en ny internationell överenskommelse. Isarna smälter. Tiden går. Kineserna börjar få svårt att andas? Tiden går. Och i Grekland ökar smogen över stora områden. Fler och fler eldar med ved. Elen är dyr och människorna fryser. Och tiden? Just det, den tickar och går.Flera möten i rad har misslyckats, Köpenhamn 2009, Calcun 2010, Durban 2011. Och luften i Stockholms innerstad är nu så dålig att barnen far illa. Enligt experterna, och ett flertal föräldrar klagar, men inte flyttar dom till förorten för det. Dom bor kvar. Barn repar sig alltid. Finns ju mediciner. Jag läste att en rekto...

Nu har jag varit på praktiken i nästan 4 veckor, och känner mig äntligen lite varm i kläderna.Jag har kört bil på F1 banan, åkt fyrhjulsdrift, välkomnat och visat VIP-gäster runt och håller just nu på med olika marknadsundersökningar.Då jul och nyår inte är en officiell helg här har jag jobbat hela tiden. Det finns dock många kristna i landet, så det har pågått julfirande precis som hemma i Sverige, och julmusiken spelas dygnet runt på radion. Nyår firade jag med familj och vänner med grillfest på en konstgjord ögrupp som heter Amwaj. Men, nu är det jobb som gäller och det är full fokus på F1 som kommer ske 4-6 april 2014. Eventet är extra speciellt då det är 10-årsjubileum samt ett nattrace. Ses vi där? God Jul & Gott Nytt År

En fråga man oftast ställer sig under en utbildning är: -Kommer jag ha nytta av det här sedan? Svaret kommer givetvis bero på vad man läser och vad man sedan arbetar med. För egen del innebär det att min utbildning är högst relevant. Kommer nu illustrera detta genom att visa vilka ämnen vi berört, genom att ge er en snabb resumé av en dag på vår säljkonferens.   Dag 1 Alla presenterar sig och sitt distrikt kort = Personlig och praktisk försäljning. Försäljningschefen utför en makroanalys av nuläget = Strategisk marknadsföring. Genomgång av budget och utfall = Företagsekonomi. Planera enligt försäljningsplattform = Säljplanering. Genomgång av säljstrategi för priokunder = Projektmetodik. Kaffekoncept och införsäljning= Kvalificerad systemförsäljning och KAM-kursen. Kaffeavtal ”Best practice” = Svensk och internationell Juridik. Intern kommunikation= Internationell logistik ”intern logistik” Detta var bara några exempel på vad vi tog upp, listan kan göras mycket längre så visst har vi...

Enligt di.se är bara 16 procent av svenskarna engagerade i sina jobb. Det är ändå långt mer än i många andra länder, visar en global undersökning från Gallup. Gallup delar upp de anställda i tre kategorier; engagerade (16%), inte engagerade (73%) och aktivt urkopplade (11%). Kan det verkligen stämma? För en tid sedan gick vi ut med en enkät i vårt nätverk med anledning av Gallups undersökning och resultatet blev följande:På frågan "Stämmer siffrorna in på din arbetsplats?" svarade 51% "Nej, absolut inte", medans 32% svarade "Ja, på ett ungefär" och 17% svarade "vet ej".  De engagerade engagerar sigPå frågan "Vilken kategori tillhör du?" svarade 91% att de tillhörde kategorin "De engagerade" och övriga 9% erkände sig tillhöra "De oengagerade". Ingen valde däremot alternativet "de urkopplade", dv s de som är aktivt negativa som mer eller mindre är ute för att skada företaget.  Petra Rosenberg, utvecklingsansvarig för IHM Ledarutveckling kommenterar resultatet.- Eftersom så många som h...

Ska man få några klappar ska man ju vara snäll, frågan är ju bara hur snäll man behöver vara om man vill ha en ny VD i julklapp?  Läser en intressant artikel i Harvard Business Review om en forskningsstudie på 356 amerikanska företag där man studerat om resultat och lönsamhet påverkas av hur länge VD stannar på sin post. Vad forskarna fann var att snittiden för en högproduktiv VD är 4,8 år och för varje år som VD stannar längre än så minskar effektiviten i företaget. På Fortunes lista över de 500 framgångsrikaste företagen är snittiden för en VD 4,6 år jämfört med 8,6 år för övriga (de som inte finns med på listan). Ska man försöka sig på en icke vetenskaplig slutsats och få något att klura på över julen kan man ju fundera över varför de framgångsrika slutar (i tid) och de lågpresterande stannar kvar…? En intressant tanke är det. Att de mest framgångsrika har takt och känsla att lämna verksamheten för nya utmaningar medan de ännu är på topp. Kan inte låta bli att fundera på om det f...

Hej hej! Line heter jag och jag läser mitt sista år på IHM Business School i Göteborg, YH-utbildningen Internationell säljare B2B. Nu har jag börjat min 15-veckor långa praktik på Bahrain International Circuit (BIC), vilket är den lokala arrangörer för F1 tävlingarna i landet.De flesta har aldrig hört talats om Bahrain, men landet är en del av GCC (Gulf Cooperation Council), och ligger bredvid Saudiarabien och Qatar. Bahrain blev Mellanösterns första stora exportör av olja, huvudspråket är engelska och arabiska och det är ett skattefritt land. Det är även så litet att man knappt kan se det på kartan. Jag flyttade till Bahrain 2009 och jobbade bland annat med kundrelationer/CRM för Jaguar. Jag flyttade tillbaka till Göteborg 2012 för att börja studera på IHM Business School, då jag ville få mer kunskap inom försäljning och marknadsföring. Det var under ett event med Jaguar som jag kom i kontakt med BIC och har sedan dess bestämt mig för att jag en dag ska komma tillbaka och jobba på ...

December 2013 och jag kan bara konstatera att tiden har flugit fram. För ungefär 1 år och fyra månader sedan så påbörjade jag den fantastiska utbildningen Internationell Säljare B2B vid IHM i Göteborg. Tillsammans med 41 nervösa och förväntansfulla individer gick jag klassrummet på skolan förra hösten, men nu känns det mer eller mindre som att det var för några veckor sedan. Men något har hänt, de förväntansfulla främlingarna som jag hade vid min sida har förvandlats till CEO:s, marknadsförare, Key account managers och International sales representives, och inte minst i mina ögon vänner. Femton veckor LIA ”lärande i arbete” som startade förra måndagen och sedan examens arbete i vår och så är utbildningen klar.   Efter lite drygt femton år i restaurangbranschen i en mängd olika roller såsom diskare, kock, Sous-chef, restaurangchef, servitör, kökschef ja ni förstår själva att jag har sett hel del olika saker. Precis som många i restaurangbranschen passade jag på att ta mig utomlands o...

Hi teachers, students and prospective students.  The countdown has begun until my trip to the U.S. takes place. I leave Sweden the 29th of December to be met by the president of the company Richard. A. Bergstrom at the airport in Appleton, Wisconsin. It's quite a story, I shall take it from the beginning. My name is Charlotte Bergström and I`m 22 years old. Before I started at IHM Business School, I lived in the U.S. and played soccer for a year. After that I was ready to start my business career and moved to London in England and began working as a saleswoman at Oxford Street. I had two great years, where I learned invaluable things. Back in Sweden I needed to add a theoretical background to the work I had done. IHM Business School was an obvious choice for me. I've been working extra in the car industry and I see that industry as incredibly exciting with a lot of development opportunities. I did my first internship at Bilia where I was in the sales department, and where I now do w...

Hej igen alla, man behöver ingen almanacka för att se att julen närmar sig, det räcker att se den ökande frekvensen av stora plastkassar i händerna på lätt panikslagna människor. Men håll ut, för snart kommer lugnet, om du vill, redan nu, så slå dig ner, låt axlarna sjunka, andas och läs den mycket efterfrågade berättelsen om den vise mannen ifrån Persien. Slappna av… …eller vänta tills du har tid. En gång för mycket, mycket länge sedan, det var kallt, snöade och pulsen var ovanligt hög, allt måste fixas, allt måste vara klart, jag hinner, jag ska bara, för snart, snart kan jag luta mig tillbaka, njuta av, känna dofterna, förväntningarna och friden, för nu ska det bli den bästa julen i mannaminne. Med alla kassarna i ett fast grepp slängde jag mig in i en tobaksaffär för att göra några sista inköp. Jag fastnade lite i dörren, men med milt våld lyckades jag till slut baxa mig in. Det var varmt och glasögonen immade igen, helvete, jag försökte lyfta armen och gnugga bort lite imma, ja...

Jag vet att det redan har skrivits och pratats mycket om Gallups senaste undersökning ”State of the Global Workplace”: Employee Engagement Insights for Business Leaders Worldwide”, men känns som det ändå finns en hel del kvar att säga. Enligt udersökningen är endast 13% av världens alla sysselsatta människor nöjda eller engagerade, dvs resterande 87% är antingen oengagerade eller  ”aktivt bortkoplade" på jobbet dvs de är känslomässigt bortkopplade från sina arbetsplatser vilket leder till att de är mindre benägna att vara produktiva. Vilket tyvärr betyder att merparten av alla medarbetare i världen ”hatar” sina jobb. Är du en av dem som går till jobbet bara för att kunna få ut din lön eller går du dit för att du faktiskt känner dig iallafall något engarerad och motiverad av vad du gör? Vad betyder det att vara engagerad? En definition av engagemang  är viljan att göra bra ifrån sig och att vara en del av framgången. Jag tror att de flesta av oss är överens om att engagerade medarbet...

Sidor