<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6252388224694235978</id><updated>2012-01-18T18:01:13.382+01:00</updated><category term='future'/><category term='system'/><category term='new feature'/><category term='statistics'/><category term='monitoring'/><category term='platform'/><category term='new release'/><category term='entreprenör'/><category term='kodning'/><category term='networking'/><category term='hardware'/><category term='nätverkande'/><title type='text'>Sprend</title><subtitle type='html'>Everything about the development of the file transfer service Sprend.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Arne Evertsson</name><uri>http://www.blogger.com/profile/17025627238866719853</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-193280641496945296</id><published>2011-03-22T14:13:00.002+01:00</published><updated>2011-03-22T14:30:43.119+01:00</updated><title type='text'>FAQ</title><content type='html'>Detta inlägg &lt;a href="http://sprend.blogspot.com/2011/03/faq.html"&gt;finns också på svenska&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Sprend has a feedback forum but a regular FAQ is missing. Let me try and answer the most frequently asked questions right in this blog post.&lt;br /&gt;&lt;br /&gt;I you can't find the answer to your question, please add a comment below. Or just phone me: Arne Evertsson, +46707145299.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;1. Why does a transfer get interrupted?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Sprend uses  &lt;a href="http://en.wikipedia.org/wiki/File_select"&gt;built-in browser file transfer&lt;/a&gt;. It handles file uploads by "pretending" to request a web page while at the same time adding the file to the request. An &lt;i&gt;http-request&lt;/i&gt; was never meant to be several megabytes heavy, and it lacks resumability.&lt;br /&gt;&lt;br /&gt;It is the nature of Internet that interruptions are common. The reason for an interruption may lay in our server software, our local network, our internet connection, anywhere on the way to your ISP, in your wifi network, or even within your computer. The more time a transfer takes the higher the risk for interruptions.&lt;br /&gt;&lt;br /&gt;There are more than one possible &lt;a href="http://blog.timakinbo.com/2010/10/08/investigations-on-resumable-file-uploads/"&gt;solution&lt;/a&gt; to this. Hopefully we will also implement one of them in the future.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;2. How can I send multiple files?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;With Sprend it is only possible to send one file at a time. When you need to send e.g. a folder with images, try this: &lt;br /&gt;&lt;br /&gt;a. Find the folder on your computer.&lt;br /&gt;b. Right-click onthe folder, select &lt;b&gt;Send To / Compressed Folder&lt;/b&gt; or the equivalent for your operating system.&lt;br /&gt;c. A zip fil is created.&lt;br /&gt;d. Now just sprend the zip file!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;3. How to add more recipients?&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You can't, sorry. We'll add it, some day. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;4. Why does the email never reach the recipient?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Even when you enter a correct email address, it might never reach the recipient. Reasons?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The recipients inbox is full.&lt;/li&gt;&lt;li&gt;The receiving mailserver filters the message and spam.&lt;/li&gt;&lt;li&gt;+ yet more different reasons.&lt;/li&gt;&lt;/ul&gt;How to solve? Try one of these: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Use pincode. Tell the recipient the pincode via phone, text, email or your preferred way of communication. The file may then be downloaded by &lt;a href="http://sprend.com/enterpincode.jsp"&gt;entering the pincode&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;When an uploads the completes, a link to the download page it displayed. Copy this link and email with your normal email client. &lt;/li&gt;&lt;li&gt;If the file has already been uploaded and it's difficult or impossible to upload it again: Email support@sprend.com or phone me,  Arne  Evertsson, +467071452 99.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;5. The upload seems to be going on forever&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;If the upload never ends, and there is no upload indication showing the progress, it means you need to close the browser window and try again. If that doesn't work shut down the browser completely and try again. Anyway, it's a known bug.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;6. Hey, I got the wrong file! What's going on?! &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;There is a bug that we have not been able to localize and fix. Ever so seldomly the download link may take you to somebody else's file. This is a serious problem which we will deal with as soon as possible. &lt;br /&gt;&lt;br /&gt;To be reasonably sure that your files are safe, please encrypt them before you sprend them. I know the WinZip has built-in encryption, but there is of course a lot of different encryption software on the market.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;7. The file is gone even though seven days have not passed!?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This may be a glitch in our software. But more commonly, somebody already downloaded the file - perhaps the sender. As soon as a file has been downloaded it gets erased.&lt;br /&gt;&lt;br /&gt;Sometimes our server counts a file as successfully downloaded even though it hasn't been. The reason may be firewalls that require user confirmation before allowing downloading. Basically this is a known problem that we wish to fix.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;8. Does Sprend examine the contents of files? &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;We very seldomly examine the contents of files. When it happens, it's for a good reason and almost always with the sender's or recipient's explicit consent. So far I've done this less than once a year. It is however more common for us to read the filenames as part of normal service monitoring.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;9. I'd like to be able to ... &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You got a suggestions? Add it to &lt;a href="http://sprend.uservoice.com/"&gt;sprend.uservoice.com&lt;/a&gt;. We may not add your feature any time soon, but at least we won't forget about it.&lt;br /&gt;&lt;br /&gt;Sprend development moves slow because the service is free and we have other jobs.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;10. Does Sprend work with my iPhone/Android/iPad ... ? &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Safari for iOS doesn't support uploads. Downloads may work but I haven't really tested this. As Android phone are concerned I don't have a clue. I guess I need to write an app to make mobile sprending work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-193280641496945296?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/193280641496945296/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=193280641496945296' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/193280641496945296'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/193280641496945296'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2011/03/faq_22.html' title='FAQ'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-7131981508055421952</id><published>2011-03-22T13:19:00.006+01:00</published><updated>2011-03-22T14:29:11.001+01:00</updated><title type='text'>FAQ (Swedish)</title><content type='html'>This post is also &lt;a href="http://sprend.blogspot.com/2011/03/faq_22.html"&gt;available in English&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Sprend har ett &lt;a href="http://sprend.com/feedback.jsp"&gt;snabbforum för synpunkter&lt;/a&gt;, men det saknas en FAQ. Låt mig försöka besvara dom vanligaste frågorna från forumet i detta blogginlägg.&lt;br /&gt;&lt;br /&gt;Saknar du ett svar, kommentera inlägget eller ring mig: Arne Evertsson, 0707 14 52 99 &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;1. Varför avbryts en överföring?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Sprend använder sig av &lt;a href="http://en.wikipedia.org/wiki/File_select"&gt;webbläsarens inbyggda filöverföring&lt;/a&gt;. Den funkar som så att webbläsaren "låtsas" efterfråga en webbsida men smugglar samtidigt med en fil i själva förfrågan (= &lt;i&gt;http-request&lt;/i&gt;). En http-request är inte tänkt att vara flera megabytes stor, och saknar stöd för att återuppta en överföring som avbryts.&lt;br /&gt;&lt;br /&gt;Internets natur är sådan att avbrott är vanliga. Problemet kan ligga i Sprends server, det lokala nätverket, internetuppkopplingen, någon stans på vägen till din bredbandsleverantör, ditt trådlösa nätverk, eller till och med i din dator. Ju längre tid överföringen pågår desto högre risk är det för avbrott.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Det finns mer eller mindre goda &lt;a href="http://blog.timakinbo.com/2010/10/08/investigations-on-resumable-file-uploads/"&gt;lösningar&lt;/a&gt; som vi förhoppningsvis kommer att implementera i Sprend i framtiden.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;2. Hur skickar man en hel mapp med filer?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Med Sprend kan du bara skicka en fil i taget. Vill du skicka flera filer, tex en hel mapp med bilder, gör så här:&lt;br /&gt;&lt;br /&gt;a. Leta upp mappen på din hårddisk.&lt;br /&gt;b. Högerklicka på mappen, välj &lt;b&gt;Send To / Compressed Folder&lt;/b&gt; eller motsvarande för ditt operativsystem.&lt;br /&gt;c. Nu skapas en zippfil.&lt;br /&gt;d. Sprenda zippfilen på vanligt vis.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;3. Hur skickar jag till flera personer?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Tyvärr går inte det - en av våra värsta brister. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;4. Varför kommer inte mailet fram?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Det händer att man matar in en helt riktig mailadress, sprendar en fil, men mailet når aldrig mottagaren. Det kan finnas flera anledningar.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Mottagarens mailbox är full.&lt;/li&gt;&lt;li&gt;Mottagarens mailserver anser att Sprend-mailet är spam och käkar upp det.&lt;/li&gt;&lt;li&gt;+ ytterligare olika anledningar.&lt;/li&gt;&lt;/ul&gt;Hur lösa? Prova ett av följande alternativ:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Använd pinkod. Meddela mottagaren pinkoden via telefon, mess, mail eller hur du vill. Mottagaren kan därefter &lt;a href="http://sprend.com/enterpincode.jsp"&gt;ladda ner filen&lt;/a&gt; endast med hjälp av koden.&lt;/li&gt;&lt;li&gt;På bekräftelsesidan för en lyckad uppladdning finns en länk till nedladdningssidan. Kopiera länken och maila den med ditt vanliga mailprogram.&lt;/li&gt;&lt;li&gt;Filen är redan uppladdad och det är svårt eller omöjligt att ladda upp den igen. Maila till support@sprend.com eller ring mig: Arne Evertsson, 0707 14 52 99.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;5. Det står att uppladdning pågår och pågår och pågår...&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Detta är en bugg i Sprend. Stäng webbläsarfönstret och prova från början. I värsta fall stäng ner webbläsaren också (alla öppna webbläsarfönster). Sen hoppas jag det funkar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;6. Jag fick fel fil! Vad är det som händer?!&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Det finns en bugg i Sprend som vi inte lyckats lokalisera och fixa. Med ojämna mellanrum kan nedladdningslänken leda till någon annans fil. Detta är ett allvarligt problem som ligger högst upp&amp;nbsp; på att-göra-listan.&lt;br /&gt;&lt;br /&gt;Om du vill känna dig förhållandevis säker på att dina filer inte kommer i orätta händer bör du först kryptera filen. Jag vet att WinZip innehåller en krypteringsfunktion, men det finns såklart många krypteringsprogram att välja bland.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;7. Filen skulle ha lagrats t.o.m. 20YY-MM-DD men den är redan borta!?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Detta kan vara en bugg i vår programvara. Men det vanligaste är att någon provat att ladda ner filen - kanske till och med avsändaren. Filen raderas så fort den laddats ner en gång.&lt;br /&gt;&lt;br /&gt;Ibland kan det hända att vår server anser filen komplett nedladdad, fast den inte är det. Det kan hända med brandväggar som kräver att bekräftelse på nedladdning. I dessa fall är ändå nedladdningen förbrukad. Detta är ett problem som vi bör lösa.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;8. Tittar ni på Sprend på vad som skickas? &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Vi undersöker nästan aldrig innehållet i filer som användare skickar. Det händer i så fall av speciella skäl och nästan alltid med avsändarens eller mottagarens uttryckliga tillåtelse. Detta händer kanske en gång om året. Filnamn ser vi däremot oftare som en del av övervakningen av tjänsten.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;9. Jag saknar möjligheten att ...&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Om du har ett förslag, lägg upp den på &lt;a href="http://sprend.uservoice.com/"&gt;sprend.uservoice.com&lt;/a&gt;. Det går tyvärr med snigelfart att skapa nya funktioner, men vi glömmer inte bort dom.&lt;br /&gt;&lt;br /&gt;Sprend utvecklas långsamt därför att den är en gratistjänst och vi måste tjäna brödfödan på annat sätt. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;10. Funkar Sprend med min iPhone/Android/iPad/... ?&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Safari för iOS har inte stöd för uppladdningar. Nedladdningar kan funka men jag har inte testat något vidare. Vad gäller Android-telefoner har jag ingen aning. Jag tror jag behöver skriva en app för att lösa detta.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-7131981508055421952?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/7131981508055421952/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=7131981508055421952' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/7131981508055421952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/7131981508055421952'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2011/03/faq.html' title='FAQ (Swedish)'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-3106347094261276383</id><published>2011-01-06T13:32:00.002+01:00</published><updated>2011-03-21T09:16:52.608+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='future'/><title type='text'>Future of Sprend</title><content type='html'>I've had the goal of making the Sprend project more open and transparent. But writing blog posts takes a lot of effort so I've hesitated. Let this be a new start. With a little luck from now on I'll write more often, but perhaps my thoughts might not be as well pondered as &lt;a href="http://www.paulgraham.com/articles.html"&gt;those of Paul Graham&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Internally we've had discussions on our mailing list and irc channel about the next step. A new thing is our &lt;a href="http://www.facebook.com/pages/Sprend/131233920261255"&gt;Facebook page&lt;/a&gt; thanks to Börre. I not particularly fond of the all-u-can-eat, we-are-the-internet kind of goal that Facebook has, and I canceled my account some time ago. But perhaps I can change my mind. &lt;br /&gt;&lt;br /&gt;Now for the meat. This is my view of the future. The focus for Sprend (as soon as I've managed to amass enough cash to support myself for a few months) is to build a first commercial version. And no, we won't kill the free version in the process.&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;The goal is&lt;/b&gt; to build a premium service with as little as possible of new functionality, with the simplest way of charging money (simplest to implement for us), and having a reasonable chance, in case of trouble, to bring back files of paying customers, with at most 2-3 hours downtime. The new functionality: multiple recipients and downloads, new field for sender's email address (= pretty much the top items of &lt;a href="http://sprend.uservoice.com/"&gt;sprend.uservoice.com&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;We will do this&lt;/b&gt; according to the KISS principle, as simple and as cheap as possible. At least we need to do the following: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Design and implement the premium service.&lt;/li&gt;&lt;li&gt; Solve problem 1: Our connection to the internet is down. How do we solve this for paying customers within 2-3 hours? &lt;/li&gt;&lt;li&gt;Solve problem 2: Our server is down (for whatever hardware or software related reason). How do we solve this for paying customers with 2-3 hours?&lt;/li&gt;&lt;li&gt;Solve problem 3: When the load of our free service affects the performance of the payed version, how do we make sure that the paying customers get to their files?&lt;/li&gt;&lt;li&gt;Will we be ready for so much more support calls and emails?&lt;/li&gt;&lt;/ul&gt;I have most certainly left out a number of important issues. But this is a start. What do you think, team?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-3106347094261276383?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/3106347094261276383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=3106347094261276383' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3106347094261276383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3106347094261276383'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2011/01/future-of-sprend.html' title='Future of Sprend'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-5481536515126228108</id><published>2010-12-30T21:34:00.003+01:00</published><updated>2011-01-02T04:13:07.086+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new feature'/><category scheme='http://www.blogger.com/atom/ns#' term='platform'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Facebook and things to come</title><content type='html'>Sprend now has a Facebook page: &lt;a href="http://www.facebook.com/pages/Sprend/131233920261255"&gt;http://www.facebook.com/pages/Sprend/131233920261255&lt;/a&gt;&lt;br /&gt;&lt;div&gt;It's in norwegian, because Børre - our norwegian guy - created it.&lt;/div&gt;&lt;div&gt;But we're in the process of transforming it into english, because that's our default language when communicating with the world (we often use swedish and norwegian when appropriate though).&lt;/div&gt;&lt;div&gt;It has a nice visual design, so kudos to Børre's work.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next year we have some improvements planned.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;A more modern user interface (the "look" of the website)&lt;/li&gt;&lt;li&gt;The most requested features at &lt;a href="http://sprend.uservoice.com/"&gt;http://sprend.uservoice.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Backend (server) upscaling, to increase speed, reliability and recovery of deleted files&lt;/li&gt;&lt;li&gt;A pay-for premium version that will have more features, speed, reliability and security&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-5481536515126228108?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/5481536515126228108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=5481536515126228108' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/5481536515126228108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/5481536515126228108'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2010/12/facebook-and-things-to-come.html' title='Facebook and things to come'/><author><name>Joakim Signal</name><uri>http://www.blogger.com/profile/00359448886263007536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-6898409058360226633</id><published>2010-10-11T18:44:00.018+02:00</published><updated>2011-01-17T23:09:28.448+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='statistics'/><category scheme='http://www.blogger.com/atom/ns#' term='system'/><title type='text'>More stats on our traffic</title><content type='html'>&lt;div style="text-align: left;"&gt;It's half a year since I &lt;a href="http://sprend.blogspot.com/2009/08/new-server.html?showComment=1271427358700#c5357640475865361506"&gt;published&lt;/a&gt; some numbers on the growing traffic of our server.&lt;/div&gt;&lt;div&gt;That growth has largely "flatlined" (levelled off) the last weeks, mainly because we reached the maximum capacity of our internet connection (during our peak hours of visitors) a long time ago.&lt;/div&gt;&lt;div&gt;But also the growing amount of disk IO and CPU &amp;amp; threads that Tomcat consumes does strain the server itself.&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway, here are the numbers as of 2010-10-10:&lt;/div&gt;&lt;div&gt;(The date 10/10/10 = 101010 = 42 in binary = &lt;a href="http://en.wikipedia.org/wiki/Phrases_from_The_Hitchhiker%27s_Guide_to_the_Galaxy#Answer_to_the_Ultimate_Question_of_Life.2C_the_Universe_and_Everything_.2842.29"&gt;The Ultimate Answer&lt;/a&gt;) :)&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Around 120-170 ongoing file transfers at peak hours&lt;/li&gt;&lt;li&gt;Around 300,000 visitors (130,000 unique visitors) per month&lt;/li&gt;&lt;li&gt;Around 260,000 successful file transfers per month&lt;/li&gt;&lt;li&gt;Around 25 TiB (terabytes) of file transfers per month&lt;/li&gt;&lt;li&gt;Around 800 GiB of user data, spread out on 8,000 files, is constantly in our storage&lt;/li&gt;&lt;li&gt;The filetransfers consist of 58% uploads and 42% downloads (hey, 42, that's nice!)&lt;/li&gt;&lt;li&gt;Around 17% of uploads and 8% of downloads fail (these are not included in the 260,000 figure)&lt;/li&gt;&lt;li&gt;Around 88% of the visitors are from &lt;a href="http://en.wikipedia.org/wiki/Nordic_countries"&gt;Nordic&lt;/a&gt; countries (82% from Sweden + 6% from the others)&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Edit:&lt;/b&gt; See &lt;a href="http://sprend.blogspot.com/2010/10/more-stats-on-our-traffic.html?showComment=1294842451796#c2661627151107487149"&gt;comment #4&lt;/a&gt; of this post for updated statistics.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Regarding failed file transfers:&lt;/div&gt;&lt;div&gt;Sprend uses HTTP GET and POST, and we allow people to use any browser.&lt;/div&gt;&lt;div&gt;   Neither of those are the best ways to transfer files in a reliable manner (but they are the quick &amp;amp; easy ways).&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;Click on the screenshot below and you'll see real statistics (and some of it is interesting stuff that I haven't talked about here):&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="text-align: center;"&gt; &lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_BNrX4Wt7esA/TLREnWQi8OI/AAAAAAAAACU/xUwNt5aWBpY/s1600/analytics.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 400px; height: 391px;" src="http://2.bp.blogspot.com/_BNrX4Wt7esA/TLREnWQi8OI/AAAAAAAAACU/xUwNt5aWBpY/s300/analytics.png" alt="" id="BLOGGER_PHOTO_ID_5527118085471006946" border="0" /&gt;&lt;/a&gt;(To note of the screenshot: it shows the average percentages over time, while I wrote about Sweden's current percentage. And Finland's 1% isn't visible in the screenshot.)&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We must keep this eternal truth in mind though:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;"There are lies, damn lies, &lt;b&gt;statistics&lt;/b&gt;, benchmarks and delivery dates"&lt;/i&gt;&lt;/div&gt;&lt;div&gt;(To which I would add &lt;i&gt;"religion, capitalists and &lt;a href="http://en.wikipedia.org/wiki/Fox_News_Channel_controversies"&gt;Fox News&lt;/a&gt;"&lt;/i&gt;)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-6898409058360226633?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/6898409058360226633/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=6898409058360226633' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/6898409058360226633'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/6898409058360226633'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2010/10/more-stats-on-our-traffic.html' title='More stats on our traffic'/><author><name>Joakim Signal</name><uri>http://www.blogger.com/profile/00359448886263007536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_BNrX4Wt7esA/TLREnWQi8OI/AAAAAAAAACU/xUwNt5aWBpY/s72-c/analytics.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-3803816187334484946</id><published>2010-03-17T09:46:00.002+01:00</published><updated>2010-03-17T09:49:18.669+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='monitoring'/><title type='text'>Keeping the Sprend server happy</title><content type='html'>I've just blogged on my personal blog about something related to keeping the Sprend server healthy:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://arneevertsson.blogspot.com/2010/03/automatically-reconnecting-ssh-sessions.html"&gt;Automatically  reconnecting ssh sessions at wakeup&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-3803816187334484946?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/3803816187334484946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=3803816187334484946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3803816187334484946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3803816187334484946'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2010/03/keeping-sprend-server-happy.html' title='Keeping the Sprend server happy'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-6602874030620970672</id><published>2010-01-29T09:35:00.002+01:00</published><updated>2010-01-29T09:41:59.092+01:00</updated><title type='text'>Rock</title><content type='html'>I've been away for a month and Sprend has been rocking like a clock, humming like Volvo truck, and generally keeping users happy. That's good. That's nice. Mmmmm.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-6602874030620970672?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/6602874030620970672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=6602874030620970672' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/6602874030620970672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/6602874030620970672'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2010/01/rock.html' title='Rock'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-1413401890990341824</id><published>2009-12-17T10:25:00.003+01:00</published><updated>2009-12-17T10:34:24.863+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new feature'/><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><title type='text'>Easier to receive files</title><content type='html'>I've just added a feature that makes it easier for those who want to receive files via Sprend. By adding a parameter to the link url the email address will be filled in already. Try out the following link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sprend.com/?emailaddress=somebody@somewhere.com" rel="nofollow"&gt;http://sprend.com/?emailaddress=somebody@somewhere.com&lt;/a&gt;&lt;a href="http://sprend.com/?emailaddress=arne@sprend.com"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/a&gt;The sender will only need to select a file and then click on &lt;span style="font-style: italic;"&gt;Sprend the file&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Thanks for &lt;a href="http://sprend.uservoice.com/pages/17414-general/suggestions/418418-link-to-your-service-with-recipients-address-included?ref=title"&gt;the feature request&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-1413401890990341824?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/1413401890990341824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=1413401890990341824' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/1413401890990341824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/1413401890990341824'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2009/12/easier-to-receive-files.html' title='Easier to receive files'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-3114117601329062167</id><published>2009-12-10T14:11:00.002+01:00</published><updated>2009-12-10T14:20:22.162+01:00</updated><title type='text'>New version</title><content type='html'>I deployed build 323 this morning. There are only a couple of visible changes, and among those are two simple bug fixes in the email handling (&lt;a href="http://sprend.uservoice.com/pages/17414-general/suggestions/293792-bug-in-email-address-verification?ref=title"&gt;#1&lt;/a&gt;, &lt;a href="http://sprend.uservoice.com/pages/17414-general/suggestions/344647-another-bug-in-email-adress-verification?ref=title"&gt;#2&lt;/a&gt;). But under the hood quite a few things have changed.&lt;br /&gt;&lt;br /&gt;I've been refactoring like hell for some days now. The center of my attention has been the core of the system, the code for uploading and downloading. I feel I've secured a sound platform for adding some good stuff in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-3114117601329062167?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/3114117601329062167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=3114117601329062167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3114117601329062167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3114117601329062167'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2009/12/new-version.html' title='New version'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-3554622802613735809</id><published>2009-10-09T09:28:00.002+02:00</published><updated>2009-10-09T10:59:10.561+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='platform'/><category scheme='http://www.blogger.com/atom/ns#' term='system'/><title type='text'>Down</title><content type='html'>The site was down for almost twenty hours yesterday. Let's start with the pathetic excuses: Our ISP had a broken cable that took a long time to repair.&lt;br /&gt;&lt;br /&gt;Obviously one needs a backup ISP for this kind of situation. I recently asked a question about &lt;a href="http://serverfault.com/questions/54180/low-cost-isp-failover-for-inbound-traffic"&gt;ISP failover on serverfault.com&lt;/a&gt;. There doesn't seem to exist a foolproof and cheap way to do it. I'll have to re-read the answers and try to learn some more. But I guess any kind of ISP failover is better than none.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-3554622802613735809?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/3554622802613735809/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=3554622802613735809' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3554622802613735809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3554622802613735809'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2009/10/down.html' title='Down'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-8117317759952056703</id><published>2009-08-09T23:58:00.053+02:00</published><updated>2010-12-21T07:44:43.878+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='platform'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>New server (expanded)</title><content type='html'>Hello.&lt;br /&gt;I'm the &lt;a href="http://en.wikipedia.org/wiki/System_administrator"&gt;sysadmin&lt;/a&gt; at &lt;a href="http://sprend.com/"&gt;Sprend&lt;/a&gt;.&lt;br /&gt;In this post I'll expand on Arnes previous &lt;a style="font-weight: bold;" href="http://sprend.blogspot.com/2009/07/new-server.html"&gt;post&lt;/a&gt; (read that one first), and dive into technical details.&lt;br /&gt;So consider yourself warned, this is gonna be fairly &lt;a href="http://en.wikipedia.org/wiki/Nerd"&gt;nerdy&lt;/a&gt; stuff :)&lt;br /&gt;(Actually the Wikipedia &lt;a href="http://en.wikipedia.org/wiki/Geek"&gt;geek&lt;/a&gt; article has a better explanation on the subject of nerds, but when I was a teenager me and my friends here in Sweden always called ourselves nerds, so that's the expression I'm sticking to)&lt;br /&gt;&lt;br /&gt;Regarding the Java &lt;a href="http://en.wikipedia.org/wiki/Thread_%28computer_science%29"&gt;threads&lt;/a&gt; eating 99% &lt;a href="http://en.wikipedia.org/wiki/CPU"&gt;CPU&lt;/a&gt;:&lt;br /&gt;This might in part have been caused by us running &lt;a href="http://en.wikipedia.org/wiki/Linux"&gt;Linux&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Linux_kernel"&gt;kernel&lt;/a&gt; 2.6.18 or &lt;a href="http://en.wikipedia.org/wiki/Apache_Tomcat"&gt;Tomcat&lt;/a&gt; 5.5.20, but most likely the reason was &lt;a href="http://en.wikipedia.org/wiki/Java_%28software_platform%29"&gt;Java&lt;/a&gt; 5.0.10 (it's hard to know since we were too lazy to do any serious &lt;a href="http://en.wikipedia.org/wiki/Debugging"&gt;debugging&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Software_performance_analysis"&gt;profiling&lt;/a&gt;).&lt;br /&gt;Also, the Java threads regularly allocated more memory than they were assigned, sometimes to the point of &lt;a href="http://en.wikipedia.org/wiki/Out_of_memory"&gt;starving&lt;/a&gt; the machine of memory, at which point the kernel (or rather its dreaded &lt;a href="http://lwn.net/Articles/317814/"&gt;OOM Killer&lt;/a&gt;) always made the unfortunate choice of killing &lt;a href="http://en.wikipedia.org/wiki/Mysql"&gt;MySQL&lt;/a&gt; instead of something less important, in order to free up memory.&lt;br /&gt;(I didn't know about the &lt;tt&gt;oom_adj&lt;/tt&gt; setting at the time. Not that it would have helped considering that Java and MySQL were the only things consuming any significant amount of memory on the server, and both of them had to stay alive)&lt;br /&gt;&lt;br /&gt;Aside from CPU usage being reduced on the new server, memory is not "leaking" anymore and Java &amp;amp; MySQL are using fewer threads.&lt;br /&gt;That's partly due to the faster CPU (dual core &lt;a href="http://en.wikipedia.org/wiki/Athlon_64_X2"&gt;Athlon&lt;/a&gt; 64 &lt;a href="http://en.wikipedia.org/wiki/List_of_AMD_Athlon_64_microprocessors#.22Brisbane.22_.28energy-efficient_65W.2C_G1_.26_G2.2C_65_nm.29"&gt;5200+&lt;/a&gt;) but also because of more efficient software versions: kernel &lt;a href="http://kernelnewbies.org/Linux26Changes"&gt;2.6.3x&lt;/a&gt;, Java &lt;a href="http://en.wikipedia.org/wiki/Java_version_history#Java_SE_6_.28December_11.2C_2006.29"&gt;6.x&lt;/a&gt;, Tomcat &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/changelog.html"&gt;6.x&lt;/a&gt; and MySQL &lt;a href="http://dev.mysql.com/doc/refman/5.0/en/news-5-0-x.html"&gt;5.x&lt;/a&gt;&lt;br /&gt;When things were at their worst on the old server, Java grew towards 200 threads and 1 &lt;a href="http://en.wikipedia.org/wiki/Binary_prefix#Prefixes"&gt;GiB&lt;/a&gt; of &lt;a href="http://en.wikipedia.org/wiki/Random-access_memory"&gt;RAM&lt;/a&gt; (the server had 1 GiB of RAM, but no &lt;a href="http://en.wikipedia.org/wiki/Swap_space"&gt;swap&lt;/a&gt; because that would have hurt our bad &lt;a href="http://en.wikipedia.org/wiki/Computer_performance"&gt;performance&lt;/a&gt; even more). MySQL 4.1.22 behaved more gracefully and stayed below 50 threads and 100 MiB of RAM. On the new server Java stays below 300 MiB of RAM and 120 threads. MySQL stays below 50 MiB of RAM and 25 threads. Java now seldom occupy more than 100% of one CPU core (often much less than that) and MySQL consumes virtually zero CPU (and that's how it should be).&lt;br /&gt;We had some other minor problems with Java and MySQL as well that disappeared on the new server.&lt;br /&gt;As a consequence Java and MySQL is roughly an &lt;a href="http://en.wikipedia.org/wiki/Order_of_magnitude"&gt;order of magnitude&lt;/a&gt; more stable now, which is quite nice for me since I don't need to babysit them anymore.&lt;br /&gt;&lt;br /&gt;Regarding moving the &lt;a href="http://en.wikipedia.org/wiki/Database"&gt;db&lt;/a&gt; from the &lt;a href="http://en.wikipedia.org/wiki/USB_flash_drive"&gt;USB flash drives&lt;/a&gt; to the &lt;a href="http://en.wikipedia.org/wiki/Hard_disk_drive"&gt;hard drives&lt;/a&gt;:&lt;br /&gt;The reason was that the USB drives are slow when MySQL is doing something that causes heavy and sustained disk &lt;a href="http://en.wikipedia.org/wiki/Input/output"&gt;IO&lt;/a&gt;.&lt;br /&gt;Which is not a surprise considering that USB flash drives typically have IO throughput of merely 5-15 MiB/s.&lt;br /&gt;&lt;br /&gt;Also, I separated the system disk (which holds the operating system) from the data disk (which holds the &lt;a href="http://en.wikipedia.org/wiki/Computer_file"&gt;files&lt;/a&gt; being uploaded and downloaded to/from sprend.com).&lt;br /&gt;The reason to separate the system disk from the data disk is performance - concurrent reads and writes in particular.&lt;br /&gt;And why is that necessary?&lt;br /&gt;Well, our internet connection is a dedicated 100/100 Mbit/s &lt;a href="http://en.wikipedia.org/wiki/Duplex_%28telecommunications%29#Full-duplex"&gt;full duplex&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Ethernet"&gt;ethernet&lt;/a&gt; line (which is pretty damn good for a "free of charge web service" provided by a couple of unknown guys).&lt;br /&gt;This means what we can push a maximum of 25 MiB/s through the line.&lt;br /&gt;That's nothing for our &lt;a href="http://en.wikipedia.org/wiki/Serial_ATA#SATA_Revision_2.0_.28SATA_3_Gbit.2Fs.29"&gt;SATA-300&lt;/a&gt; hard drives which I've measured to push approximately 100 MiB/s per drive at peak performance.&lt;br /&gt;But, and this is the crux, at peak hours (noon, afternoon and evenings) we typically have something like 30 to 40 simultaneous file &lt;a href="http://en.wikipedia.org/wiki/File_transfer"&gt;transfers&lt;/a&gt; in progress.&lt;br /&gt;And while the aggregate bandwidth of those transfers seldom go beyond 15 MiB/s they do cause simultaneous reads and writes of 30 to 40 different files on the hard drive.&lt;br /&gt;This means that the &lt;a href="http://en.wikipedia.org/wiki/Disk_read-and-write_head"&gt;magnetic head&lt;/a&gt; inside the hard drive is jumping around like crazy the whole time while accessing the different &lt;a href="http://en.wikipedia.org/wiki/Block_%28data_storage%29"&gt;data blocks&lt;/a&gt; belonging to all those files (no matter what you do, the data blocks are gonna get spread out over the &lt;a href="http://en.wikipedia.org/wiki/Hard_disk_platters"&gt;platter&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Hard_disk_platters"&gt;(s)&lt;/a&gt; inside the hard drive over time - especially with our high rate of file creations and deletions - and that's why the magnetic head has to jump around so much).&lt;br /&gt;That in turn translates into increased &lt;a href="http://en.wikipedia.org/wiki/Seek_time"&gt;seek times&lt;/a&gt; (and increased wear &amp;amp; tear) on the hard drive.&lt;br /&gt;On the old server we had combined system and data disk, a &lt;a href="http://en.wikipedia.org/wiki/Parallel_ATA#ATA_standards_versions.2C_transfer_rates.2C_and_features"&gt;PATA/100&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Disk_controller"&gt;disk controller&lt;/a&gt; and the XFS &lt;a href="http://en.wikipedia.org/wiki/File_system"&gt;file system&lt;/a&gt; on the hard drives.&lt;br /&gt;That caused the old hard drives to become seriously overworked and slow at peak traffic hours.&lt;br /&gt;Now, there's absolutely nothing wrong with XFS. I've done some serious performance comparisons of the Linux &lt;a href="http://en.wikipedia.org/wiki/Journaling_file_system"&gt;journalling file systems&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Ext3"&gt;ext3&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/ReiserFS"&gt;reiser3&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/JFS_%28file_system%29"&gt;JFS&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Xfs"&gt;XFS&lt;/a&gt;. All on the same Linux installation on non-enterprise &lt;a href="http://en.wikipedia.org/wiki/Personal_computer_hardware"&gt;hardware&lt;/a&gt;, and XFS was the clear winner.&lt;br /&gt;But the newer generation &lt;a href="http://en.wikipedia.org/wiki/Ext4"&gt;ext4&lt;/a&gt; (with its extents, pre-allocation, delayed allocation and multiblock allocator) in conjunction with the faster SATA-300 disk subsystem and separated system &amp;amp; data disks proved to be highly effective.&lt;br /&gt;The load on the hard drives can't even be noticed any more during peak traffic hours.&lt;br /&gt;&lt;br /&gt;Of course, &lt;a href="http://en.wikipedia.org/wiki/Zfs"&gt;ZFS&lt;/a&gt; is still the ultimate &lt;a href="http://en.wikipedia.org/wiki/Leet#Pr0n"&gt;pr0n&lt;/a&gt; when it comes to file systems.&lt;br /&gt;Unfortunately, the &lt;a href="http://en.wikipedia.org/wiki/CDDL"&gt;CDDL&lt;/a&gt; license of ZFS and the &lt;a href="http://en.wikipedia.org/wiki/Gpl"&gt;GPL&lt;/a&gt; license of the Linux kernel are incompatible, preventing ZFS from being incorporated into the Linux kernel.&lt;br /&gt;But the good news is that there is an all new and shiny Linux native file system in full development right now, which is basically an improved clone of ZFS.&lt;br /&gt;It's called &lt;a href="http://en.wikipedia.org/wiki/Btrfs"&gt;Btrfs&lt;/a&gt; (sponsored primarily by &lt;a href="http://en.wikipedia.org/wiki/Oracle_Corporation"&gt;Oracle&lt;/a&gt;) and when it's declared stable we'll switch over to it and get amazing kickass features!&lt;br /&gt;&lt;br /&gt;Oh, and the reason that we used USB flash drives is that they're cheap, noiseless, cold, power efficient and small in physical size (the server has room for them, but not for 2 extra hard drives).&lt;br /&gt;All of this except being cheap is also true for &lt;a href="http://en.wikipedia.org/wiki/Solid-state_drive"&gt;SSD&lt;/a&gt; drives, which is why we went with USB flash drives instead.&lt;br /&gt;SSD drives have blazing performance, but they're just too expensive at this point in time for this project.&lt;br /&gt;Also, SSD still share a serious technical problem with USB flash - after something like 50-100K of writes, individual memory cells will start to fail (even when utilizing wear levelling).&lt;br /&gt;But that, and write performance, won't be a problem in the next generation of SSD drives.&lt;br /&gt;&lt;br /&gt;Other points of interest regarding the new server:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;We've switched to &lt;a href="http://en.wikipedia.org/wiki/64-bit"&gt;64 bit&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Gentoo_Linux"&gt;Gentoo&lt;/a&gt; Linux for &lt;a href="http://en.wikipedia.org/wiki/Operating_system"&gt;OS&lt;/a&gt;&lt;/li&gt;&lt;li&gt;We're now using &lt;a href="http://en.wikipedia.org/wiki/NAPI"&gt;NAPI&lt;/a&gt; in our &lt;a href="http://en.wikipedia.org/wiki/Network_Interface_Controller"&gt;NIC&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Device_driver"&gt;driver&lt;/a&gt;, which reduces &lt;a href="http://en.wikipedia.org/wiki/Interrupt"&gt;interrupt&lt;/a&gt; generated &lt;a href="http://en.wikipedia.org/wiki/Load_%28computing%29"&gt;CPU load&lt;/a&gt; by 5-10% (estimated) on incoming &lt;a href="http://en.wikipedia.org/wiki/Computer_network"&gt;network&lt;/a&gt; traffic&lt;/li&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Computer_security"&gt;Security&lt;/a&gt; is increased. In particular &lt;a href="http://en.wikipedia.org/wiki/Login"&gt;login&lt;/a&gt; security + the number of open &lt;a href="http://en.wikipedia.org/wiki/Network_port"&gt;network ports&lt;/a&gt; is reduced (that number is extremly low now)&lt;/li&gt;&lt;li&gt;We're utilizing around 400 GiB of our &lt;a href="http://en.wikipedia.org/wiki/Disk_storage"&gt;storage&lt;/a&gt; capacity (which is well over 1 TiB now)&lt;/li&gt;&lt;li&gt;We will try using &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/apr.html"&gt;APR&lt;/a&gt;, which will enable Tomcat to scale better, and seems able to reduce Java CPU usage somewhat.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;We will connect a &lt;a href="http://en.wikipedia.org/wiki/Uninterruptible_power_supply"&gt;UPS&lt;/a&gt; to the server&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Regarding our second new server, for increased &lt;a href="http://en.wikipedia.org/wiki/Reliability,_Availability_and_Serviceability"&gt;RAS&lt;/a&gt;, which is not in use yet:&lt;br /&gt;We have to investigate whether to use &lt;a href="http://en.wikipedia.org/wiki/High-availability_cluster"&gt;clustering&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Load_balancing_%28computing%29"&gt;loadbalancing&lt;/a&gt; or &lt;a href="http://en.wikipedia.org/wiki/Failover"&gt;failover&lt;/a&gt; on the servers.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.fulmersbelly.com/img/homer.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 310px; height: 432px;" src="http://www.fulmersbelly.com/img/homer.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In conclusion, this is how I imagine a discussion with Homer would summarize things (see the video clip below for why this is funny):&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;Me:&lt;/span&gt; The old server is &lt;a href="http://en.wiktionary.org/wiki/bork#Etymology_1"&gt;b0rked&lt;/a&gt;!&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Homer:&lt;/span&gt; That's bad.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Me:&lt;/span&gt; But the new server is totally sweet!&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Homer:&lt;/span&gt; That's good.&lt;/blockquote&gt;(Not that Homer has any idea what a server is, but lets pretend that he does)&lt;br /&gt;&lt;br /&gt;&lt;object width="360" height="330"&gt;&lt;param name="movie" value="http://fliiby.com/embed/gadget.swf?fileID=132144&amp;amp;fileShort=ay0fjcdh9o"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://fliiby.com/embed/gadget.swf" wmode="transparent" bgcolor="#ffffff" width="360" height="330" allowscriptaccess="always" flashvars="&amp;amp;fileID=132144&amp;amp;fileShort=ay0fjcdh9o"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Edit:&lt;/span&gt; A big FU to Fox and YouTube for revoking access to the Simpsons video clip. Fortunately there are other video sites.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-8117317759952056703?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/8117317759952056703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=8117317759952056703' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/8117317759952056703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/8117317759952056703'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2009/08/new-server.html' title='New server (expanded)'/><author><name>Joakim Signal</name><uri>http://www.blogger.com/profile/00359448886263007536</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-2766971037248067964</id><published>2009-08-07T19:08:00.001+02:00</published><updated>2009-08-07T23:13:54.136+02:00</updated><title type='text'>New server</title><content type='html'>A little over a month ago we retired our old server that's been serving us since we started out with Sprend. I guess it's obvious we needed an upgrade to increase stability and scalability. The 2.6 GHz P4 of the old Dell Inspiron had been running at 100% continuously for quite some time. The Java process stole 99% of the CPU which in turn made it difficult for MySQL to do its job.&lt;br /&gt;&lt;br /&gt;The new machine is working well and the CPU usage is way down. The percentage of failed file transfers is also looking better. Before the switch, 25% of the uploads failed and 11% of the downloads. With the new server the numbers are 17% failed uploads and 9% failed downloads. Better but still not very good.&lt;br /&gt;&lt;br /&gt;Both the system drive and the data drive is mirrored with Linux software RAID.&lt;br /&gt;&lt;br /&gt;An interesting solution of the new machines is that the system disk is a USB flash drive (actually two drives because of mirroring). It took a while for Sysadm to convince me to try that. It seems to work but we moved the MySQL db from the USB drive to the hard drive for better performance.&lt;br /&gt;&lt;br /&gt;The server also has got newer versions of Java (6), Tomcat (6.0) and MySQL (5.0). The next step, hardware wise, is to figure out the simplest way to plug in the second server as well. Adding another dimension always adds quite a bit of complexity.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-2766971037248067964?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/2766971037248067964/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=2766971037248067964' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/2766971037248067964'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/2766971037248067964'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2009/07/new-server.html' title='New server'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-3926873910897060624</id><published>2009-06-02T14:04:00.004+02:00</published><updated>2009-06-02T14:16:09.758+02:00</updated><title type='text'>New build deployed</title><content type='html'>I just deployed a new build, and it's been ages since the last one. We've just been tied up in other things and haven't been able to code a whole lot.&lt;br /&gt;&lt;br /&gt;Anyhow, Firefox finally has a working progress bar for uploads (thank you Philip). This new feature (or bug fix) is also the &lt;a href="http://sprend.uservoice.com/pages/17414-general/suggestions/201594-upload-indicator-for-firefox"&gt;first uservoice item we have completed&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I also fixed a really naughty SQL bug that make MySQL send 50 000 rows instead of just one (!). I apologize for breaking every ongoing upload and download which happens when a new version is deployed. This fix may actually stabilize our system a bit, which has been rather shaky for some time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-3926873910897060624?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/3926873910897060624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=3926873910897060624' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3926873910897060624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3926873910897060624'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2009/06/new-build-deployed.html' title='New build deployed'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-3143791515029316319</id><published>2009-05-14T11:42:00.004+02:00</published><updated>2009-05-14T12:41:27.081+02:00</updated><title type='text'>UserVoice</title><content type='html'>Stack Overflow successfully uses &lt;a href="http://stackoverflow.uservoice.com/"&gt;UserVoice&lt;/a&gt; to get feedback and suggestions on new features or bugs to be fixed. The Stack Overflow team has so far completed 1831 (!) requests. Pretty impressive.&lt;br /&gt;&lt;br /&gt;I believe that any company, that lives on the web or outside it, and takes their business seriously needs to communicate openly with their customers. It is a sign of strength to publish good as well as not so good feedback on your own web site. It's a mystery to me that so few companies actually do this.&lt;br /&gt;&lt;br /&gt;If often email or call the customer support department with questions or suggestions. So far I have never been offered the ability to follow my particular issue through their system. At best, you'll get: "I will forward this to the development team". At best! It's a shame that the only staff member who will ever communicate directly with a customer also seems to be the person with the least to say about the products and services offered.&lt;br /&gt;&lt;br /&gt;Until a few days ago Sprend had only its simple feedback forum. From now, we also have a UserVoice forum, go check it out at &lt;a href="http://sprend.uservoice.com/"&gt;sprend.uservoice.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-3143791515029316319?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/3143791515029316319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=3143791515029316319' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3143791515029316319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3143791515029316319'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2009/05/uservoice.html' title='UserVoice'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-1011767550541841005</id><published>2009-05-06T09:55:00.002+02:00</published><updated>2009-05-06T10:11:35.410+02:00</updated><title type='text'>First AdSense Check</title><content type='html'>Today we got our first AdSense check, for 1004.15 SEK ($124)!&lt;br /&gt;&lt;br /&gt;It has been claimed that ads are the only successful micro payment system. I tend not to agree. Successful yes, but it's more of a &lt;span style="font-style: italic;"&gt;nano&lt;/span&gt; payment system.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-1011767550541841005?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/1011767550541841005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=1011767550541841005' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/1011767550541841005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/1011767550541841005'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2009/05/first-adsense-check.html' title='First AdSense Check'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-2850867598365339202</id><published>2008-12-19T16:12:00.004+01:00</published><updated>2009-05-06T09:53:09.146+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><title type='text'>Greek</title><content type='html'>We have a new language, Greek! It's our first non-latin script language and it feels good. :-)&lt;br /&gt;&lt;br /&gt;To be honest the current language handling doesn't scale. Each new language adds an extra link on the front page. That will look really bad when we have ten or more languages. As well, a language specific feedback page is automatically added. We need to reduce the number of feedback pages to the languages we actually know, that is English, Swedish, Norwegian, Danish and Croatian.&lt;br /&gt;&lt;br /&gt;Under the hood we have a few performance issues due to increasing traffic. Now that's the kind of problem we want to have. I'm not really complaining.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-2850867598365339202?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/2850867598365339202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=2850867598365339202' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/2850867598365339202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/2850867598365339202'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2008/12/greek.html' title='Greek'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-5500013492582078971</id><published>2008-11-11T13:05:00.003+01:00</published><updated>2008-11-11T13:26:54.580+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='new release'/><title type='text'>Sprend is released</title><content type='html'>Last night, until 11 o'clock, I played a tennis match. After pocketing the match ball I went home to finally deploy &lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;Sprend&lt;/span&gt;&lt;/span&gt;. It was a Jurassic Park moment: "65 million years in the making". Or at least that's what it felt like. The original plan was to rename the site one year ago. But now we're there. I went to bed at 4 in the morning. Phew.&lt;br /&gt;&lt;br /&gt;The deployment of the new app went okay. I had to do a database upgrade as well, adding a field and an index, and updating the MySQL database engine to InnoDB. The automatic db upgrade caused a little hickup, and I had to run the sql by hand in stead. No big deal. I had obviously tested my auto-upgrade on a different version of MySQL - pretty stupid.&lt;br /&gt;&lt;br /&gt;So what's new? The name. Four languages. Some under-the-hood bugfixing to enhance stability.&lt;br /&gt;&lt;br /&gt;This means that &lt;span style="font-style: italic;"&gt;skickafilen.se&lt;/span&gt; is no more than an alternative domain name to get to the site. Actually, the site has five domain names: sprend.com, sprend.se, sprend.no, skickafilen.com and skickafilen.se.  Sooner or later there will be as many sprend.* domains as there or google.* domains.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-5500013492582078971?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/5500013492582078971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=5500013492582078971' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/5500013492582078971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/5500013492582078971'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2008/11/sprend-is-released.html' title='Sprend is released'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-3357745952631099300</id><published>2008-11-05T18:24:00.002+01:00</published><updated>2008-11-05T18:26:29.128+01:00</updated><title type='text'>In English</title><content type='html'>From now on this blog will be written in English. It seems natural as the site changes name from &lt;span style="font-style: italic;"&gt;skickafilen.se&lt;/span&gt; (=sendthefile.se) to &lt;span style="font-style: italic;"&gt;sprend.com&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-3357745952631099300?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/3357745952631099300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=3357745952631099300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3357745952631099300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/3357745952631099300'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2008/11/in-english.html' title='In English'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-6158474532511088430</id><published>2008-04-16T11:06:00.001+02:00</published><updated>2008-04-16T11:06:51.179+02:00</updated><title type='text'>Exjobbare?</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal style='margin-top:0cm'&gt;Jag nätverkade på Connect Västs frukostmöte i morse. Det handlade om Ostron och var riktigt intressant (fast kanske inte för det här projektet). Själva träffen anordnades på Chalmersområdet, och efter lite minglande har jag börjat fundera på om inte exjobbare, trots allt, kan vara rätt personer för Sprend. Om inte annat är studenter vana vid att leva på små slantar. Genom att erbjuda exjobbare en uppgift kan man hitta personer som kan fortsätta i Sprend efter examen.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='margin-top:0cm'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='margin-top:0cm'&gt;Det som oroat mig med just exjobbare är att dom kanske inte är självgående, måste ledas vilket kräver mycket tid, och har fokus på att avsluta sin utbildning (i stället för att göra en bra jobb för Sprend). Dom farhågorna kvarstår, fast hade jag hittat en klon på mig själv som just skulle göra exjobb så hade jag lätt anlitat honom. Jag hade också själv hoppat på ett sådant förslag om någon kommit med det till mig när jag letade exjobb.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='margin-top:0cm'&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal style='margin-top:0cm'&gt;Så kanske&amp;#8230;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-6158474532511088430?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/6158474532511088430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=6158474532511088430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/6158474532511088430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/6158474532511088430'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2008/04/exjobbare.html' title='Exjobbare?'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-7178839376696177791</id><published>2007-11-17T17:39:00.000+01:00</published><updated>2007-11-17T17:43:16.740+01:00</updated><title type='text'>Konferenskul</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;Här kommer en glad och i mina ögon skrämmande nyhet: I i januari har jag fått en 20-minuters-slot på &lt;a href="http://www.jfokus.se/jfokus/"&gt;JFokus&lt;/a&gt; på temat &amp;quot;I want YOU for my $10 billion web project&amp;quot;. Gissa vilket projekt jag snackar om. Jag kallsvettas redan, men det skall bli kul.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;Var på &lt;strong&gt;&lt;span style='font-family:"Calibri","sans-serif"; font-weight:normal'&gt;&lt;a href="http://oredev.se/"&gt;Øredev&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style='font-family:"Calibri","sans-serif"'&gt; &lt;/span&gt;&lt;/strong&gt;i tisdags och onsdags och trivdes som fisken i vattnet. Det var min första riktiga konferens och det var skitkul och träffa på kända och okända nördar. Wow, varför har jag inte gjort detta förut (jo, jag vet varför, det kostar massor med pengar och förlorad fakturering och kräver övertalning av existerande uppdragsgivare).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class=MsoNormal&gt;Annars har jag, ångestfyllt, flytt IntelliJ och (återigen) uppdaterat min affärsplan inför Connects Språngbräda på tisdag. Det har dock redan gett resultat eftersom jag nu tror på reklamfinanisering i mycket högre grad än förut. Dessutom får jag god presentationsträning inför framtida uppgifter i talarstolen.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-7178839376696177791?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/7178839376696177791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=7178839376696177791' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/7178839376696177791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/7178839376696177791'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2007/11/konferenskul.html' title='Konferenskul'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-4556860574423220700</id><published>2007-10-12T09:45:00.000+02:00</published><updated>2007-10-12T10:21:35.886+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kodning'/><title type='text'>Sprend på flera språk</title><content type='html'>Skickafilen är äntligen påväg att byta namn till Sprend. I samband med detta översätter vi sajten till ett antal språk, till att börja med norska, engelska, franska, tyska och kroatiska.&lt;br /&gt;&lt;br /&gt;Eftersom det var mitt första försök att översätta en webbapplikation var jag tvungen att läsa på lite grann om hur man går tillväga i javavärlden. Jag läste om ResourceBundles och propertiesfiler och hittade åtminstone tre problem med det traditionella sättet att hantera språk.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Det klassiska problemet att propertiesfiler bara stöder 8859-1. I mitt fall skulle inte flera kroatiska bokstäver fungera.&lt;/li&gt;&lt;li&gt;Propertiesfilen laddas via en klassladdare vilket tydligen leder till &lt;a href="http://www.mambo.net/as/view/170"&gt;strul i en webbmiljö&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Separata filer för varje språk gör det svårare för översättaren.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Den bästa lösningen är antagligen att stoppa in alla strängar i databasen. Då löser man problem 1 och 2 ovan. Ett webbgränssnitt för att redigera alla strängar är en elegant lösning på problem 3.&lt;br /&gt;&lt;br /&gt;Men nu har jag inte all tid världen till snygga lösningar, så jag gjorde på ett lite enklare sätt. Genom att lägga alla språk i samma xml-fil, ladda in den via Properties.loadFromXML() och ange sökvägen direkt, löser man alla tre problem. I lite mer detalj gjorde jag så här:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Jag tog propertiesfilen vi redan skapat, som var i traditionellt format, och gjorde fem kopior.&lt;/li&gt;&lt;li&gt;Därefter adderade jag språkkoden till samtliga strängar i respektive fil, tex för svenska: &lt;span style="font-weight: bold;"&gt;upload.message&lt;/span&gt; =&gt; &lt;span style="font-weight: bold;"&gt;upload.message.sv&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Innehållet i alla filer satte jag ihop till en stor propertiesfil.&lt;/li&gt;&lt;li&gt;Filen konverteras till xml via liten javasnutt som låter Propertiesklassen först läsa in denna fil, och därefter spara den i xml.&lt;/li&gt;&lt;li&gt;Resultatet klistrade jag sedan in i Excel. Excel? Ja, för att enkelt kunna sortera en kolumn, vilket placerar alla översättningar av samma sträng tillsammans.&lt;/li&gt;&lt;/ol&gt;Formatet blir så här:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;entry key="upload.message.en"&amp;gt;Message:&amp;lt;/entry&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/br&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;entry key="upload.message.de"&amp;gt;translate-de&amp;lt;/entry&amp;gt;&lt;/span&gt;&lt;/br&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;entry key="upload.message.fr"&amp;gt;translate-fr&amp;lt;/entry&amp;gt;&lt;/span&gt;&lt;/br&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;entry key="upload.message.hr"&amp;gt;translate-hr&amp;lt;/entry&amp;gt;&lt;/span&gt;&lt;/br&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;entry key="upload.message.nb"&amp;gt;Melding:&amp;lt;/entry&amp;gt;&lt;/span&gt;&lt;/br&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&amp;lt;entry key="upload.message.sv"&amp;gt;Meddelande:&amp;lt;/entry&amp;gt;&lt;/span&gt;&lt;/br&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;(för denna nyckel saknas som synes fortfarande översättningar till några språk)&lt;br /&gt;&lt;br /&gt;Inladdningen av strängarna gör jag med följande kod:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;translatedStrings = new Properties();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;String realPathToTextPropertiesXml =  request.getSession().getServletContext().&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;getRealPath("/i18n/text.properties.xml");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;translatedStrings.loadFromXML(new FileInputStream(realPathToTextPropertiesXml));&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Jag tycker det funkar bra, än så länge. En nackdel kan vara att filen med översättningar är läsbar utifrån, vilket kanske inte passar alla applikationer. Ett annat mindre problem hänger ihop med översättare som jobbar parallellt och att alla språk finns i samma fil. Det översatta materialet måste mergas ihop men det går att hantera med Subversion om man har tungan rätt i mun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-4556860574423220700?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/4556860574423220700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=4556860574423220700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/4556860574423220700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/4556860574423220700'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2007/10/sprend-p-flera-sprk.html' title='Sprend på flera språk'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-8309553256666523932</id><published>2007-10-08T14:06:00.001+02:00</published><updated>2007-10-12T10:23:54.890+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nätverkande'/><category scheme='http://www.blogger.com/atom/ns#' term='entreprenör'/><title type='text'>Mentor</title><content type='html'>&lt;div class="Section1"&gt;Jag har skaffat mig mentorer i form av killarna bakom &lt;a href="http://disruptive.nu/"&gt;disruptive.nu&lt;/a&gt;. Poppe och jag hade ett intressant snack på Wayne's Coffee, medan mina barn såg till att ingenting störde oss. Mer än dom själva såklart. ;-)&lt;br /&gt;&lt;br /&gt;Efter detta uppmuntrande samtal tycker jag (fortfarande) att Sprend är på rätt väg. Peter hade en del konstruktiv kritik bland annat av behovet av en riktigt vision.&lt;br /&gt;&lt;br /&gt;Jag försöker undvika läsa deras blogg. Den är så intressant att jag fastnar där i stället för att göra nytta i mitt projekt.  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-8309553256666523932?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/8309553256666523932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=8309553256666523932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/8309553256666523932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/8309553256666523932'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2007/10/mentor.html' title='Mentor'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-4041394504325271047</id><published>2007-09-29T11:22:00.001+02:00</published><updated>2007-10-12T10:22:37.439+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='entreprenör'/><title type='text'>Seriöst entreprenörskap</title><content type='html'>&lt;div class="Section1"&gt;I mina tappra försök att bli en seriös entreprenör skall jag nu genomföra en &lt;a href="http://www.connectvast.se/Default.aspx?oID=6286&amp;amp;lID=1&amp;amp;tID=1&amp;amp;kID=JFELMFPNLJWKYGT"&gt;Språngbräda&lt;/a&gt; hos Connect Väst. Dom har imponerande statistik för företag  som gått igenom Språngbrädan: hälften får riskkapital och hälften anställer minst en person. Det är säkerligen nyttigt för mig och affärsplanen att gå igenom denna process, och jag hoppas det är värt tiden som krävs. Egentligen är jag mest nyfiken på dom kontakter som jag kan knyta när jag väl skuttat över skranket.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;Jag har anmält mig till &lt;a href="http://vast.venturecup.se/sw3658.asp"&gt;Venture Cup Väst&lt;/a&gt; för att dra nytta av workshopen Teamsammansättning. Jag tänker dock inte delta i tävlingen; är det inte bättre att koncentrera sig på sitt projekt än att tävla om bästa affärsplan? Affärsplanen har ju knappast något egenvärde.&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;br /&gt;Webbdagarna var intressanta, om än inte så nördiga som jag önskat, och några kontakter tog jag som är värda att följa upp.&lt;o:p&gt;&lt;/o:p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-4041394504325271047?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/4041394504325271047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=4041394504325271047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/4041394504325271047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/4041394504325271047'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2007/09/serist-entreprenrskap.html' title='Seriöst entreprenörskap'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-1987974207563616981</id><published>2007-09-25T22:48:00.000+02:00</published><updated>2007-10-12T10:23:38.870+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nätverkande'/><title type='text'>Internetworld - Webbdagarna</title><content type='html'>&lt;div class=Section1&gt;  &lt;p class=MsoNormal&gt;Imorgon går jag på &lt;a href="http://iwtjanster.idg.se/webbdagarna/default.asp?include=program&amp;amp;url=/webbdagarna/Default.asp#goteborg"&gt;webbdagarna&lt;/a&gt; i Göteborg. Undrar om jag kommer att träffa några coola nördar och lära mig nåt nytt. Hoppas det.&lt;/p&gt;  &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-1987974207563616981?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/1987974207563616981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=1987974207563616981' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/1987974207563616981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/1987974207563616981'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2007/09/internetworld-webbdagarna.html' title='Internetworld - Webbdagarna'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6252388224694235978.post-8718543923268029671</id><published>2007-09-25T00:40:00.000+02:00</published><updated>2007-09-24T15:37:40.103+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='entreprenör'/><title type='text'>Första inlägget</title><content type='html'>Denna blogg kommer att följa utvecklingen av filöverföringstjänsten Sprend/Skickafilen.se. Syftet är att vara en öppen kanal mot omvärlden. Just nu letar jag efter med-entreprenörer och bloggen blir ytterligare en informationskälla för alla nyfikna.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6252388224694235978-8718543923268029671?l=sprend.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sprend.blogspot.com/feeds/8718543923268029671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6252388224694235978&amp;postID=8718543923268029671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/8718543923268029671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6252388224694235978/posts/default/8718543923268029671'/><link rel='alternate' type='text/html' href='http://sprend.blogspot.com/2007/09/frsta-inlgget.html' title='Första inlägget'/><author><name>Arne Evertsson</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
