Welcome to TechScreen

Welcome to the TechScreen site. This side shall support the exchange of knowledge in the domain of Web Engineering and related aspects. As a side effect, this side is used for research on knowledge management technologies. User can pose challenges in the problem domain and can participate in quizzes. Further a bibliography about arcticles in different related domains is continously extended. Finally, questionnaires on different issues are provided. To be able to participate you need an account and a password from TU Wien's TISS system.

For a long running process on a website, provide the user with live feedback

We have a webtool (written in Java EE, using log4j for logging) where users can upload files that are then processed and migrated to a new version, which users can download. Since this process can take quite a while and might fail, users should have live information about the process. Even in case of an overall success there might be errors the users should be informed about.

Fix Java OutOfMemoryError

Problem: For a university project I had to implement a simple Java application that uses the Twitter4J Java library for the Twitter API to collect data (tweets) based on different criteria and then analyze those data and generate statistics. For the data analysis I used the natural language processing toolkit developed by Stanford (called Stanford CoreNLP). The problem was, that the data were too large and when running the NLP algorithms I encountered the OutOfMemoryError. Solution: increase the heap size of the Java virtual machine JVM using the flags -Xmx and -Xms.

Test simple Java RESTful Web Service

Problem: for my bachelor thesis I developed a simple Java RESTful Web Service that could be used to control a mBot robot car using the internet. For this I used a Raspberry Pi to run the web service. The Raspberry Pi was connected via USB to the mBot. The embedded mBot controls (e.g. to move forwards/backwards, spin, retreive sensor informations) were called via the internet using HTTP endpoints.

Facebook Messenger on mobile phone without app

If you are not using Facebook on a regularar basis and / or you don't want to install the facebook apps on your phone, you can't access the facebook messenger via the mobile web version of the site. If you click the messenger, the site tells you to download the facebook messenger app. As I knew that it is working without an app on a desktop, I decided to try the option in the browser of the phone to show the desktop version of the webiste. Even though the navigation is not that comfortably as with the web version, you are able to access the facebook messenger.

Captcha bypass for faster access

Captcha (completely automated public Turing test to tell computers and humans apart) is a way to differntiate humans from computers. They are widley used on the internet to prevent a website from spam and bots. At a certain time during an ordering process for a sneaker, you needed to solve a captcha to get access to the plattform. Everyone needs to solve this capture and this takes up to 10 seconds. Exaclty this time can decide whether you are able to order the sneaker or not. Therefore I needed a way to bypass this captcha and gain an advantage over all other participants.

public WIFI with no internet access

There was a public WIFI with no password protection. Everone could connect to the WIFI, but there was no internet access, even tough they promoted it at the entrance of the restaurant. No employee was able to support, so I decided to connect to the router and try the standard login credentials. Usually they are user:admin pw:admin or blank password. This worked and I was able to restart the router. After the restart, the router could connect to the internet and everyone could access the web again.

Collaborate working with IntelliJ

Problem: Collaborate working with IntelliJ and Java: my colleagues and I used Java and the IntelliJ IDE for a university project (online voting system). To work together we decided to use git and had the issue, that by default the git Repository was filled with too much build data, because the .idea folder of the IntelliJ project, which contains project specific settings files and per-project details such as VCS mapping and run and debug configurations, as well as per-user details, such as currently open files, navigation history and currently selected configuration.

Deep Learning classification too slow for real time service

Problem: The classification time of a trained neural network was too slow on average for a real time service. Solution: 1. Build additional, less complex models with faster inference times (eg. SVM, Decision Trees) to handle the most common requests very fast and efficient. 2. Distill the neural network (https://arxiv.org/pdf/1711.09784.pdf, https://arxiv.org/abs/1910.01108) into a smaller faster model. 3.

Write to database too slow for REST service

Problem: The request response time for a REST service we provided was too slow. Solution: Return data to API customer first and persist data later. Solution explanation: The runtime analysis showed that the write operation to the database was the slowest part of the API call. The solution for speedup was to write the data to the database AFTER returning the response to the client. While this increases the risk of having "old" data in the database for another call, that needs this data (very improbable case) it improves the response performance significantly.

Find Tech Stack for Social App Startup

Problem: Find a software framework for a small social app startup with little in house technical expertise to create a relatively simple app for Android and IOS fast, with little cost but scalability. Solution: Use Vue-Native, Google Firestore and Google Cloud Functions. Solution Explanation: The biggest/cheapest group of developers is assumed to be web developers. They are assumed to know HTML, CSS and Javascript.

Pages

Subscribe to TechScreen Revised RSS