Bulk plaatjes verkleinen

Zojuist wilde ik even veel foto’s verkleinen van een dagje uit, zodat deze op Hyves geplaatst konden worden.

Nu vind ik het niet zo enorm leuk om die tientallen foto’s stuk voor stuk te openen in Paint of een ander foto bewerkingsprogramma. Door even in Google een term in te vullen kwam ik bij de eerste hit al op een interessante pagina, namelijk deze: https://www.frontpagewebmaster.com/m-287285/tm.htm

Hier staat dat je met MS Office Picture Manager dit ook kunt doen, maar dan in bulk, precies wat ik zocht dus. Het enige dat je hoeft te doen is de foto’s in 1 map plaatsen, dan een van de foto’s openen in Picture Manager.

Zorg dat je Thumbnail View hebt en daarna alle foto’s selecteert met bijvoorbeeld [Ctrl]+[A]. Klik op de knop Edit Pictures en dan de optie Compress Pictures. Ik heb hier de optie Web pages gebruikt, maar iets anders kan natuurlijk ook.

Onder File –> Save All kun je de wijzigingen dan opslaan voor alle plaatjes. Best handig van het Office team om zoiets toe te voegen aan het pakket.

Read more →

Overerven van verborgen inhoudstypen in Sharepoint

Aangezien ik de laatste tijd veel met Sharepoint bezig ben, moet ik ook wel geregeld lastige of (op het eerste gezicht) onmogelijke dingen uitvoeren. Een van deze dingen is het maken van een nieuw inhoudstype (content type) dat overerft van de kalender lijst. Standaard kun je een mooie kalender lijst maken met al de benodigde velden, echter wilde ik hier een eigen inhoudstype bij maken. Ik begon op de normale manier, totdat ik er achter kwam dat je hier niet van kunt overerven. Het inhoudstype Event staat in de groep _Hidden waardoor je er niet bij kunt. Na even zoeken op internet kwam ik uit op Will’s Blog ( https://blogs.vertigo.com/personal/willa/Blog/archive/2007/04/25/calendar-content-types-in-sharepoint-2007.aspx ) die iets vergelijkbaars wilde doen als mij. Wat hij lijkt te doen is de groep _Hidden een andere naam geven, waardoor deze zichtbaar wordt en je dus van alle inhoudstypen in die lijst kunt gaan overerven. De acties die hij beschrijft zijn redelijk te volgen, maar echt ideaal is het niet, zeker niet om op een semi-productie omgeving te doen. Nu kwam ik toevallig op een andere oplossing. Via de interface van Sharepoint kun je helemaal ‘inzoomen’ op het inhoudstype Event en uiteindelijk kun je deze ook gaan bewerken. Als je deze nou gaat bewerken kun je hem ook in een andere groep gaan opslaan. Zelf heb ik nu een groep aangemaakt met de naam Sharepoint verborgen en daar dit inhoudstype in geplaatst. Nu kan ik vanuit die groep nieuwe inhoudstypen maken die afleiden van de Event. Hier kwam ik achter omdat ik eerder al een keer de kolom Titel had hernoemd naar iets anders op eenzelfde manier. Na deze ‘spannende’ actie kon ik verder met het afmaken van m’n kalender op de website die ik aan het maken was.

Read more →

Serverside code in Sharepoint pagina’s toevoegen

Onlangs vond ik het nodig of handig om C# code toe te kunnen voegen aan m’n eigen pagina’s die in Sharepoint Designer waren aangemaakt. Dit heeft natuurlijk ook behoorlijk veel potentieel, aangezien je met C# enorm veel en krachtige dingen kunt doen. Omdat Sharepoint toch in het .Net Framework draait, moet dit ook mogelijk zijn vond ik. Na nog geen 30 seconden kwam ik er achter dat dit niet triviaal was. Nadat je een code blok hebt toegevoegd (en uiteraard server-side code in uitvoert) krijg je een mooie melding in het scherm dat dit niet is toegestaan, iets in de trend als dit:

An error occurred during the processing of /Pages/test.aspx. Code blocks are not allowed in this file.

Ok, het plaatsen van code blokken is dus afgeschermd. Hier kan ik me wel iets bij voorstellen, aangezien het een enorm krachtige feature kan zijn die ook misbruikt kan worden.

Toch moet zoiets mogelijk zijn vond ik. Nu had ik in de tussentijd al een work-around bedacht om toch geen code blokken te hoeven gebruiken, maar toch bleef dit in m’n achterhoofd rond dwalen. In m’n pauze heb ik even gezocht hoe je toch code toe kunt voegen in je eigen aspx-pagina’s die je hebt gemaakt in Sharepoint Designer. M’n vermoeden was juist, server-side code is standaard uitgeschakeld in Sharepoint pagina’s.

Read more →

Vanuit een Infopath formulier redirecten naar een eigen pagina

Een van de onderdelen die ik onlangs heb moeten maken in een Sharepoint website zijn Infopath formulieren. Het mooie van deze formulieren is dat ze redelijk gebruikersvriendelijk zijn en je ze in Sharepoint ook volledig kunt ontleden. We hadden gekozen om deze formulieren in een eigen venster (applicatie) op te starten en dat het formulier na indienen werd gesloten. Nadat het formulier wordt gesloten belandt je in de lijst van formulieren. Dit wil je als eindgebruiker natuurlijk niet zien, aangezien dat er veel te technisch uit ziet.

Eigenlijk wil je dat je dan op een pagina komt met een melding dat het formulier is opgestuurd en het venster kan worden gesloten. We zagen hier echter geen mogelijkheid tot. Iedere keer dat ik het formulier opende en verstuurde was het een doorn in het oog dat die lijst werd getoond.

Plotseling zag ik iets in de hyperlink die het formulier aanriep. Hier werd namelijk de parameter Source in gestopt. De waarde van deze parameter was de locatie van de lijst met Infopath formulieren (wel helemaal ge-encode). Nu kon ik wel raden wat de parameter Source deed, maar toch voor de zekerheid heb ik deze even gewijzigd naar https://www.jan-v.nl (en niet ge-encode). Precies wat ik dacht er wordt naar deze source-url ge-redirect nadat je het formulier hebt verstuurd. Dat we eerst op de Infopath lijst uit kwamen was niet zo heel raar, aangezien we de link hadden gekopieerd van de Nieuw item-knop in de lijst. De originele url was:

Read more →

Inlogproblemen met Sharepoint wanneer achter een proxyserver

Afgelopen weken hebben we het op het werk weer behoorlijk druk gehad met het maken van verschillende Sharepoint websites. Een van deze websites was een publieke site (dus het Internet). Dit is natuurlijk goed te doen, aangezien Sharepoint behoorlijk veel vrijheid biedt en er al veel onderdelen standaard in zitten. Bij oplevering van deze specifieke website was iedereen blij met het resultaat, maar na 1 dag kwamen ze achter een klein probleem.

Tijdens het testen en ontwikkelen hadden we de site onder een bepaalde hostheader geplaatst, laten we deze even https://website.bedrijf.nl noemen. Hier kon men de pagina’s prima mee bekijken, bewerken, toevoegen en verwijderen. De website wordt echter aan het publiek getoond onder de hostheader https://www.website.nl.

Het probleem op dit laatste adres is echter dat ze vanaf de klant hun werk locatie niet in kunnen loggen op de website. Aangezien de beide hostheaders naar dezelfde website verwijzen (via het uitbreiden van een sitecollectie), zijn er dus op zich geen kritieke problemen, maar echt fijn is het niet. Het probleem zit hem in de proxy server of firewall bij de klant, deze blokkeert de verzoeken om in te kunnen loggen op de website (Windows inlogbox en NTLM).

Dit werd bevestigd na een behoorlijke tijd te zoeken naar dit probleem, maar echte oplossingen hiervoor kon ik niet vinden. Uiteindelijk las ik iets over Basisverificatie op websites. Dit houdt in dat er geen encryptie meer wordt plaatsgevonden op het wachtwoord en deze dus als plain-text wordt verstuurd. Dit is dus absoluut niet meer veilig en ook niet aan te raden op een productie omgeving, maar het houdt wel in dat de proxy server het inlogverzoek niet meer blokkeert.

Read more →

Filteren van workflowstatus in Sharepoint 2007

Vandaag was ik druk met het maken van een custom pagina binnen Sharepoint. De bedoeling van deze pagina was om bulk-accorderingen te kunnen doen op Workflow taken. In dit geval was het namelijk best mogelijk dat je ineens een stuk of 10 (of meer) taken toegewezen had gekregen. Als je in 1 oogopslag al weet dat ze allemaal moeten worden goedgekeurd (of afgekeurd), dan wil je dit niet stuk voor stuk moeten afhandelen. Nu had ik al een mooi stuk code geschreven om te achterhalen wat de taken in de lijst waren, maar hier moest ook nog een filter op komen, immers je wilt niet de reeds afgesloten (goedgekeurde, afgekeurde, beindigde) workflows bewerken. Enige probleem dat ik ondervond was dat je in de CAML-query niet kon filteren op de tekst Voltooid of ieder ander passende status tekst. Door wat slim te debuggen kwam ik er al snel achter dat de status met een ID wordt aangegeven. Op nagenoeg de eerste pagina die ik vond via Google stond een mooi lijstje met de status id’s en bijbehorende teksten.

Status Value
Not Started 0 
Failed on Start 1 
In Progress 2 
Error Occurred 3 
Canceled 4 
Completed 5 
Failed on Start (retrying) 6 
Error Occurred (retrying) 7 
Canceled 15 
This is defined but I don't think this value is used Approved 16 
Rejected 17

Bron: https://www.sharepointblogs.com/dwise/archive/2006/12/11/howto-filter-a-view-based-on-workflow-status.aspx

Read more →

Wijzigen van servernaam in MS SQL Server

Bij ons op het werk hebben we een standaard virtuele pc die we kunnen inzetten voor verschillende doeleinden/klanten. Dit werkt perfect en is ook zeker aan te raden voor ontwikkel werkzaamheden met Sharepoint opdrachten. Het nadeel van zo’n standaard image is dat de machine 1 naam heeft.

Als alle ontwikkelaars dus zo’n machine opstarten, dan zijn er verschillende machines met dezelfde computernaam in het netwerk. In hoeverre het netwerk daar blij mee is weet ik niet, maar zelf vind ik het in ieder geval niet zo mooi. Nu kun je heel eenvoudig de machine naam wijzigen via het Configuratiescherm, dat is dan ook geen probleem. Het probleem ligt echter in MS SQL Server.

Wanneer de computernaam wijzigt, kan dit vervelende consequenties hebben voor SQL Server. Nu wil het toeval dat op deze standaard machine ook SQL Server staat geinstalleerd. Er was mij verteld dat het niet mogelijk is om de computernaam van de SQL Server te wijzigen en dat wanneer SQL Server eenmaal is geinstalleerd op de machine, je verder niet meer van dit soort rigoreuze systeemwijzingen moest gaan doorvoeren.

Eigenwijs als ik ben, ben ik op zoek gegaan naar een oplossing voor dit probleem. Ik vond het namelijk absurd dat je een computernaam niet meer mag wijzigen nadat SQL Server is geinstalleerd.
Mijn zoeken werd al snel beloond veel waarschuwingen, doemdenkers en gelukkig ook 1 oplossing. Dit is namelijk wat je moet doen wanneer je de servernaam in SQL Server wilt wijzigen.

Read more →

Een paarden aankoop!

Het is weer eens zo ver, ik heb me laten verleiden om weer een aankoop te doen die niet in m’n normale bestedingspatroon past. Zojuist heb ik in Kuinre bij Piaffe Ruitersport ( https://www.piafferuitersport.nl/ ) de basis attributen gekocht om te kunnen beginnen met rijden. Gisteren was ik al even langs m’n ouders gereden om te kijken of m’n oude spullen nog pastten, maar blijkbaar ben ik in de afgelopen 10 jaar toch iets gegroeid, of het materiaal is gekrompen op zolder. Hoe dan ook, met zo’n leuke extra vakantiebonus die ik heb mogen ontvangen kon dit er wel van af. De Lemster week viel qua kosten namelijk ook al enorm mee. Op onderstaande foto’s is het geheel te zien. Zo heb ik nu een nieuwe cap, broek, 1 paar schoenen en 1 paar chaps aangeschaft.

Normaliter ben ik niet zo’n fan van chaps, maar deze vielen nog wel mee. Anders moesten er alweer leren laarzen worden gekocht en dan stijgt de prijs op het kassa bonnetje ook enorm. Die leren laarzen komen dus wel eens een andere keer, zodra ik het ‘sporten’ echt weer in de vingers begin te krijgen. Die broek ik trouwens ook wel gaaf, daar zit bij het binnenbeen en je achterste wat steviger leer, zodat je beter in het zadel blijft zitten.

Read more →

Lemsterweek 2008 is teneinde

Nou, de Lemster week van 2008 zit er jammergenoeg weer op. Het was naar mijns inziens een prachtige week met alleen maar gezellige mensen. Eigenlijk heb ik de hele week weinig mensen gezien, omdat ik zelf druk was met bier tappen voor al die mensen. We hadden het ontzettend druk in de bierkarren. Normaal is het alleen woensdag en zaterdag mega druk, maar nu was het alle dagen druk, afgezien van zaterdag. Gisteren hadden we natuurlijk weer regen, hagel en onweer. Wel jammer om zo de week af te sluiten. Toch hebben we in de hele week nog heel wat liter bier, fris en wijn verkocht dus we hoeven niet te klagen. Na het werken was het ook nog gezellig druk in de kroegen, dus hebben ‘wij’ (het bierkar personeel) ook nog het nodige geconsumeerd. Een prachtige week, maar zoals bij alle dingen komt overal een eind aan. We kunnen er tenminste weer een jaar tegenaan. Ik heb nu al zin in de Lemster week 2009. Nu eerst nog een week de achtertuin in orde maken, hopelijk is die dan ook af na m’n vakantie.

Read more →

Titel-veld van inhoudstype Item wijzigen

Vorige week was ik bezig om enkele content types (inhoudstypes) aan te maken in m’n MOSS 2007 omgeving. Van een van die content types moest het titel veld eigenlijk een andere naam krijgen, soms komt het namelijk voor dat je geen titel hebt bij een type, maar wel iets anders. Uiteraard kun je dan kiezen om Titel te verbergen, maar ik wilde hem nu hernoemen. Dat hernoemen kan uiteraard wel, maar ik zat alweer een niveau te hoog en was ik bezig met het content type Item te wijzigen.

Nu ging ik vrolijk door met het wijzigen hiervan. Je krijgt dan zo’n melding dat je de betreffende site-kolom in een ander venster kan worden bewerkt. Dit deed ik dus en door de aanwijzingen op het scherm te volgen had ik dus Titel gewijzigd. Dit bleek niet een echt slimme actie te zijn geweest, want nu had ik het basis type in Sharepoint gewijzigd. Dit heeft als gevolg dat er veel dingen niet meer goed werken en dat al je types geen Titel meer hebben.

Het terug aanpassen van deze site kolom blijkt ook alweer onmogelijk te zijn, vanwege de beveiliging binnen Sharepoint. Wanneer je je kolom weer terug wilt aanpassen naar Titel, dan krijg je een foutmelding dat deze al bestaat. Op zich wel logisch, maar niet echt wenselijk. Gelukkig ben ik niet voor een gat te vangen en heb ik een fix kunnen doen. De fix uitte zich in een console applicatie met enkele parameters waar je op kunt geven welke kolom gehernoemd moet worden. Zo werk je eigenlijk dus om de beveiliging van Sharepoint heen. De code die ik gebruikt heb is dit:

Read more →