Osorterad

Njuice tillbaka igen

Posted in Osorterad on augusti 2nd, 2012 by Clas – 1 Comment

Under 2006 skrev jag om den nyhetsaggregeringssajt som då hette GeekBoys och som omlanserades som Njuice. För att par dagar sedan så re-lanserades Njuice. Andreas skriver själv lite mer om tekniken bakom sajten på sin blog. Samma snubbe driver även sajten Collected.info.

Njuice verkar ha gjort ett bra jobb med marknadsföringen, då det är relativt många som skrivit om sajten, t.ex. TheNextWeb.

Njuice använder tweet från Twitter och shares från Facebook för att hitta nyheter, och för att rangordna dem. Njuice visar mycket bilder, alla hämtade från källans nyhetssida. De har lagt på ett litet ”filter” som dels förminskar bilderna något, dels lägger på ett ”honungsmönster”; antagligen för att det inte ska betraktas som ren ”bildstöld”. Njuice har bara engelskspråkiga källor, och jag har inte hittat något svensk (eller dansk) sajt med bland källorna.

Njuice har även en sökfunktion (baserad på MySQL verkar det som, enligt bloggen). Sökningen vekar inte söka igenom hela artiklar, bara sådant som finns i RSS-data enligt mitt test, även om Andreas skriver att Njuice ”Extracts article content” på sin blogg.

När man klickar på en nyhetsrubrik så hamnar man på ”källsajten”, men får en list längst upp med Njuice logga och sökruta samt med möjlighet att visa nyheten utan reklam (med hjälp av ett så kallat ”readability”-script – en snygg lösning för användaren.

Njuice finns som app på iTunes (en web wrapper) för iPhone och Ipad.

Eniro tar bort nyhetssöket

Posted in Osorterad on juli 20th, 2012 by Clas – Kommentering avstängd

Eniro.se har sedan ett par år haft en ”flik” för nyhetssök, utöver sin person-, företags-, kart- och webb-sök. Eniro kör sin egen person-, kart-, och företagssök och webbsöket är från Google. Nyhetssöket var från AITellU, men Eniro har alltså slutat köpa in det från dem. Lite synd att denna publika nyhetssökmotor försvann, då det var en bra ”benchmark” för min nyhetr.se.



Sökstatistik

Posted in Osorterad on juli 19th, 2012 by Clas – Kommentering avstängd

Jag har gjort ett par sidor där lite statistik om nyhetr.se visas. Just nu finns två sidor. En sida med lite statistik på vilka källor som nyligen uppdaterats och hur många artiklar som indexeras på dag. Den andra sidan visar upp vilka sökningar som gjorts. Denna lista är helt ocensurerad, och omfattar de sökningar som görs på webbsidan, inte via API.

Statistiken om artikelkällorna finns på sidan med källor och listan med sökord på sökordssidan.

Har du förslag på någon mer statistik som du tycker vore intressant att se?

Tour de France 2012 Twitter tweets

Posted in Osorterad on juni 26th, 2012 by Clas – Kommentering avstängd

Jag har gjort en riktig ”old school”-sida, http://nyhetr.se/tdf/ som visar Twitter-inlägg från team och cyklister i kommande Tour de France 2012. Inte någon avancerad sida precis; den hämtar och visar Twitterinlägg. Utseendet är baserat på Twitter Boostrap-mallen så att den blir okej i mobilen också. Mest jobb var det att leta fram de 125 Twitter-konton för team:en och cyklisterna i Tour de France 2012. Twitter-listan är finns på @nicclas/tour-de-france-2012.



Uppdaterad: Jag har nu uppdaterat sidan så att den istället använder Javascript för att visa tweets:en. Javascriptet jag använder är LiveTwitter men där jag hämtar data från Twitter-listan via en cache, så att den inte behöver hämta data från Twitter så ofta.

Öppna data: Stockholmskarta i OpenLayers

Posted in Osorterad on maj 5th, 2012 by Clas – Kommentering avstängd

I samband med att Stockholms stad startade sin tävling ”Open Stockholm Award” så släppte de också lite ”öppna data” som kan/ska användas i tävlingsbidragen.

De flesta av de öppna data som de släppte är statisk information, och inte känns inte superspännande för att basera mobila tjänster på. Då de flesta data är kopplade till karta, på ett eller annat sätt, så kändes det rimligt att börja med att titta på hur kartbilderna som släpptes kan användas på en webbsida. Stockholms stads beskrivning av kartdata finns under geodata, och en beskrivningen av själva kartbilderna finns i en PDF. Eftersom de mellan raderna antyder att det bör vara enkelt att visa dessa Stockholmskarta med OpenLayers, så provade jag med det.

Då jag visserligen använt OpenLayers tidigare, men då med data från OpenStreetMap, som är lite av ”standardkartdata” för OpenLayers och som det finns massvis med exempel för, så anade jag att det skulle ta lite tid att få att fungera.

Efter några timmars experimenterande kom jag fram till koden nedan, som är ett minsta möjliga exempel för att visa kartbilderna. Dessa kartbilder är inte på något vis bättre än andra kartbilder som man kan använda ”mer eller mindre gratis”, som t.ex. Bing Maps, Google Maps, eller OpenStreetMap, och är dessutom begränsad till endast Stockholm.


<!-- Minimalt exempel på hur karta från http://open.stockholm.se/geodata
     kan visas med Javascript-bibliotektet OpenLayers
     Clas Rydergren, reslogg.se   -->
 
< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="EN">
    <head>
<style>
html,body {
  text-algin: center;
  margin: 0 auto;
  padding-top: 20px;
  height: 90%;
  width: 90%;
}
#map {
  width: 100%;
  height: 100%;
  border: 1px solid black;
}
</style>
<script src='http://openlayers.org/api/OpenLayers.js'></script>
</head>
<body>
<div id='map'></div>
<script type="text/javascript">
var extent = new OpenLayers.Bounds(140300,6564000,165000,6595000);
var options = {
  projection: "EPSG:3011",  // SWEREF99 18 00
  displayProjection: "EPSG:3011",
  maxExtent: extent,
  maxResolution: 10
};
var map = new OpenLayers.Map('map',options);
var sthlmURL = "http://openmap.stockholm.se/bios/wms/app/baggis/web/"+
"WMS_STHLM_STOCKHOLMSKARTA_GRA_FORENKLAD?";
var m = new OpenLayers.Layer.WMS('MyMAP',sthlmURL, {layers: 'stockholmskarta_gra_forenklad', type: 'png',
transparent: true, tiled: false},{buffer: 0, visibility: true, isBaseLayer: true} );
map.addLayer(m);
map.setCenter(new OpenLayers.LonLat(161250,6577500));
map.zoomToMaxExtent();
</script>
</body>
</html>

Resultatet av koden finns tillfälligt upplagd på reslogg.se/map.php.

Jag misstänker att jag aldrig kommer att göra något mer med dessa kartor, men för den som vill sätta ihop någon form av ”webbtjänst” för deras tävling (som avslutas den 13 maj) kan kanske komma igång snabbare med detta är vad jag gjorde, med hjälp av detta exempel.

Reslogg version 0.92

Posted in Osorterad on april 11th, 2012 by Clas – Kommentering avstängd

Jag har uppdaterat min allra första Android-applikation till ”version 0.92″, vilket utseendemässigt innbär att jag försökt mig på att rita nya ikoner för appen. Jag kan väl inte riktigt säga att jag designat ikonerna själv, då inspiration har hämtats från diverse ”icon sets” jag hittat på nätet, men jag har i alla fal ritat dem själv – och det tog tid.




Grundfunktionen är exakt densamma som tidigare: starta appen och påbörja loggningen när du påbörjar en ”resa” och stoppa loggningen när du är framme. Under tiden resan pågår kan du markera med vilket färdmedel du reser. Det går naturligtvis att logga vilken typ av resa som helt, t.ex har jag loggat en cykeltur i bilden nedan, men tanken är att använda spåren för att titta på resor med olika färdmedel, framförallt kollektivtrafikresor.



Programmeringsmässigt har jag inte gjort så mycket modifieringar, men ett par i alla fall. Först och främst finns nu en ”timer” som gör att jag kan uppdatera data och gränssnitt utan att nya positioner loggats. Jag använder denna funktion just nu för att beräkna en ungefärlig ressträcka (med hjälp av Haversine-formeln) som visas under resans gång. Jag har också implementerat en funktion som automatiskt stoppar loggning om det är så att du ”glömt att stoppa den”, baserat på om mobilen inte registrerat någon förflyttning under den senaste timmen. Nu går det också att titta på spåren av resorna enkelt direkt från mobilen genom att klicka på ”gå till reslogg.se” som direkt loggar in dig och tar dig till resans sida på Reslogg.se.

Appen finns att ladda hem från Google Play. Gratis, ingen inloggning, och utan reklam.

Reslogg.se med Twitter Bootstrap

Posted in Osorterad on februari 26th, 2012 by Clas – 2 Comments

Jag har byggt min första webbsida baserad på Twitter Bootstrap. Twitter Bootstrap är ett knippe CSS-filer som gör att det går snabbt att få ihop en webbsida med ”modern design” och som anpassar fint även till mindre skärmar. Webbsidan är den till min Reslogg-app, som med Bootstrap ser ut såhär:


reslogg

Twitter Bootstrap lever verkligen upp till målet att bistå med CSS för att snabbt kunna skapa en stilren webbtjänst. Nu har jag kanske inte lyckats till 100% med den ”moderna designen”, men det gick fort och det ser mycket snyggare och modernare ut än när jag använda mig av min egen stil/CSS. Även själva Android-appen till Reslogg har fått en uppdatering, men mest med mindre justeringar av koden så att den ska fungera på några fler Android-versioner.

Min första Android-app Reslogg

Posted in Osorterad on februari 20th, 2012 by Clas – Kommentering avstängd

Jag har programmerat min första Android-app. Android-appar programmeras i Java, och använder man IDE:t Eclipse med Abdroid SDK-plugin så blir det väldigt lika att programmera en vanlig applikation i Java. I Eclipse finns stöd för en Android-mobil-emulator så att det är enkelt att provköra app-koden direkt från Eclipse, i emulatorn. I Eclipse finns också stöd för att konstruera layouter via grafiskt gränssnitt, istället för att skapa dem direkt i XML-kod. Stödet för att debugga sin kod när den kör på mobilen finns ocskå, även om det kanske inte är supersmidigt.

Det som gör Android-app-programmering lite mer komplicerat än kodning av normala applikationer är att Android är mer komplext när det gäller när ”programmet” kan avbrytas, startas, eller starta om. Själva livscykeln för en app är lite lurigare. Det märks t.ex. när ens första app (Activity) byter från stående till liggande format; då görs en ny ”onCreate” vilket är samma kod som när körs när applikationen startar för första gången. Det känns lite förvirrande. Men det finns naturligtvis lösningar på det. Det kan också skapas konstigheter när man vill komma tillbaka till appen t.ex. via en ”notificaton” i den där rullgardinsmenyn, vilket initierar en ”nystart”. Det sätt jag hittat på att ”lösa” det är att se till att det bara startas en instans av appen, vilket kan göras med android:launchMode=”singleTask” i manifest-filen. Den finns också saker som gör app-programmering enklare. Det finns t.ex. en ”färdig” SQL-databas som kör i din Android-mobil färdig att spara data i. Det finns också många bra bibliotek utvecklade för saker som asynkron uppladdning av data etc.

Appen jag programmerat heter Reslogg. Appen är enkel och består i princip bara av en service loggar din position via telefonens GPS. Tanken är att du ska starta appen när du påbörjar en resa, och stoppa den när du är framme. På så sätt delar du med dig av ett ”resespår”, vilket jag har tänkt använda för att kalibrera trafikmodeller. Under tiden som appen spårar en resa så finns det också möjlighet att ”mata” den med information om vilket färdmedel du just nu använder. Informationen är tänkt att användas för att ”lära” tjänsten hur de olika färdmedeln ”ser ut”, men det är inget krav att du matar in den.

Ditt resespår laddas upp till sajten Reslogg.se.

På sajten kan du titta på dina spår. Tanken är att sajten, automatiskt, ska hjälpa till med att beräkna restider med olika färdmedel och väntetider. Sajten är fortfarande under utveckling, och såhär långt finns bara möjlighet att titta på dina resor på en Google-maps-liknande karta. Med många resespår skulle det gå att t.ex. ge förslag på andra resor, eller ge dig en bild av hur mycket du skulle vinna på att t.ex. cykla till en annan hållplats.

Om du vill prova min app så finns den på Android Market med namnet reslogg. Det kostar $25 för att få möjlighet att publicera på Market, men genom att sprida den där så ges man också möjlighet att ”påminna” de som laddat ner en version av appen om uppdateringar. En god investering även vid mycket få nedladdningar känns det som, tycker jag.

I appens ”info-meny” hittar du det användar-ID som du behöver för att titta på dina resor på Reslogg.se. Logga ingen resa som du vill hålla hemlig bara!

Delningar av nyheter på Facebook och Twitter

Posted in Osorterad on augusti 28th, 2011 by Clas – Kommentering avstängd

Nyhetr.se har fått en ny liten funktion; för varje ”toppnyhet” så visas hur mycket den har delats på Facebook och Twitter. I den första versionen så uppdaterades data endast när nya ”toppnyheter” genererades, men i nuvarande, andra versionen, så uppdateras data mer kontinuerligt. Just nu visas antal delningar bara under Aktuellt-filken, men det är enkelt att lägga till det på alla sidor, om det skulle visa sig fungera bra.




Toppnyheterna tas dock fortfarande fram genom nyhetr.se:s ”wordbust”-teknik, och antalet delningar påverkar inte var länken visas på sidian. Utöver att kunna se antalet delningar så lagrar jag naturligvis antalet, så att det i framtiden, till exempel kommer att gå att göra ”topplistor” över vlika nyhter som delats mest, utan att behöva fråga Facebook och Twitter igen. Även statistik på vilken av de två tjänsterna delningar av nyhetslänkar är störst går naturligtvis att ta fram. Min gissning, efter att ha provkört mitt script någon timme, är att Facebook över överlägset Twitter när det gäller antalet delningar som en nyhet får, ofta med en faktor 10.

Funktionen är inte svår att programmera för den som önskar göra något liknande för andra sidor, och det behöver naturligtvis inte vara nyhetsartiklar som antalet delningar (Share) på Facebook och Twitter visas för, det kan var vilka webbsidor som helst. Facebook, Twitter och LinkedIn har officiella eller inofficiella URLs för att hämta antal delningar.

Till exempel ger anropet:

 
http://urls.api.twitter.com/1/urls/count.json?url=http://www.frisim.com

följande svar från Twitter om antal delningar i JSON-format:

{"count":2,"url":"http://www.frisim.com/"}

och anropet:

 
http://graph.facebook.com/http://www.frisim.com

till Facebooks API, ger:

{
   "id": "http://www.frisim.com",
   "shares": 3
}

Något som inte framgår så väl av exemplen ovan är att både Facebook och Twitter normaliserar de länkar man skickar in, så att man får med en URL i utdata kan vara användbart, speciellt om man vill ha hjälp med URL-normalisering (Normalisering innebär tvättning av URL:ar med hänsyn till ”konstiga” parametrar i länken som inte påverkar till vilken sida de leder.) Normalisering är svårt, och den fungerar lite olika hos Facebook och Twitter. Hur ”rätt” data från dessa API:er är, är också svårt att ta reda på, men det jag sett hittills ser i alla fall rimligt ut.

Lite inspiration till att göra dett fick jag från Slashat-Tommie och hans webbsida tugg.nu, men framförallt från tråden See how many times a URL has been shared on FacebookHacker News för nästan ett halvår sedan.

Billigare sökmotor på EC2

Posted in Osorterad on juli 5th, 2011 by Clas – Kommentering avstängd

Sedan den första juli så har Amazon AWS sänkt priset för inkommande datatrafik till noll. Inkommande trafik till servrar är normalt en mycket mindre del än den ”utgående” trafiken. Inkommande trafik består till stor del av anrop till servern med begäran om vilka webbsidor som ska skickas tillbaka. Anropen har mycket mindre storlek än webbsidan, normalt. När man hyr co-location-plats, VPS, eller server så är det sällan någon som bryr sig om inkommande trafik, utan oftast så debiteras man för utgående trafik enbart, säg att du får betala en högra avgift om du har mer än t.ex. 50GB utgående trafik per månad. Det krävs en relativt stor sajt (eller mycket bild eller film på sajten) för att nå den gränsen. Utgående trafik kostar fortfarande $0.12 per GB hos Amazon.

Om man kör en sökmotor på servern, som nyhetr.se så är majoriteten av trafiken ”inkommande” – inhämtningen av webbsidor till servern. Det har gjort att det varit relativt ”dyrt” att köra sökmotor på en Amazon EC2 jämfört med att köra på en egen server. I och med prissänkningen, till gratis inkommande trafik, så blir det mer attraktivt. Nyhetr.se har inte mycket mer än 100GB inkommande trafik per månad, så jag sparar väl inte mycket mer än $10 per månad, men samtigit blir det lite mer lockande att hämta in mer data, oftare, nu när det är gratis.