July 24, 2014

Weblog der Fachschaft Informatik

Prüfungsamt

Weblog der Fachschaft Informatik

Dass im Prüfungsamt in letzter Zeit nicht immer alles rund lief, ist seit längerem bekannt. Jedoch hat sich in inzwischen einiges getan und deshalb möchten wir euch an dieser Stelle ein paar Tipps geben, wie ihr lange Wartezeiten vermeiden könnt und nebenbei auch dem Prüfungsamt die Arbeit ein wenig erleichtert:

  1. Wenn ihr eine Leistungsübersicht braucht, euren Prüfungsplan abholen wollt o.ä. könnt ihr 1-2 Tage vorher eine E-Mail schreiben, dann müsst ihr erstens nur einmal anstehen, zweitens könnt ihr auch darum bitten, dass Leistungsübersicht etc. im SSC hinterlegt werden. Dort sind längere Öffnungszeiten und kürzere Warteschlangen. Es ist außerdem möglich, die Leistungsübersicht auch als pdf-Datei per E-Mail zu bekommen.
  2. Derzeit dauert es nur 2-3 Tage bis Prüfungen im QIS eingetragen werden, also bitte benutzt die Briefkästen. Wenn die Frist naht und ihr noch nichts seht, könnt ihr im Prüfungsamt anrufen oder eine E-Mail schreiben und nachfragen. Das ist im Zweifel für die Mitarbeiter weniger Aufwand, als wenn jeder einzeln seine Zettel da abgibt.
  3. Zum Prüfungsplan (Master): Wenn ihr mehr als 12LP Abweichung vom vorgegebenen Studienplan habt, bitte geht vorher zum Prüfungsausschussvorsitzenden und lasst euch das genehmigen. Der Mentor darf das dann nicht mehr alleine entscheiden und für die Mitarbeiter im Prüfungsamt ist es ein enormer Aufwand jeden einzelnen Plan zu prüfen und ihn dann im Zweifel an den Prüfungsausschuss weiterzureichen.
  4. Der Anmeldezeitraum ist mittlerweile auf 4 Wochen verlängert worden. Der große Ansturm ist in der 4. Woche. Wer dem entgehen will, stelle sich in der 1.Woche an, da ist wenig bis gar kein Andrang.

Eine kurze Übersicht über alles weitere bietet dieses Informationsblatt für Master-Studenten.

July 23, 2014

Posted by: [personal profile] t_fischer

It has been more than a year since my original posting (‘Filesystem for large USB storage devices?’), but the issue still exists. I did some research on this topic and found the following relevant links:

  • There has been a patch for ext[234] floating around since 2012 that would introduce mount options to enforce UID and GID similar how it already exists for vfat mounts. LWN has an article on this topic: http://lwn.net/Articles/497106/
    Here is the discussion LWN is referring to: http://thread.gmane.org/gmane.comp.file-systems.ext4/32276/
    I wonder why nothing more happened here. There were some nay-sayers which seem to discourage the original patch author and eventually choked the discussion. Great job, guys :-P
Read more... )

comment count unavailable comments

July 21, 2014

Weblog der Fachschaft Informatik

Update: Vorlesungsumfrage

Weblog der Fachschaft Informatik

Das Ziel von 40% Teilnehmern innerhalb der Vorlesungszeit haben wir dieses Semester leider verfehlt, deswegen wird es morgen beim Grillen (18.00 Uhr Grillplatz hinter Gebäude 48) auch kein Freibier geben :(
Dennoch würden wir uns sehr freuen, wenn noch mehr Feedback zu den Lehrveranstaltungen gegeben wird.

Als Motivation hier noch ein bisschen Statistik zur aktuellen VLU:

Teilnehmer:
Auswertbare Lehrveranstaltungen:

PS: Es wird nach wie vor das Tablet verlost!

July 09, 2014

Die letzte Mail, die mir mitteilte, meine neue KabelBW-Rechnung sei nun online abrufbar, verwies mich auf https://app.unitymedia.de/kundencenter/sitzung/anmelden. Mein Login-Versuch wurde mit “Logindaten falsch” quittiert. Was solls, Passwörter vergisst man schon mal, also Rücksetzfunktion benutzen und auf ein neues. Jetzt mit ganz sicher den richtigen Zugangsdaten – sollte man meinen. Wieder dieselbe Fehlermeldung. Ende vom Lied: […]

Weblog der Fachschaft Informatik

Das BIER-O-METER am

Weblog der Fachschaft Informatik

Wenn bis zum 20.07.2014 min. 40% von euch an der Vorlesungsumfrage teilnehmen, gibt es beim Fachschaftsgrillen am 22.07.2014 Freibier! und andere Softdrinks…

Loading…

July 07, 2014

Quick tip: If you notice that after the installation of Visual Assist your Visual Studio Image Watch plug-in stopped working and all your matrices are marked with the tag [invalid], then just disable the VA Step Filter:

  1. VAssistX → Visual Assist Options → Debugger
  2. Uncheck the field that says “Enable VA Step Filter”
  3. Restart Visual Studio

Image Watch: invalid matrices

June 25, 2014

When trying to copy an object with AngularJS’ copy() it might be that Angular throws a RangeError. This is the case if your object has circular dependencies which is troublesome [...]

June 23, 2014

Weblog der Fachschaft Informatik

Vorlesungsumfrage

Weblog der Fachschaft Informatik

Die Vorlesungsumfrage läuft wieder. Wenn du Informatik studierst solltest du alle Informationen dazu in einer E-Mail haben. Aber selbst wenn du keine solche E-Mail hast, gehe auf https://vlu.cs.uni-kl.de/ und nimm an der VLU teil. So hast du auch die Chance einen der Preise zu gewinnen.

VLU02

June 22, 2014

Guenther Noack

Burn Down Chart

Guenther Noack

June 19, 2014

Philipp Hasper

Remote Android emulator

Philipp Hasper

I often use the Android emulator to check my apps with different display configurations and to stress-test them. But the problem is that it is really slow on my development laptop. So I installed the Android emulator on my desktop PC running Windows and connect to it over my LAN. The major advantage is that you can continue using your development machine while a “server” deals with emulating – one could even emulate several devices at once and still continue programming.

The approach in a nutshell: Forward the emulator’s port so that it is accessible in the local network. Then connect the ADB to it.

On your desktop – the “server”:

  1. Store the executable of Trivial Portforward on the desktop system (e.g. directly in C:\trivial_portforward.exe).
  2. Create a virtual device to emulate (HowTo) and name it “EmulatedAndroid”.
  3. Create a batch file:
    <your-android-sdk-path>\tools\emulator -avd EmulatedAndroid &
    echo 'On the development machine: adb kill-server and then: adb connect <desktop-pc-name>:5585'
    C:\trivial_portforward 5585 127.0.0.1 5555
  4. If you execute this batch file on your desktop PC, it will open the emulator with the specified virtual device.

Now on your laptop – the “client”:

  1. Now – given that both systems are in the same network – you can connect to the emulator from your laptop by typing in a terminal:
    adb kill-server
    adb connect <desktop-pc-name>:5585
  2. Now you can upload apps, access the logcat and execute adb commands on your remote emulator like on any other Android device. And all without performance impairments on your workstation.
  3. If you are experiencing communication losses, increase the emulator timeout in the eclipse settings to maybe 5000 ms (Window → Preferences → Android → DDMS → ADB connection time out (ms)).

June 11, 2014

Romain Schmitz

Git: bad object HEAD

Romain Schmitz

I’ve never had this error before and I also didn’t know what could have caused this issue. In my specific case I could no longer use the commands status and [...]

May 29, 2014

Every once in a while I start a new computer vision project with Android. And I am always facing the same question: “What do I need again to retrieve a camera image ready for processing?”. While there are great tutorials around I just want a downloadable project with a minimum amount of code – not taking pictures, not setting resolutions, just the continuous retrieval of incoming camera frames.

So here they are – two different “Hello World” for computer vision. I will show you some excerpts from the code and then provide a download link for each project.

Pure Android API

The main problem to solve is how to store the camera image into a processable image format – in this case the android.graphics.Bitmap .

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
		int height) {
	if(camera != null) {
		camera.release();
		camera = null;
	}
	camera = Camera.open();
	try {
		camera.setPreviewDisplay(holder);
	} catch (IOException e) {
		e.printStackTrace();
	}
	camera.setPreviewCallback(new PreviewCallback() {

		public void onPreviewFrame(byte[] data, Camera camera) {
			System.out.println("Frame received!"+data.length);
			Size size = camera.getParameters().getPreviewSize();
			/*
			 * Directly constructing a bitmap from the data would be possible if the preview format
			 * had been set to RGB (params.setPreviewFormat() ) but some devices only support YUV.
			 * So we have to stick with it and convert the format
			 */
			int[] rgbData = convertYUV420_NV21toRGB8888(data, size.width, size.height);
			Bitmap bitmap = Bitmap.createBitmap(rgbData, size.width, size.height, Bitmap.Config.ARGB_8888);
			/*
			 * TODO: now process the bitmap
			 */
		}
	});
	camera.startPreview();
}

Notice the function convertYUV420_NV21toRGB8888() which is needed since the internal representation of camera frames does not match any supported Bitmap format.

 

Using OpenCV

This is even more straight-forward. We just use OpenCV’s JavaCameraView. If you are new to Android+OpenCV, here is a good tutorial for you.

cameraView = (CameraBridgeViewBase) findViewById(R.id.cameraView);
cameraView.setCvCameraViewListener(this);

May 15, 2014

Weblog der Fachschaft Informatik

Tagesgeschäft der Fachschaft Informatik

Weblog der Fachschaft Informatik

upload

May 08, 2014

Weblog der Fachschaft Informatik

Fachschaftsaufräumen am Samstag

Weblog der Fachschaft Informatik

Nachdem letzte Woche mangels Zeit nicht aufgeräumt wurde wird es wieder
höchste Zeit den Couchraum und die GMF auf Vordermann zu bringen! Daher
hoffe ich am Samstag diese Woche (das ist der 10.05.) um 10 Uhr wieder
auf eure fleißige Mithilfe. Wer keinen Schlüssel hat wird
hereingelassen, wenn er in der Fachschaft anruft (Telefonnummer
0631-2052553).

May 06, 2014

Weblog der Fachschaft Informatik

Der neue Fachschaftsrat

Weblog der Fachschaft Informatik

In der heutigen Vollversammlung wurden folgende Personen zum neuen Fachschaftsrat gewählt:

  1. Sarah Dossinger (55 Stimmen)
  2. Jan Holub (54 Stimmen)
  3. Markus Fögen (53 Stimmen)
  4. Marvin Petersen (48 Stimmen)
  5. Šandor Dalecke (47 Stimmen)
  6. Daniel Danger (42 Stimmen)
  7. Rouven Bauer (41 Stimmen)
  8. Patrick Hansert (38 Stimmen)
  9. Eva-Maria Zimmer (34 Stimmen)
  10. Tobias Krafft (25 Stimmen)
  11. Marco Stricker (25 Stimmen)

Wir danken allen die uns ihr Vertrauen ausgesprochen haben. Die konstituierende FSR-Sitzung findet morgen, am 07.05., um 17:00 Uhr im Raum 48-462 statt. Dort werden auch die Referate neu vergeben.

May 04, 2014

Wirtschaftsunternehmen können nicht demokratisch funktionieren? Vielleicht doch. Ein Interview zur gelebten Demokratie bei Umantis.

May 03, 2014

When developing for/with OpenCV using Visual Studio, the Image Watch plug-in is very useful. However, it does not support the new cv::Matx types (e.g. cv::Matx33f which is the same as cv::Matx<float,3,3> ). Here is how I made use of debugger type visualizers to customize the plugin:

  1. Go to the folder <VS Installation Directory>\Visualizers\ and create a new file called Matx.natvis
  2. Open the file and insert the following:
    <?xml version="1.0" encoding="utf-8"?>
    <!-- Philipp Hasper, http://www.hasper.info-->
    <AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
      <UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" MenuName="Add to Image Watch"/>  
    
    	<Type Name="cv::Matx&lt;*,*,*&gt;">
    		<UIVisualizer ServiceId="{A452AFEA-3DF6-46BB-9177-C0B08F318025}" Id="1" />
    	</Type> 
    
    	<Type Name="cv::Matx&lt;*,*,*&gt;">
    		<DisplayString Condition='strcmp("float", "$T1") == 0'>{{FLOAT32, size = {$T3}x{$T2}}}</DisplayString>
    		<DisplayString Condition='strcmp("double", "$T1") == 0'>{{FLOAT64, size = {$T3}x{$T2}}}</DisplayString>
    
    		<Expand>
    		<Synthetic Name="[type]" Condition='strcmp("float", "$T1") == 0'>
    			<DisplayString>FLOAT32</DisplayString>
    		</Synthetic>
    		<Synthetic Name="[type]" Condition='strcmp("double", "$T1") == 0'>
    			<DisplayString>FLOAT64</DisplayString>
    		</Synthetic>
    
    		<Item Name="[channels]">1</Item>
    		<Item Name="[width]">$T3</Item>
    		<Item Name="[height]">$T2</Item>
    		<Item Name="[data]">(void*)val</Item>
    		<Item Name="[stride]">$T3*sizeof($T1)</Item>
    		</Expand>
    
    	</Type>
    
    </AutoVisualizer>
  3. You don’t even have to restart Visual Studio. Just start a new debugging session and you can look at your cv::Matx types.

Image Watch for cv::Matx

More about customizing the Image Watch plug-in can be found here.

May 02, 2014

Everyone who knows me in person or has followed my social network posts over the past year will have heard or read my gushing about how much I love Roller Derby. It has been about a year since I started. I have NSOed (see below) 20 women’s bouts, 2 junior … Continue reading

Jan Bormann

My tiny todo list

Jan Bormann

Auf der Suche nach einem einfachen Weg meine todoliste online auf meinem eigenen Server zu pflegen bin ich über mytinytodo gestolpert. Im folgenden eine Anleitung wie sie auf einem Uberspace-Account eingerichtet werden kann. Ziel ist es, dass die Todoliste anschließend unter “www.domainname.tld/todo” erreichbar ist. Wir beginnen mit einigen Schritten in der Konsole: [crayon-53678ef83d1b7836792755/] [crayon-53678ef83d1c9850913109/] [crayon-53678ef83d1cf644051905/] […]

April 29, 2014

For a couple of years I have used OpenCV for Android and developed with Eclipse. But a while back I started a bigger project which will run on stationary machines so I began to learn how to use Visual Studio 2013. The integration of OpenCV 2.4.8 was fairly easy and I was quickly able to run my code.

(Just as a service since the library names on the given site are outdated – here are all the names for easy copying:)

opencv_calib3d248.lib
opencv_contrib248.lib
opencv_core248.lib
opencv_features2d248.lib
opencv_flann248.lib
opencv_gpu248.lib
opencv_highgui248.lib
opencv_imgproc248.lib
opencv_legacy248.lib
opencv_ml248.lib
opencv_nonfree248.lib
opencv_objdetect248.lib
opencv_ocl248.lib
opencv_photo248.lib
opencv_stitching248.lib
opencv_superres248.lib
opencv_ts248.lib
opencv_video248.lib
opencv_videostab248.lib
opencv_calib3d248d.lib
opencv_contrib248d.lib
opencv_core248d.lib
opencv_features2d248d.lib
opencv_flann248d.lib
opencv_gpu248d.lib
opencv_highgui248d.lib
opencv_imgproc248d.lib
opencv_legacy248d.lib
opencv_ml248d.lib
opencv_nonfree248d.lib
opencv_objdetect248d.lib
opencv_ocl248d.lib
opencv_photo248d.lib
opencv_stitching248d.lib
opencv_superres248d.lib
opencv_ts248d.lib
opencv_video248d.lib
opencv_videostab248d.lib

But then I experienced a strange behaviour: Every time an exception or assertion was thrown inside of an OpenCV method, I would have no clue what happened since the call stack had only four entries: Something about KernelBase.dll, msvcr120d.dll, opencv_core248.dll and the last one “Frames below may be incorrect and/or missing, no symbols loaded for opencv_core248d.dll“.

Frames below may be incorrect and/or missing, no symbols loaded for opencv_core248d.dll

Upon further examination (clicking on the opencv_core248d.dll entry) Visual Studio revealed that the .pdb file was missing: it said “opencv_core248d.pdb not loaded” and “opencv_core248d.pdb could not be found in the selected paths“.

opencv_core248d.pdb not loaded. opencv_core248d.pdb could not be found in the selected paths

I quickly found some .pdb files in C:\opencv248\build\x86\vc12\staticlib but since they did not match the .dlls, they did not work either. So what to do? Essentially we have to build OpenCV ourselves but we will leave out any 3rd party libraries since we only want to debug, not to have fast code (of course you can build a complete version but I didn’t do it in order to save time). In the following I will describe only the basic steps, for a full documentation including pictures and how to add performance-improving 3rd party libraries visit the original tutorial.

  1. I assume you have an OpenCV copy, e.g. under C:\opencv248\ . The folder contains a build and a sources folder.
  2. Install CMake
  3. Start CMake (cmake-gui). It should be in your start menu. Enter C:\opencv248\sources in the first field (“Where is the source code:”) and a freely chosen path e.g. C:\opencv248\ownBuild\ in the second one.
  4. Press “Configure” and select your compiler – for Visual Studio 2013 32-bit it would be “Visual Studio 12″. I then ignored a warning about Java AWT and python missing and pressed the “Generate” button.
  5. Wait for the process to finish, then open C:\opencv248\ownBuild\OpenCV.sln. Build both Debug and Release configuration which should take some time.
  6. After the build, go into C:\opencv248\ownBuild\bin. There are two folders containing all files you will need. Now you have two options:
    1. Remove any directory previously leading to the OpenCV dlls from your PATH (e.g. in my case I removed C:\opencv248\build\x86\vc12\bin ) and then add C:\opencv248\ownBuild\bin\Debug and C:\opencv248\ownBuild\bin\Release to your PATH.
    2. Remove any directory previously leading to the OpenCV dlls from your PATH. Then move all .dll and .pdb files from the Debug and Release folder to a “save” place, e.g. C:\opencv248\debuggableDLL. Add this folder to your PATH, then delete the whole C:\opencv248\ownBuild\ folder to free disk space.
  7. Restart Visual Studio and start a debug session. Now the call stack shows exactly what happened: The call stack now shows the correct lines
  8. Remember to switch back to the optimized dlls when doing performance testing!

If you don’t want to build this all by yourself, here is the result of the build process for Visual Studio 2013 32-bit (the original size of >800MB is compressed to 80MB). To download the archive, activate JavaScript, enter “vsopencv” in the following field and then click the download button. Uncompress the archive with 7-zip and then perform step 6.b.

Enter password

Wer macht mit?