#bcg15 / AppDevCamp Day One

Yesterday was day one of the BarCampGraz and with it the AppDevCamp. There were already quite a few people for friday. Registration went fine form most of the people, and we could sort out the little hustles. However we started a little bit late with the main program. This was less a problem than I thought however, as for the first time the welcome round, where everyone tells his name and only his three tags really worked, and this was rather quick. Planning was more chaotic again, but as we did not have strictly more sessions than Program that went fine.

Sessions

Overal there were many good session topics that day. I a, really sad I missed the hands on live mapping tutorial for open street map, session on sharing complex knowledge, and actually the fandom session, as I am not only a computer geek in my heart, and would love to have been there. The overal program is on the BarCamp Side.

For the AppDevCamp we had 3 Sessions that day. There is a shared documentation for all AppDevCamp Days found in this side, where you also find the 3 I mention now. 

It started with a old and still hot topic on CrossPlattform development. This was a rather full discussion with sharing of practices, strengths and weaknesses of the solutions and so on. My recap was that now there are actually not only small but also large projects done with Hybrit Dev. Solutions. However, we agreed that it is hard to select the right framework. SenchaTouch and Cordova stand out a little bit, Qt might be promising as well. Also we agreed that it depends on your customer / graphical perfectionism. If you need to move a button a pixel left, change the amount if gray a few points in the scale, native is still the way to go. Also a important point it to be featured in the App Store/Marketplace, you want to quickly adopt the UI if a OS update with UI change comes up. Which is more and more frequent. In that case you want to update the UI to be featured / to be kept featured in the AppStore/Marketplace. And that usually works quicker if you have a native UI. Additionally we discussed the problem that many frameworks (like Appacdelerator) use at least non custom CSS / JS, almost define a own DSL. There you bind yourself quite a lot to the framework and often the development of those frameworks drop out of development. So in the end we found out it depends. But at least we shed some light on the current state I think.

Second Session was about Android Root and what you can make with it. Here especially we talked about tools, Multirom and custom restore are for sure tools I will try those and I think they can also be used for Dev. The one is like a boodloader allowing multiple Android versions on the phone, the other allows to create custom android restores to easily switch back or switch between versions. This really creates the safety net to start messing around with your system. Another point was privacy. With root tools like XPrivacy or the exposed framework get possible. I am somewhat twisted here, as on the one hand this is good, but for the normal user (so my parents f.e. I do not want to have root enabled anyway) so they are not a long term solutions, bur for us techies is is a way to go….

In the last session we talked about our Registration System, this is a OS tool for BarCamp registration. It is on GitHub and everyone is free to fork and send Paul who is mainly responsible push request. We would need the possibility to not only unregistered but change the date Smilie: :). Anyway we talked about the reasons why it is that way. This will be a own blog once I guess so I leave that out!

Posted in Uncategorized

Register Today, this WE is AppDevCamp!

This Weekend (17-19. April) is the AppDevCamp (former iCamp) for the 5th time in Graz. This is a Event to exchange experiences in mobile application development and networking for all app developers who can make it there. It is part of the larger BarCamp Graz, who has 5 camps in total, and about 300 people are expected to meet over the weekend. More info on the HP

If you are interested about native development of apps or about HTML5 App Development, but also in Topics like App Marketing, Project Management and similar go there and exchange your experiences!

HOWEVER: Register today! Registration is Required and expected to close tomorrow!
Registration Link

Posted in Uncategorized

On Bonny Tyler and forgetting/not finding that sunglasses

So, I had these eclipse sun glasses once. But I forgot them at home (and would probably not find them). That triggered that the text of Bonny Tyler with slightly modified lyrics circulated in my head. I still would need a suggestion for some passages, but generally here it is:

Turn around, every now and then
I get a little bit lonely and you’re never coming round
Turn around, every now and then
I get a little bit tired of listening to the sound of my tears

Turn around, every now and then
I get a little bit nervous that the best of all the years have gone by
Turn around, every now and then
I get a little bit terrified and then I see that I look with my eyes

Turn around, blind eyes
Every now and then I fall apart
Turn around, blind eyes
Every now and then I fall apart

Turnaround, every now and then
I get a little bit restless and I dream of something wild
Turnaround, every now and then
I get a little bit helpless and I’m searching like child for some glass

Turnaround, every now and then
I get a little bit angry and I know I’ve got to get in and cry
Turnaround, every now and then
I get a little bit terrified but then I try to look with my eyes

Turnaround blind eyes
Every now and then I fall apart
Turnaround blind eyes
Every now and then I fall apart

And I need the glass now today
And I need the glass more than ever
And if it only blocks the light
You’ll be blocking the light forever

And we’ll only be making it right
‘Cause we’ll never be wrong

Together we can make it to the end of the light
Your love is like a shadow on me all of the time
I don’t know what to do and I’m always in the dark
We’re living in a powder keg and giving off sparks

I really need you today
Forever’s gonna to start today
Forever’s gonna to start today

Once upon a time I was seeing the sun
Now I’m only searching that glass
There’s nothing I can do
A partial eclipse of the heart

Once upon a time there was light in my life
But now there’s only love in the dark
Nothing I can say
A partial eclipse of the heart

Turnaround, blind eyes
Turnaround, blind eyes

Turnaround, every now and then
I know I’ll never see the sun I wanted it to be
Turnaround, every now and then
I know you’ll always be the only boy who wanted me the way that I am

Turnaround, every now and then
I know there’s no one in the universe as magical and wondrous as you
Turnaround, every now and then
I know there’s nothing any better, there’s nothing that I just wouldn’t do

Turnaround blind eyes
Every now and then I fall apart
Turnaround blind eyes
Every now and then I fall apart

And I need you now today
And I need you more than ever
And if you’ll only blind me light
We’ll be holding on forever

And we’ll only be making it right
‘Cause we’ll never be wrong

Together we can make it to the end of the light
Your love is like a shadow on me all of the time
I don’t know what to do and I’m always in the dark
We’re living in a powder keg and giving off sparks

I really need you today
Forever’s gonna start tonight
Forever’s gonna start tonight

Once upon a time I was seeing the sun
Now I’m only searching that glass
There’s nothing I can do
A partial eclipse of the heart

Once upon a time there was light in my life
But now there’s only love in the dark
Nothing I can say
A partial eclipse of the heart

A partial eclipse of the heart
A partial eclipse of the heart
Turn around, blind eyes
Turn around, blind eyes

Posted in Uncategorized

AppDevCamp Graz: sharpening the profile

Time passes quickly. It is not the 5th iteration of the AppDevCamp (former iCamp) in Graz wich will be at the 17.-19. April this year. An as time passed in the last years we developed more and more into not the Camp about mobile application development but, hm, the IT Camp of the larger BarCamp Graz where the AppDevCamp is a part of.

The BarCamp Graz is an event where people of 6 different domains (more at http://barcamp-graz.at/ ) gather to exchange first and foremost practices within their craft, but also network among them. Because of that I thought it is ok when a session about Test Driven Development is done at the AppDevCamp. Although only partly connected to mobile application development, a pro is, it also connects to the other camps. However, more and more we got fuzzy in our profile (I have to admit @maclemon you were right last year). This year, like the KnowCamp, we want to sharpen our profile again, to provide a better platform for those we from the AppDevCamp organisation care about: Application Developers.

Does that mean there will not be a Test Driven Development, Coding Dojo, Marketing or whatsoever session at the AppDevCamp? No, however, it will be harder for them to get a slot.

The new mode is, that we from the organisation will motivate to hold sessions related to mobile application development, may it be about a JS/HTML5 framework, Android, Swift and iOS or may it be about App Marketing or similar. In case of equal voting we will always give the application development session the advantage. Together with the fact that we mainly target mobile application developers should give the AppDevCamp Graz a crisp profile again. I really look forward to that.

The general language of the BarCamp Graz is german by default. Since I always blog english I did not want to change that Smilie: ;). If you only are able to speak english: The session planning and main announcements will be done in german, and normally all sessions are in german unless you convince the audience (wich should easily be possible Smilie: ;) ).

So, if you are interested in mobile application developement: We just opened the registration, so register at http://barcamp-graz.at/anmeldung/

Looking forward to see you there!

Posted in Uncategorized

Android Wear App persistent in the Forground

I am writing some android war stuff currently. I do not want to go into detail what it is (uh oh, secret Smilie: ;) ) but one thing I have to do for it is that I need to constantly gather some data at start. Now for this the easiest solution is to just have an app running in the foreground doing the gathering. So, I did make that: Making a small wear app. Initiate the data gathering, test the code. I thought I am almost finished.

Then came the surprise: My full-screen App was constantly killed. Now the Android Documentation says: “The system enforces a timeout period. If you are displaying an activity and user’s don’t interact with it, the device sleeps. When it wakes back up, the Wear home screen is displayed instead of your activity. If you need to show something persistent, create a notification in the context stream instead.” (Android Developer: Creating Wearable Apps)
Several people report similar problems, now in the recap I only found this example: Stackoverflow: How can I find what is stopping my activity.

The problem is, as the people on stack overflow in this post suggest, that they make a solution which completely changes your architecture: Instead of having one simple app running in the foreground for a while, insert interactive notifications into the context stream.

However, this is NOT the solution for a simple foreground application. For that go to the main activities (f.e. rect_main_activity.xml) layout, and add <Layout android:keepScreenOn="true"></Layout> to the root layout element. That means f.e. the RelativeLayout or LinearLayout nodes, so usually you have to add it twice, for the round and rect layout. That is it, really. This solution worked quite robust for me.

Posted in Uncategorized

i-Locate Workshop, Mobiquitous2014 Day 1

IMG_0083.PNG

Today was the first day of the Mobiquitous 2014 Conference. Like at many conferences this was Workshop Day, and I attended the i-Locate Workshop.

The workshop was pretty nice. The first talk was right into the topic of indoor localisation. The talk was titled “Selective Mixture of Gaussian Clustering for Location Fingerprinting” by Nguyen and Luo. In the talk he basically showed that cell localisation using clustering with Gaussian Mixtures performs better than k-means and fuzzy k-means. So, I would expect that result to some degree, and also there was no comparison to SVMs inside. Also like all these methods they have the classical problem of finding a good k. However,the talk was good and the discussion also really good, and showed the good experience of Khuong (Nguyen) in that area. We discussed problems of building up the radio map (they do it minimally once a month, or if many things moved), sampling resolution (they sensed every 15cm, with 8 different position for a person shadowing the signal) and others.

The second talk was “Mobile Indoor Localisation in Museum Environment: An Experimentation in FIBAC Project” by Acanfora et.al.. It build on the results of the first talk and also compared cell localisation to triangulation. You could see how raw triangulation on WiFi still is considerably bad. They did however build nice additional models like a path recommender, and modelled typical movement behaviour if I understood that right. Also the discussion was nice.

Both projects based their work on WiFi data/fingerprints btw., and both tested the “harder” case, that is movement along the walls in a crowded environment.

Especially in the case of triangulation, that is you want to compute a point in space, however, I would have found it cool if they would have added models which incorporate movement like f.e. particle filters or similar.

After the coffee break the next talk was “Personalised multi-modal route planning: a preference-measurement and learning-based approach”. In a quite large scale (1500 ppl) survey they assessed preferences for persons deciding on witch mode of transportation to take (that is f.e. travel time vs. costs and so on) to build a standard model of preferences for the average user of Denmark. Building on that model a Bayesian network was created to predict a users choice based on his preferences. A lot of that interesting talk was about the update of the believes of the internal preferences, as this is a computationally hard task (especially in that setting).

The main problem with that approach is that you have to come up with categories the user has to have preferences on and correctly update them. To overcome that I wonder if collaborative filtering can be used (I suggested that, and want to try that out by myself too).

The next two talks had privacy in there mind. They were “Protecting data resources and users in GeoData for interior and exterior spaces” by Cadzow and “Applying Archeological and Forensic Science methods and experience to outdoor and indoor mapping” by Cadzow and Cadzow.

As some of you know usually I find privacy: Very Important and none of my business as this is its own complex stream of knowledge I do not follow (ok, I know how to overwrite the stack in C programs and so on, but that only leads me to admire the profession). In this talks however a new nice viewpoint on privacy of locations was raised. Mainly how can you bring thinks like a “No Access” sign on a door into the digital world, and how much detail should you be able to query at a distance. Both relevant and interesting questions. The archeological talk also introduced interesting methods to survey an area, that is the magnetometer survey. I wonder how that could be used.

After the good lunch the last talk really introduced the i-Locate project “i-Locate: Indoor/outdoor Location and Asset management trough open GeoData; rationale, scope and objectives” by Conti. This was about the recently started EU Project i-Locate which is basically about doing something like OSM for indoor. I like the idea, but, as I think at least some people in the consortium agreed beside standarts there must be a working toolset and best practices as Cadzow put it for us developers and researches to use to really have an impact. It will be a project to monitor!

Beside the talks the audience was awesome and I met many interesting people beside the speakers! Quite some went home already and did not stay for the main conference, I still hope I can keep contact with them.

So, that was my wrap up for day 1. Let’s see how day two will be!

Posted in location, professional, ubiquitous

Plankalkül

I am currently reading the Book “Artificial Intelligence, A Modern Approach” von Russell and Norvig[1]. This book is also the basis for the famous “first” MOOC AI-Course which I took about a year ago[2]. This course is awesome(!), take it!
Now, the book starts with a really nice history of AI, and the history of connected fields.

And here comes what pretty much made my day yesterday. Although I had quite a literacy in the history of computer science, and I was aware of Konrad Zuse and the Z-3, what kind of slipped trough my Fingers was that the fist really working von Neumann high level language was actually a language called “Plankalkül” [3] from Konrad Zuse which he developed in the Second World War in Germany. This was also the fist language who had floating point numbers build in. Now, it made my day because it is such a cheesy typical Natzi Germany name, isn’t it? And Zuse hat more words like that. A programme was called Rechenplan and more or less a IDE would be called Planfertigungsgerät. Images of Iron Sky actually slipped into my brain, imagining the scene where this crazy scientist calls to the iPhone “This is not a computer, THIS is a computer” and points to the skyscraper high device there. Just Imagine Germany had won, these terms might have become standard o_O. We would write Rechenpläne now! Smilie: :P

Don’t know, but I found that names just funny ^^

[1] HP of the Book
[2] Udacity AI Course
[3] Wikipedia on Plankalkül

Posted in Uncategorized

status update

Hm, there where not a lot of posts on the blog lately, although I started a series about ubiquitous computing, and just published part one.

Now, rest assured, I did plan 4 more parts, and worked on two in the background, they will be published soon.

Currently I came back to an old friend of mine: mind mapping. I was reading papers and Buzan’s Mind Mapping Book a few years ago. Currently I started doing that again. I will also mix in posts about Mind Mapping therefore.

Hope I get more active, and ppl. will find this interesting
Sincerely, Jörg

Posted in Uncategorized

What is ubiquitous computing, part 1

What is ubiquitous computing?

Since I have to work on that topic currently, I thought I will write a blog post series, letting you explore the topic with me. Wikipedia describes ubiquitous computing “as a post-desktop model of human-computer interaction in which information processing has been thoroughly integrated into everyday objects and activities”[1]. If you look up the word ubiquitous itself in a dictionary it explains is is an adjective meaning existing or being everywhere, especially at the same time; omnipresent. Examples are f.e. ubiquitous fog or ubiquitous little ants[2].

Now, Apple and Samsung claims we are in the post-desctop area, hence we also have post-desctop HCI without doubt. So, is ubiquitous computing the current reality? If you look at the verb of ubiquitous, and more clearly, what ubiquitous computing conferences talk about, we will se, the vision of ubiquitous computing is not yet reality. Ubiquitous computing means the immanent interaction with computers we do not even see, everywhere around us. We have information everywhere and without interruption. This vision is still science fiction to us, and you might grasp the idea of ubiquitous computing in movies like minority report or ghost in the shell, where a smart phone does not even exit anymore.

The next question is, is then f.e. google project glass already ubiquitous computing? I would claim no. As smartphones and tablets, this project brings the vision of ubiquitous computing nearer. However, for real ubiquitous computing at least more geo located information for static objects (ok, we might have that partially) but also geo located information for moving objects (maybe with RFID or similar) and ambient intelligence needs to be part of a fused system, which interacts with you all to time, without interrupting you, to really be ubiquitous. So far a google glass which would display the name of a person with image recognition because of his facebook images would fit well to ubiquitous computing.

Now, we already found in the article that probably a lot of research buzz words have to do with ubiquitous computing. And yes, the internet of things, ambient intelligence, smart cities, haptic computing, physical computing all belong to the vision or are integral parts of ubiquitous computing. Ah, and beside the terms which make up parts of the vision there is one term which is kind of synonym: pervasive computing.

More on what pervasive computing means, and a bit more of analysis of the current research community comes in the next blog post.

[1]Wikipedia: Ubiquitous computing

[2]Dictionary: ubiquitous

Posted in Uncategorized

git for code demos, introducing gmove

for all who can’t wait, you can find gmove here

All of us who do code demos occasionally know that very simple methods, may it be copy and paste, real typing or just presenting finished code, all have their shortcomings. For a code demo to have real value, you should have a story to tell, and let the user see a system evolve by modifying it, empowering him to do the same.

Last time, I had a very simple idea. The idea was: using git and tags for a code demo. Basically you develop your base system to show in any git repository. Them you tag that one version. I use step + stepnum as a convention. So for me that base system I want to present to the audience it step0. Then you develop the story for your demo, from simple changes to the complex one. Each change you want to demonstrate get’s a own tag until finally you finished your story.

1
2
3
4
5
6
7
8
9
10
11
git init
# .... hacking on first demo loop start
git add .
git commit -m "initial version"
git tag step0
# .... hack verst improvement
git add .
git commit -m "improvement"
git tag step1
# loop on that untill you finished
git tag #now gives you the list of your tags

On presenting you now have the nice thing that you can just go back to step0 and start showing the system. You can even type the code changes you prepared while you present your changes. If the stuff to type is too much, or you made a mistake just switch to the next tag.

1
2
3
4
5
6
git checkout step0
# present inti system
git checkout step1
# present first improvement
git checkout step2
# and so on....

Now there are some small nifty little things left here. For me f.e. I really like to type some things by hand on a demo, because I really think you get more out of it if you see the crucial things being typed, giving your brain a longer chance to understand those parts. Also some systems like XCode have the bad habit f.e that your storyboard file change in git as soon as you open it.

Now when you checkout a tag you are in detached space. Very roughly that means you are not ment to make changes. But that is actually exactly what I do and probably the system does anyway. If I then checkout the next step git will be angry and react with refusing it. What can you do than. So either you do a git checkout -- on every file discarding the changes, or simpler, you just stash your changes (and then probably throw them away).

so, you can do a

1
2
3
git stash
git checkout step1
git stash clear #or pop if you want to keep that new changes...

that works now, but actually introduces a new problem: you spend quite some time in the console, while actually you wanted to show the audience your system.

For not typing that much I wrote a python script. The actually completely ingenious gmove. Almost to small to make a github repo for that. In default gmove just makes the one above, stashing, checking out, and clearing the stash. usage is:

1
gmove -t step0

While stashing and clearing your changes with gmove works fine, I tested that, the script is a little bit alpha. Meaning while writing that post I did not test some use cases build into the script. Feel free to fork it on git and send me a pull request by the way. So what I did not try but should work is:

1
2
gmove -j -t step0
git stash pop

ok, that would keep your stash intact. You would use that if you found in the demo that you made any new changes not in your original story, and want to keep them and reapply them. just keep in mind that you might have a merge every time you do that. Also I will change gmove in the future to support that in one command I guess (maybe -p).

So, if I have time I will make a screen cast from my last cocoaheads talk, so you can see the tool in action….

Posted in professional, Uncategorized