Skip to content

Instantly share code, notes, and snippets.

@ArthurClemens
ArthurClemens / multipart-upload.erl
Created September 17, 2016 12:07
Erlang: upload data using multipart/form-data
%% Usage:
%% upload_request(<<"site.com/api/upload">>, <<"path/to/file.png">>, <<"upload">>, <<"image/png">>, [], <<"some-token">>)
%%
%% Usage with RequestData:
%% Payload = [{upload_type, <<"user_picture">>}],
%% PayloadContent = jsx:encode(Payload),
%% RequestData = [
%% {<<"payload">>, PayloadContent}
%% ]
%% upload_request(<<"site.com/api/upload">>, <<"path/to/file.png">>, <<"upload">>, <<"image/png">>, RequestData, <<"some-token">>)
@ArthurClemens
ArthurClemens / sphinx.hs
Created November 17, 2012 22:34
Yesod Sphinx search example
{-
Sphinx setup:
---
Download the latest version from http://sphinxsearch.com/downloads/release/
---
Backup the original conf file at /etc/sphinxsearch/sphinx.conf and create a new one with:
source searcher_src {
type = xmlpipe2
xmlpipe_command = curl http://localhost:3000/search/xmlpipe
https://flems.io/#0=N4IgzgxgTg9gNnEAuA2gBgDRoLoZAMwEs4BTMZFUAOwEMBbE5EAOgAsAXOxPCGK9kvyYAeOISoBrAASsoJfAF4AOiA7sADmCQB6bTSjtWAVygRSDKmGYBzQoaMAjZoRh6wYEuzDb18AJ6GgiTaJAAe9Oqk3vjmVhDuKlJycMrg7H5RrCSeKgB8SlTCkFCE6uxSYKapapo6egbGpuaCVrb2Ti5uHl4+-oFUwWDsNFQAJjRwfMG+cAFZAwC0cjQQ7L2z-SRLJCvsC0Mj45MDzABWYHnC2sWl7PmFN2UVVSo1Wrr69k0kFq12xh1XDR3J5vDM5kFrsMxhMpusIYt4mC+vMtkj9tCjlMzhcQLkro87gUCsJRoQAG5SQijVKwGDsS7aMnk3IgPAeUirFyWJgARiQaBAAF8MNR6IwkCxzmyQLx+IJ2Ew5UMpMApABZGgCEoTAAiZEI1ioAGV1OIBlAMBqtSQdXB9WBDVQAAqwaxydym822q0ASQA8savVQLVaAEo0QgeUYAISM7HYfCtxrEo1tUiFUgUUnBmwA3AVleU1ZrtYQ9QajcGLQBhIMZrM5lFBOvGgtUAql23l+2Vk1mkO21vMGijUbG9KkAAUKmYgQYo32A4tKitwAKUikvEmUAA+mJrBxd-ypCoAMT4fC8gDsABZb6uN1v4DA9wejwAmJCnkAX-AATgADjQNBHyoTdt1ffdDSPABmb9zwgABWXleQANg-MCIJfN8YPYXdbwQ39LyAkCwKFABKdtCz4FVjQAFQAUWdXddQAVTDABBeiAwAOUbD8QLQaiqDMYEwCkY1WBgAB3V0YHdMgJLCAQxgksMdlWZgaxgOhfAGfhVWJcDn0sdgoCMVZXyndRYE0CijJMzcwCMdRbRsuywCop9N0MKNmAOARG3XJzNxzW0IAVGhrBIb9QNCoV2zCqQ-KsIYSHURtUoCgR1GYBxxFGKdUu80Lstc8YBGdCKopirLWH8iqbWq0xapIfLCuKhqvKSj
@ArthurClemens
ArthurClemens / flems.js
Created July 29, 2019 14:09
Mithril keys: Flems URL: copy paste url into browser
https://flems.io/#0=N4IgzgpgNhDGAuEAmIBcJYFczwPYFsBaAC11wGsxCAnZTWCagOgCswQAaEAMwEsZ2qANqgAdgEN8ENCCbF4+KJwy5RiNTIA8SXgDcABLyQBeADohxAB0vmAfJoD0O3beWQYCXqsEgADKgBGACYQAF8OMUlpdCwcAhIySho6BmY2ZVhVdXgZXnxLXGp4fWB9WHEcDn1sCABleHFEKpqAUW5uOHhmyAAlCG5uiD6kekYq4irxKoBzCHg+7n1Q-W5qAn1zJgdYAE9xUVxCfF54Ymp+cwBuU1EbzNEcasgAYVxMNUZ9Y30ACgBKL62Eo3fT6BwOfQAQTK2Dw+H0pAo+lOjSeEDA+n2uFOn1icIRiSYILK3mKsFojQgADkIAB3V7vRDUL6-AHGIE-YDE0FGVD6UR0-QAEUp-yYs3gABU8hB-hxuYZRCdeOIoAy1HyALKNYhMNbvJA-bWnPX7JAEf76ABU+gCvj+xNCf2uolB90efGoOHVTJZ5IglJp9LeH2o-xdbtJ+iEmUZjDAkyQSB9Y30tHwuF0EBT1AAuiyapDqNRxDsfkJPd6Q0zc87ibR4JhqK6hArY6GEwrLezMUmcz9-YG6f2-n95a7QWmIBms4CpzPs9XGD905mIA6J7mXaEXXco4Xi6WWT9eEr4CqoAA1VWYCAsoS1udcifu4pCcTFqqQeBFvMFyD1KKp7Kqq15QLeG6gg2TYtgqH7UOOk69kgc7fr+PzwUw9zlPAGFJqOiGTqus49mhxYYcWTB8FATInog8I9ic076AAhMY3zEeukH6FuNw7jce4PGSS7UMMozMt8Pw4JSkyeKobJAs+oJgLSJywMQvziHJohMPAOyWOuwITm6FR3uYp7+lIajmKgCpQXMMElCSjJ8tJiBYdW+gANS2ksEaTuUkAbCASBwOmEDWWgdlTo2zZOe28CuQ07kJfohC+fxxn6KF3DiJgNG2VloKnGstL8oKLTFoUPzmAAqqIxBmjAKFaeeqi2ZwmLa
@ArthurClemens
ArthurClemens / Spinaziesalade.md
Last active July 9, 2019 20:46
# Spinaziesalade met hibiscusdressing (of met cranberries)

Spinaziesalade met hibiscusdressing (of met cranberries)

Dit recept komt uit een Mexicaans kookboek, maar ik betwijfel of het authentiek Mexicaans is. Maar de smaak maakt alles goed. De combinatie van zure hibiscus (of cranberries) geeft een fijn contrast met de spinazie.

Gedroogde hibiscusbloemen kun je kopen als thee, bijvoorbeeld bij bol.com. Zelf had ik maar 20 gram en heb de rest aangevuld met cranberries. Ik denk dat elke combinatie (of 1 van beide) mogelijk is.

Ingrediënten

  • verse spinazie en eventueel rucola, samen ongeveer 400g
https://flems.io/#0=N4IgtglgJlA2CmIBcBWATAOgOwEYA0IAzgMYBOA9rLMgNoAMedAugQGYQKG2gB2AhmERIQGABYAXMNQLFyPcfHnIQAHlgQeAawAEpeLAC8AHSLiAnp1Hx44k9tF7WxkBPEAHQkgD0XgK6F4DFY5cT4Ad3hCckEMWTAvPQQ+AMIvADcUbAw0L2JCVL4qWPy7DQUAc1IIc2dCUT4AZgAOABYAWlYeMAB5AGEARwAjABVYAHUASVgAKyaAGTNh6fIsHoBVAGVxacIAaV6Wt263AEVB-rMILAAlUlEAOSxfKAgATmuw0V3NAFkACTcaTmgz+AHFXhtSHYyOR8uQquUNM4+Dw5GYwOR-CYAHxGHh4lQvNLaaDOCjkWwgbEqLxE3E8EAEAIIYjiCByLjCHBIOggAC+eF4AiELnI5E0vjcGB2jJAsnkinEygAhKxfDxWeyeAAKHh4cQASmAJnIg2m8FZJgMBnMbng5FY2ngAA83PDxIQAGSekzqqDwdg8eBQEzKm1mO0O7QYqC+BAAfnE2pdbtIHrwen6vggem1Jkg4gcHBMBoNSBMao1bLkVvDkcd-sD8G9jY0gQEUHjraD2poJhT7sIJjw+eqRdgJhYhqQSd1Bh4AB8F8zWAaMAXx38xRK3PP12OqrAt+LJUvgAKeOuDXztYWIIQ8JXNXJdfqjb6AtpCOIqpaQABuJ9qx4XRX3EDMjT0cRfFIEDxBJECeHjbozQtcQMG7eAAAUKDtNMzDAwU0kKXx4CQUg8EUXxBFIPhBgQJBlQYeV2HKGC6IYpi8DCKpQnosimL5MseBocQmAMCieD5ICtSdXUjWCUhtWI0htHEAwcH-cQVD4Ug2MEeRCAwBAeHKQstIAagso0VKdec41gMNdP0xVCFEph42c6jXPcpBzzwcgDBQ81WQwTR4DMQhkwNf8K3VZ98RAa1bXtR1grQjByhsbowh4HDyDw8wNnRQZKC9T1tUC8hYjkYg+CTdLQqy8Qcry3D4Hw4q
https://flems.io/#0=N4IgtglgJlA2CmIBcBWAjAOhQFgDQgDMIEBnZAbVADsBDMRJEDACwBcxYR8BjAeytbwByEAB4oEAG4ACaAF4AOiABOvXqyUA+UQHoJkzQqpHRJbsogAHVtJLLuikG1aWSSHTuU0A7gHMIrBh8YDoAgsqszACuygDCCPRUJDqWvLAAnpFC8DpgNCSCyik03ADWNL7wyakZWVTwALSQkRawehAFKWmZzNlNAcytDQU0VFA0sPzwGABWJFq6ZhbWhlSm5lY2dg5Kzq7unj7+gcFhEdFxCULV3XU5eQXwRZYl5ZU3tb31DdwkyRKdGo9Pq-EjDVijcaTeqzeYgbQ6JabTRcEAkeAIbisCD8MiMAAMSAAnA1CWgAMwgAC+uGodAY4F4UAx1VgJXgoUqAhIsNRfAEQlYIiM-IK0ngYEsk3S8CqABEaBDpHJpOQjNJpMB1RrpLR6EhpAByABSvGYVGkABl0ghDbhtRrLFEAEawCDcADS8HSBsNACYABzkonYANE8l+2gkAilP3Bu0O2z2X17NwebhQKj4jDu-hEMZPIK8ELjCE6XNJcui5i8MoAfV8UXSyXQfp0kOU8G8GEsVF8hu1NO1WotOr18F9lo6NGksWYNGUlQTo8dLrdnu9voAbOSAwG0GGI1GY3GicudUnuCnWC4Dm6qBhnb4dPe6xAwM+aJJFQudGhML2-aDvao4jhe46+gAsgupTSKEsAIFQ546k6rrul6PpGhG5LYKG4Z+gAKgAqnKJ7xiBF7bNeLhpjoGYPpYEAAB40M6NDpEWISWDWrC8Dofr4hSOj4gA7H+5J-viwliXkVANGgKBbigAbYHWRJbvidYiQJPZ9gOo5DqBiYQUaABK8B8L40hyrwNrwMhq5oRumGGviRJxnhR4SC82kBg5l7UZYBzcG6LwRCQaCCZxOhEKQOjkluYk7gAQqESnYKEACisTJSJABicp+luoQRnK+JhgpsTueS+I1e234QsodZUO6pS6UBBkUZqxn
https://flems.io/#0=N4IgZglgNgpgziAXAbVAOwIYFsZJAOgAsAXLKEAGhAGMB7NYmBvAHgBMIA3AAgjYF4AOiABOtWsWEA+FgHoOnKYLTKWcaiIgAHYtzgjqQkCWJa4iWbJEYA7gHMIxfHSyyAgiOKEAriIDCsDhocLJatFAAnl5MMLJYGHCMIqEY1ADWGHbwoeFRhDEAtFiOhJpQ8hCJOZHRaDBFJWUFiRhobBhQ9DD4AFZw0nLqmjpKaGoa2rr6hsImZhZWtg5OLu6ePv6BTCFhNfl1cQlJKemZ2bt5hdRwIRxVF7X113DNxK3tnXW9-SAyskOTKSUEBwGCwajECD0BCIEAAZkQAEYAEwAThAAF8KOhsLhYd9gXQGExiHgiYluMBuAAVcRQABGGBEFBpdMZImpjlgLIAkkSAELeYjEegUZTcbgAEWsNhgzO4ABlKsQWUrEpzudw+aLuH4mWwWYLhfQAOJibxaQ1CkVobgY7j8bgPfYwADcynJuiptPC7L8AGV-Sy9SI2AGg4rlRqYOG7Q6nblHuH3So0CGw4H8Bg2Gx-cQIrAABTCfDRHBsArUfXCFnAcUSuidEQAfSgEDsJGb8QgaGbjPSdnNbUQ3GEAGJ+QAOVEAUQArJOa-XuI3aC22x3iM3IcRYNuYAAPYgj8dgM9L20N8Jr1vtztwbz0nd7xhHk+iOyMwvIudzig-v8AIofAAHYAEphGUDEwJTZQ1WIaNwyzHM8wLGBiwIMsYArNtEgKSFYBrSll1Xdc7y3Z8YHfMczzAC8JRXa8yM3PtUjSQdaG8YdRxAGiwERECABZBPoq8m2bdoRDSbcuSoni+LoygSKYiSmWk-t2KHNhqOoOdEURAA2ZFRO4MB6C3OAIAALxgGTdzk5FESgmDlA9aFdE6KtIXof0ADUTXjYQ1E4OxuE4OVLPoIRBGERF8CcmKQF4AQYuEPUtAwZsEuEbgDzIYJotmYUtAWGwyvwGw4XwNc7FkZEAAZGv+ELUqSvKoGCRADzbN
// app/redux/action-creators.es6.js
import {SET_ROUTE} from 'app/redux/action-types';
export const setRoute = (route) => {
return {
type: SET_ROUTE,
route
};
};