Alles wat ik tegen kom in mijn dagelijkse werk en hobby als software engineer

Audio sharing for iOS applications

Door Elephtera op maandag 25 oktober 2010 09:12 - Reacties (7)
Categorie: Software Engineer Related, Views: 2.954

Tijdens het programmeren voor de iPhone/iOS kwam ik een vervelend probleem tegen. Zonder de telefoon te jailbreaken is het niet mogelijk om op een nette manier audio/data te delen.

Data valt nog wel te delen door een NSURL te gebruiken, maar hier zit een limiet op van 256 characters. base64 wil hier nog wel wat mee helpen maar echte data kan niet.

Fotos/videos kun je benaderen via de image picker. het is niet triviaal om de data dan ook te benaderen, maar het is mogelijk.

Audio daarentegen is een heel ander verhaal. Apple heeft een aantal keuzen gemaakt die het delen van audio niet toestaan:
- elke applicatie draait in een sandbox
- de audio/itunes library is niet officieel toegankelijk

Omdat we sandboxed draaien kun je niet de data benaderen van andere applicaties (bijvoorbeeld de dictafoon). Hier ben ik een tijdje mee bezig geweest om een oplossing te vinden.

- Als beide applicaties identiek gesigned zijn kun je de keychain gebruiken, maar ook daar zit een limiet op qua data grootte
- NSUserDefaults, hier kan alleen basale data in (nsxxx zoals nsdata, nsstring, etc) en ook al lijkt dit voor suites bedoeld te zijn, het blijft binnen de sandbox en is dus ook onbruikbaar. Het is eigenlijk alleen bedoeld voor 1 applicatie die zijn instellingen wil onthouden
- NSURL's gebruiken, alleen heb je dan de max 256 character limiet. Dit kan wel gebruikt worden om een applicatie te wijzen op de locatie van bepaalde data
- UIPasteBoard: data kopieren en plakken voor de gehele iphone. Dit klonk veel belovend, werkt ook, maar blijkt een limiet te hebben rond de 5MB. Echter dit is een stuk meer dan de 256 char van een nsurl.

Bij het zoeken in combinatie met de uipasteboard vond ik een project dat zichzelf neerzet als open standard for sharing audio data between applications: http://code.google.com/p/intua-audio-sharing/

Zij bieden een stukje code waarmee de audio in stukken gehakt wordt waarmee de 5MB grens opgelost wordt. De 5 MB limiet blijkt namelijk per uipasteboard item te zijn.
Hun code biedt ook de code om de data weer terug te halen van de pasteboard.

Tot apple in de toekomst misschien wel mogelijkheden hiervoor biedt moeten we moeilijk doen, en kunnen we het beste allemaal dezelfde standaard gebruiken.

uTorrent as a service on windows Vail en

By Elephtera on Sunday 24 October 2010 13:59 - Comments (15)
Category: Software Engineer Related, Views: 6.162

I have been using WHS for some time now, and because I finally had some time I moved to a new server running windows VAIL a.k.a. WHS v2

Installing was easy
Moving the data was easy. (just go to vail, and move the data from the old to the new server in the network environment)

As I now have a server that can use sata disks I wanted to run utorrent on the server
The existing tutorials are for WHS v1 and there is little to find on running custom services on windows server 2008. And even less for the R2 or vail versions.

Because it was so hard to find the easy sollution I wrote this simple blog.

HOWTO install uTorrent as service on Windows 2008/Vail

Install uTorrent as normal user
open an administrator commandline (start - rightmouse on cmd - run as administrator)
enter the following command:

sc \\SERVER create uTorrent binpath= "cmd /c \"path to utorrent\" "

In the default case this is:
sc \\server create uTorrent binpath= "cmd /c \" C:\Program Files (x86)\uTorrent\uTorrent.exe\" "

\\SERVER is the network server location (see sc /?)
uTorrent is the name you want the service to show up with in the service
binPath= "path" (Don't forget the space after the equal sign)

This command will install a new service that runs cmd, which in itself runs utorrent
cmd is closed because it is not a valid service. But because it forked uTorrent it will leave uTorrent running in the background.

After adding the service go to the service configuration and make sure it runs as the user where you installed it. This makes sure it uses the correct settings, including possible web UI settings.

note1. Make sure the webUI uses a non default port, otherwise it conflicts with the Vail webserver. I use 8080.

note2. The service gives a 1053 error. this is because cmd is closed. Check to see if uTorrent runs in the process tab of the task manager

niet werkende plugins in FF

Door Elephtera op vrijdag 9 juli 2010 01:51 - Reacties (5)
Categorie: Software Engineer Related, Views: 2.573

Tijdens de reinstall vandaag kwam ik ook een ander probleem tegen. Ik had een custom plugin voor firefox. Werkt enkel in Firefox, geen probleem. Draait prima naast chrome.
Maar ik kreeg firefox maar niet zo ver dat het de plugin accepteerde.

~/.mozilla/plugins werkte niet
/usr/lib/mozilla/plugins werkte niet

Wat nu? Meerdere oplossingen geprobeerd, uiteindelijk uit wanhoop zelfs handmatig de nspluginwrapper handmatig gebruikt. Deze kon de plugin vinden, maar in firefox nog niks.

Firefox vanaf de commandline starten gaf ook geen extra informatie. Geen verbose optie of andere foutmeldingen.

Ik herinnerde me dat de oude install versie 3.5 draaide van firefox. Die heb ik gedownload en daarna proberen te starten. firefox starten gaf een foutmelding. maar "run-mozilla.sh firefox" werkte wel. En toen kreeg ik opeens wel feedback over wat er allemaal aan de hand was.

Error: cannot restore segment prot after reloc: Permission denied

Een simpele zoek opdracht in google vertelde mij dat ik SELinux uit moest zetten.
Zo gezegd zo gedaan. SELinux uit, en de plugin werd gevonden door firefox.

Een verbose optie van firefox had me een boel ellende gescheeld...

rake db:create

Door Elephtera op vrijdag 9 juli 2010 01:24 - Reageren is niet meer mogelijk
Categorie: Software Engineer Related, Views: 1.291

Vandaag probeerde ik na een reinstall rails weer de lucht in de slingeren. rake db:create gaf daarbij een leuke melding dat het de database niet kon aanmaken. Waarom? Geen idee. Bij de vorige installatie ging het prima.

Al vrij snel was duidelijk dat de mysql server niet helemaal lekker samen werkte met rails.
Allereerst moest ik de gem mysql nog installeren. Al haalde dat weinig uit voor de foutmelding.

Na lang zoeken op internet kwam ik vervolgens iets tegen voor de mac (http://www.ultrasaurus.co...arted-with-rails-2-day-1/) Zij melden dat de gebruikersnaam/wachtwoorden in de database.yml file wel correct moeten zijn, anders ontstaan er problemen.

Ik heb wat zitten knoeien met het root account van mysql. Dat loste niks op. Ik heb mijn eigen user account toegevoegd aan mysql, dat bood ook geen soelaas. Heel vreemd. want met dezelfde database.yml file kon ik voor de reinstall nog wel overal bij en ging de db:create probleemloos.

Uiteindelijk heb ik alle accounts uit database.yml handmatig toegevoegd. Daarna werkte het weer. Geen perfecte oplossing, en het probleem schuilt hem waarschijnlijk in een versie of config verschil tussen de oude mysql/rails en de nieuwe versie.