Alle Beiträge von Björn Karpenstein

Diplom Informatiker, Programmierer, Musikbegeisterter

Android statistics and facts

Problem

During the development of android applications the developer has to decide which API Level his applications requires. The API Level is clearly associated with a Android Codename (i.e. Ice Cream Sandwich: 14 and 15 (MR1), Jelly Bean 16 to 17 (MR1), Kit Kat 18…).

A trustable source that shows the frequency of usage for Android Versions can give the information about which versions should be considered retrospective.

Approach

A link collection of  popular sources will be provided in this article. The developer has to customize the androidmanifest.xml in his application to define the minimum API Level.

Solution

Which android versions have to be considered for the development?

http://developer.android.com/about/dashboards/index.html

Where can i get an actual complete list of API Levels and Android Names?

http://developer.android.com/guide/appendix/api-levels.html

 

 

Android: JOYN deaktvieren / ausschalten / ausstellen ohne zu rooten oder Custom ROM zu installieren

Problem

Die deutschen Netzanbieter, insbesondere die Telekom, haben sich darauf geeinigt einen neuen Dienst JOYN als Alternative zu WhatsApp anzubieten. Das Ziel ist es zu verhindern, dass die Kunden alle zu kostenlosen Anbietern wie WhatsApp, Tremor etc wechseln. Seitdem die Handys internetfähig sind können die Provider lediglich über das Anbieten von Paketdatenverbindungen Geld für Nachrichten verdienen. Früher war es möglich pro SMS abzurechnen, heute lediglich je übertragenem Datenvolumen (insofern keine Flatrate vorhanden ist).

Nun ist es leider so, dass dieser JOYN Dienst penetrant nervt, das Handy vibrieren lässt und einem ständig durch Notifications/Statusmeldungen in den Glauben bringt, man hätte gerade eine SMS empfangen. Dies passiert z.B. wenn ein WLAN gefunden wurde. Es passiert auch nachts wenn die WLAN Verbindung mal zusammenbricht. Dies kann fürchterlich nerven

Prämissen

Zunächst sollte die neuste Android Version des Anbieters installiert sein.

Ansatz

In den Menüs der neuen Android Version (hier im Beispiel ein Galaxy S4 mit D1 Vertrag) befindet sich ein Eintrag um JOYN zu deaktivieren.

Lösung für Galaxy S4 mit Telekom D1 Branding

  1. Bild 1: Menü -> Einstellungen (links unten der Button unterhalb des Display)
  2. Bild 2: Verbindungen -> Weitere Einstellungen
  3. Bild 3: JOYN-Dienste
  4. Bild 4: Haken bei JOYN Dienste rausnehmen

wpid-screenshot_2014-04-20-12-51-59.png

wpid-screenshot_2014-04-20-12-52-15.png

wpid-screenshot_2014-04-20-12-52-21.png

wpid-screenshot_2014-04-20-12-52-29.png

Fazit

Das Problem von Custom ROMs die speziell von Mobilfunkanbietern angefertigt und ausgeliefert werden ist nicht nur, das man später in den Besitz der neusten Android Version kommt, sondern auch die nicht-vorhandene Community, die mit leidenschaft Updates und Funktionen in integriert und idealistisch fehlerfreie Software in kurzer Zeit bereitstellt.

IBM Doors: Performance tests with DXL

Problem

Sometimes it is necesseray to benchmark DXL scripts for their execution time.

Approach

There is a basic function called getTickCount_() that gives the current milliseconds. When subtracting the time before and after the execution we can get the execution time that was needed for the script.

Solution

int measureStart = (getTickCount_());

sleep_(1240);

int measureEnd = (getTickCount_());

print "The doing took " (measureEnd - measureStart) " seconds";

C#+LDAP: Email an Lotus Notes Gruppen per SMTP schicken

Problem

In einem Unternehmen sollen Lotus Notes Gruppen aufgelöst werden um den Mitgliedern der LN Gruppe Mails über einen normalen SMTP Server zu schicken

Ansatz

Lotus Notes besitzt i.d.R. einen LDAP Server, der die Notes Gruppen aufschlüsselt. Auf LDAP kann über C# zugegriffen werden.

Lösung

public ArrayList resolvingNotesGroups(String mailGroup)
{
 ArrayList alMailAddys = new ArrayList();

 DirectoryEntry DirEntry = new DirectoryEntry();
 {
  DirEntry.Path = "LDAP://notesldap.it.company.com";
  DirEntry.AuthenticationType = AuthenticationTypes.ServerBind;
 }
   
 DirectorySearcher search = new DirectorySearcher(DirEntry);
 DirectoryEntry de = new DirectoryEntry();

 Dictionary<String, String> dict = new Dictionary<string, string>();

 // Tweak this to refine your search
 search.Filter = "(cn=" + mailGroup + ")";// BBME_AC_Rubi
 // I limit my results while I tweak          
 search.SearchScope = SearchScope.Subtree;          

 try
 {
  SearchResultCollection src = search.FindAll();
        
  if (src.Count != 0)
  {
   foreach (SearchResult result in search.FindAll())
   {
    // Display each of the values for the property 
    // identified by the property name.
    foreach (object property in result.Properties["member"])
    {
     // CN Name ermitteln
     dict.Add(property.ToString(), "");
    }
   }
    
  }
  else
  {
   throw new Exception("GroupResolving - No Entry found for: " + search.Filter);
  }

  int indexStart;
  int indexEnd;


  foreach (KeyValuePair<string, string> entry in dict)
  {
   search.Dispose();
   search = new DirectorySearcher(DirEntry);

   indexStart = entry.Key.IndexOf("=");
   indexEnd = entry.Key.IndexOf(",");

   // Entry key only CN 
   search.Filter = "(cn=" + entry.Key.Substring(indexStart + 1, indexEnd - indexStart - 1) + ")";
   search.SearchScope = SearchScope.Subtree;

   foreach (SearchResult result in search.FindAll())
   {
    if (result != null)
    {

     de = result.GetDirectoryEntry();
     alMailAddys.Add(de.Properties["mail"].Value.ToString());
    }
    else
    {
     throw new Exception("Peolple Resolving - No Entry found for: " + search.Filter);
    }
   }
  }

 }
 catch (Exception ex)
 {
  throw new Exception("Following error occured: " + ex.Message.ToString());
 }
 finally
 {
  search.Dispose();
  DirEntry.Close();
 }

 return alMailAddys;
}}

JIRA 6.x SQL Statement: Get actual value / last change for custom field

Problem

The actual value of a custom field from an Issue should be selected

Solution

select CAST(pk.PROJECT_KEY as VARCHAR(10))+'-'+CAST(issue.issuenum AS varchar(10)), cfo.customvalue FROM 
CustomFieldValue cfv 
INNER JOIN CustomField CF on CF.Id = CFV.CustomField
INNER JOIN CustomFieldOption CFO on CF.Id  = CFO.CustomField
INNER JOIN jiraissue issue on issue.id = cfv.issue 
INNER JOIN project_key pk on PROJECT_ID=issue.PROJECT
WHERE cf.CFName = 'Classification' 
And CAST(CFO.Id AS VARCHAR(10)) =CFV.StringValue;

Cubase VST Instrumente: Kostenlose Alternative zu ezDrummer?

Problemstellung

Kostenlose Schlagzeugplugins die authentische Sounds für echtes Schlagzeug liefern sind sehr rar.

Vormerkung

Für echte Schlagzeugsounds stellt der Mikrofonhersteller Sennheiser ein kostenloses VST Instrument zur Verfügung das sich vielversprechend anhört.

Ich denke ein Test lohnt sich…
http://de-de.sennheiser.com/drummica

Hier ein Tutorial von Delamar:

Tutorial: Rock Drums programmieren

JIRA 6.1. and above: Database field PKEY is empty

Problem

In prior versions than JIRA 6.1., the table „jiraissue“ in the database has stored the Issue IDs and has made it possible to make a selection on Issue IDs. Unfortunalety this field is empty now. It is not possible to select values because of the Issue ID.

Approach

Analysing the table shows a new column name „issuenum“ which can be used in combination with the colum „project“ to concatenate the Issue Key.

Solution

SELECT project_key.PROJECT_KEY+‘-‚+CAST(issuenum AS VARCHAR(5)) as pkey, jiraissue.*
FROM jiraissue
INNER JOIN project_key
ON jiraissue.PROJECT=project_key.PROJECT_ID
WHERE project_key.PROJECT_KEY+‘-‚+CAST(issuenum AS VARCHAR(5))=’VVTT-65‘

 

 

 

Neuer Trend: Sharktrash aus Amerika

Ich habe soeben beschlossen nach 3 Jahren Fachthemen eine Kategorie „Unsinn“ zu eröffnen.

In Anlehnung an den Artikel von Florian Breidenbach möchte ich nun eine kleine lustige Sammlung posten :).

Interessant mit welchen Storymutanten die Drehbuchautoren arbeiten müssen um einen Innovationscharacter in den gemeinen Haifilm zu bekommen.

Es lebe der B-Movie!!!

It is interesting which kind of story mutants are used to generate an innovative character for the evil shark films.

B movies forever!!!!

ghost-shark715

sand_sharks sharkcano sharknado sharknado-2-banner sharktopus two_headed_shark_attack

sharkalanche

avalanche-sharkssharkicane sharkquake supershark tscharknamidinoshark