Majcon News

FizzBuzz

Function Kata „FizzBuzz“ Write a function to return the numbers from 1 to 100. However, some of the numbers should be translated into a string according to these rules [1]: return „Fizz“ for multiples of 3 return „Buzz“ for multiples of 5 return „FizzBuzz“...

read more

Filling Out a Questionnaire IV

Agility Kata „Filling Out a Questionnaire IV“ Improve the questionnaire application with the following features: The questionnaire dialog should show a “percentage complete” figure; it should distinguish between completion including optional questions and...

read more

Filling Out a Questionnaire III

Agility Kata „Filling Out a Questionnaire III“ Add the following features to the questionnaire application: Questions can require the user to enter some text for an answer. For such questions only the question is shown and a text entry field. A free form answer...

read more

Filling Out a Questionnaire II

Agility Kata „Filling Out a Questionnaire II“ Extend the questionnaire application in these regards: 1. Several options of a question can be correct (multi-select). This can be represented in the questionnaire file like so: ?Which of these animals are...

read more

Filling Out a Questionnaire II

Agility Kata „Filling Out a Questionnaire II“ Extend the questionnaire application in these regards: 1. Several options of a question can be correct (multi-select). This can be represented in the questionnaire file like so: ?Which of these...

read more

Filling Out a Questionnaire I

Agility Katas „Filling Out a Questionnaire I“ Write an application to fill out a questionnaire. The user is presented with a multi-question questionnaire. She answers each question by clicking an option. After having answered all questions she...

read more

Viewing CSV Files V

Agility Kata „Viewing CSV Files V“ Finally put a GUI[1] in front of the application looking like this: Files can either be loaded immediately by providing a name on the command line like before, or by opening them through the menu. The page...

read more

Viewing CSV Files IV

Agility Kata „Viewing CSV Files IV“ Enhance the CSV viewer so that when opening the application again on a CSV file it has already processed (partly or fully)[1], processing does not start all over. Instead processing should continue from what...

read more

Viewing CSV Files III

Agility Kata „Viewing CSV Files III“ Make the CSV viewer capable of displaying huge CSV files; think 3 times the GB of your computer’s memory. Yes, the CSV viewer should be able to handle billions of data records, or at least many more records...

read more

Viewing CSV Files II

Agility Kata „Viewing CSV Files II“ Extend the CSV viewer application in the following way: Each data record should be preceded by a record number. Show which page is displayed out of how many in total below the table. Let the user jump to a...

read more

Viewing CSV Files I

Agility Kata „Viewing CSV Files I“ Write an application to view CSV files on the console. [1]It ́s supposed to be a very simple program: just call it from the command line like this C:\>csvviewer.exe persons.csv …and it will display the file...

read more

Word Quiz

Architecture Kata “Word Quiz” Develop a software system to learn words, e.g. to improve your foreign language vocabulary. The student learns based on boxes. Each box is filled with words and their translations/meanings. During the quiz each...

read more

A word a day

Architecture Kata “A word a day” Develop a web based service to get a new foreign language word to learn every day. Users register with an email address and a timespan. After the user confirmed his registration via a link in an registration...

read more

URL Shortener

Architecture Kata “URL Shortener” Developer an internet service to shorten URLs like bit.ly, TinyURL or Google url shortener do. Users will enter a URL and get a shortened version back. The shortened version of a URL will be the same even if...

read more

Tomato Timer

Architecture Kata “Tomato Timer” Develop a software system to support you team working with the “pomodoro technique”. A user logs in with his nickname or email address. After login the user can start a tomato timer (or tomato for short)...

read more

Scheduling

Architecture Kata “Scheduling” Develope a web based software system for use by groups to negotiate when to meet. This should mimic the service http://doodle.com. A host wants to invite guests to a meeting. He creates a meeting and adds several...

read more

Taxi

Architecture Kata “Taxi” Develop a software system to let customers order a taxi. Customers order a taxi to where they are right now or to another location. Either the taxi should come as soon as possible or at a fixed time. Taxi drivers can...

read more

Secure Calculator

Architecture Kata “Secure Calculator” Develop a desktop calculator software system which restricts certain operations to users of a particular math skill level. The basic UI of the calculator should look like this: Numbers will be entered only...

read more

Collective Order

Architecture Kata “Collective Order” Develop a web based software system to allow people who are interested in the same product to discover each other and jointly order the product to gain a price advantage from ordering a larger quantity. The...

read more

Pizza Online

Architecture Kata “Pizza Online” Develop a software system to enable customers of a pizza delivery to order online. The customer will open the web page showing the pizza delivery’s menu. There he can enter an order quantity for each pizza...

read more

Mail Followup

Design a software system to resend emails which are forwarded to a special formatted email address, for example to 7days@followup.cc, at the given point in time. Such a service exists at http://followup.cc. Design an architecture for such a...

read more

Long Tweets

Architecture Kata “Long Tweets” Develop a Twitter service to help sending tweets longer than 140 characters. If a tweet exceeds 140 chars it will be shortened before posting it on Twitter – and a URL is appended pointing to the full text. This...

read more

LOC Stat

Architecture Kata “LOC Stat” Develop a program to observe how the lines of code (LOC) in a directory tree change over time. When run (e.g. during an automatic build) the total number of LOC is counted and stored together with previous results...

read more

Canteen Traffic Report

Architecture Kata “Canteen Traffic Report” Develop a software system with which employees can get information about the traffic in their company’s canteen. Where hundreds of people share a canteen for lunch each day the question is: “When...

read more

Kanban Board

Architecture Kata “Kanban Board” Develop a software system to support distributed teams by letting them jointly manage their tasks on a shared Kanban board. A Kanban board consists of a number of columns which can be customized, e.g. ToDo, In...

read more

Issue Triage

Architecture Kata “Issue Triage” Develop a software with which hotline members can report issues to product owners. Users of a software will contact the hotline in case of problems. If then the hotline doesn’t find a solution and it seems the...

read more

Heckle Service

Architecture Kata “Heckle Service” Develop a software system for attendees of conference talks to utter questions and give feedback to the presenter. Attendees shall be enabled to “heckle” the presenter 😉 Heckles will be send via a web page...

read more

Sharing DVDs

Architecture Kata “Sharing DVDs” Develop a software system to allow owners of a DVD to share it with others (collaborative consumption). Why buy a DVD when you can get one for free? DVDs enter the system through their original owner. But they...

read more

Minesweeper

Application Kata „Minesweeper“ Write a program that creates a cheat sheet for a given minesweeper game. Minesweeper is a game that was originally part of the Windows operating system installation. The goal of the game is to open all fields that don’t...

read more

Alarm Clock

Application Kata „Alarm Clock“ Implement an application with which one can be woken. One can either give the time of the alarm or the rest period until the alarm time. The application shows the current time accurate to the second. If an alarm was set it...

read more

Presentation Scoring

Application Kata “Presentation Scoring” Develop a software system to score presentations at conferences. The software system can run online or can have a mobile or desktop client. When starting the application users first see a list of current...

read more

ToDo Manager

Application Kata „ToDo Manager“ Develop a web application to manage tasks in todo lists. Basic data model: Tasks are organized in lists. Each list can contain zero or many tasks. But each task belongs only to one list. Task data Title, just a...

read more

Tic Tac Toe

Application Kata „Tic Tac Toe“ Implement a console application fort wo players playing [Tic Tac Toe]. By running the program a new game is started. It is displayed like the following: A B C 0 | | -+-+- 1 | | -+-+- 2 | | Command: The players...

read more

Wordwrap

Application Kata „Wordwrap“ Write an application that rearranges a text so that lines are wrapped at a given column width. The following illustration shows how the application may look like. The user will enter the text into a textbox....

read more

Minesweeper

Application Kata „Minesweeper“ Write a program that creates a cheat sheet for a given minesweeper game. Minesweeper is a game that was originally part of the Windows operating system installation. The goal of the game is to open all fields that...

read more

Spellchecker

Application Kata „Spellchecker“ Implement a program that lists all misspelled words from an input file. The program should be called like the following: C:> spellchecker mytext.txt Appel Hrddisk In this example the words „Appel“ and...

read more

Newsletter

Application Kata „Newsletter “ Implement an application to edit the recipients of email newsletters [1]. For each recipient you have to add an email address. Optional you may edit name, surname, gender and a list of tags [2]. There should be...

read more

n-back

Application Kata “n-back” Write a program to do so called [n-back] tests [1] with. A test person is presented with letters as a series of visual stimuli. For each stimulus she needs to decide whether the current stimulus is a repetition of the...

read more

More

Application Kata “More” Write a console application to display the content of a text file in a pagewise manner. It should be called like this: C:> more Upon start the first page is shown (page length = 20 lines) and the application waits for...

read more

LOC Counter

Applicaton Kata „LOC Counter“ Write an application to count Lines of Code (LOC) in source files.[1] The program should be started like this: C:\> loc c:\myproject 10 source files found with 1478 lines of code C:\> loc program.cs...

read more

Cashbook

Application Kata “Cashbook” Write an application to manage the cashbook of a small company. Each months cash transactions will be entered into the cashbook. Cash can be taken out of the cash box (withdrawl), cash can be put into the cash box...

read more

Convert roman

Application Kata „Convert roman“ Write a console program to convert to and from roman numbers. Example usage: $ convertroman XLII 42 $ convertroman MMXV 2015 $ The number to convert – either roman or arabic – is passed in as a command line...

read more

Minesweeper

Application Kata „Minesweeper“ Write a program that creates a cheat sheet for a given minesweeper game. Minesweeper is a game that was originally part of the Windows operating system installation. The goal of the game is to open all fields that...

read more

cal

Application Kata „cal“ Write a command line program that prints a monthly calendar on the console. The program will be called with month and year as command line parameters and prints the calendar fort he given month on the console: C:>cal 2...

read more

BankOCR

Application Kata „BankOCR“ Write a program that scans account numbers from ASCII files. OCR means optical character recognition. Of course it would be hard to implement a real ORC algorithm as an exercise. But lets see if we can reduce the...

read more

Windows Service

Library Kata „Windows Service“ Implement a library that makes it simple to implement Windows services. As a user I want to install a Windows service with the following command: C:\> myservice /install The command installs the service so that...

read more

INotifyPropertyChanged

Library Kata „INotifyPropertyChanged Tester“ Implement a library that can be used to verify that a class implements the INotifyPropertyChanged interface in a correct manner. The interface INotifyPropertyChanged is used in data binding. The...

read more

Folder Stats

Library Kata “Folder Stats” Implement a library to calculate the size of directory trees. With the lib you can traverse directory trees and determine the following: How many files does the directory and all its sub-dirs contain? What’s the total size in...

read more

Find file duplicates

Library Kata “Find file duplicates” Develop a library to spot file duplicates in a file system directory tree. The contract of the library should be this: interface ICheckForDuplicates { IEnumerable Compile_candidates(string folderpath);...

read more

User login

Library Kata “User login” Develop a library to make user administration and login easier. The contract of the library is this: interface IRegistration { void Register(string email, string password, string nickname); void Confirm(string...

read more

Stack

Class Kata „Stack“ Implement the abstract data type Stack. The stack is a first-in last-out data structure. Elements that are put on the stack are returned in reverse order. See the example below for details. The interface has to look like the...

read more

Circular Buffer

Class Kata “Circular Buffer” Write a class which implements a circular buffer. You can append new elements to a circular buffer at the end (Add()) like with a queue. And they can be extracted at the beginning (Take()), again like with a queue....

read more

Priority Queue

Class Kata „Priority Queue“ Write a class that implements a queue that holds a priority for each element. Elements with a high priority are placed in front of elements with a lower priority. Elements with the same priority are ordered in the...

read more

Ordered Jobs

Class Kata “Ordered Jobs” Develop a class which calculates a plan to execute jobs depending on each other [1]. Each job is represented by a single character, e.g. ‘c’ or ‘x’. If job ‘a’ depends on job ‘u’ to be finished first then that can be...

read more

Linked List

Class Kata „Linked List“ Implement the abstract data type list as a linked list. The class LinkedList has to implement the interface IList. A linked list consists of elements that have a value (called Item) and a reference to the next element...

read more

Box Plot

Class Kata “Box Plot” Develop a graphical control to show box plots [1]. A box plot visualizes a list of numbers. To quickly get an overview several values are displayed for each number: Minimum Lower quartile Median Upper quartile Maximum The...

read more

Count Characters

Function Kata “Count Characters” Write a function to count the number of occurrences of characters in a string. The input to the function is a string, its output a Dictionary (map) of char/int pairs. IDictionary CountCharacters(string input)...

read more

To Roman Numerals

Function Kata „To Roman Numerals“ Implement a function that translates a decimal number to roman numerals. Examples: 1 -> „I“ 2 -> „II“ 4 -> „IV“ 5 -> „V“ 9 -> „IX“ 10 -> „X“ 42 -> „XLII“ 99 -> „XCIX“ 2013 -> „MMXIII“...

read more

ToDictionary

Function Kata „ToDictionary“ Implement a function that maps a special formatted string into a dictionary. The function should have the following signature: IDictionary ToDictionary(string input); The following table shows some examples for...

read more

Christmas tree

Function Kata „Christmas tree“ Write a function that „draws“ a Christmas tree with ASCII characters (ASCII art). The „picture“should be returned as a collection of strings. See the following example of a tree with height 5:...

read more

Russian Peasant Multiplication

Function Kata „Russian Peasant Multiplication“ Write a function that multiplies two whole numbers by using the Russian Peasant Multiplication algorithm [1]. The signature of the function should be as follows: int Mul(int x, int y); The...

read more

ROT-13

Function Kata „ROT-13“ Implement a function that encodes a text by [ROT-13]. The ROT-13 coding exchanges every character by the character 13 positions further back in the alphabet. If the value lies behind the end of the alphabet it is fetched...

read more

Mail Followup

Function Kata „Mail Followup“ Implement a function which maps special mail followup email addresses to date and time values. You may also take a look at the „Mail Followup“ architecture kata. The function to be implemented should have the...

read more

LOC

Function Kata „LOC“ Implement a function that counts the Lines of Code (LOC) in a C# source text. The source text is given as a string. The function returns the number of executable lines of code. Lines containing only comments or whitespace...

read more

Happy Numbers

Function Kata “Happy Numbers” Write a function to determine whether a given number is “happy” or not. A “happy number” is a number where the sum of the squares of its digits “in the long run” is equal to 1. Example: 19 -> 1^2 + 9^2 = 82...

read more

From Roman Numerals

Function Kata „From Roman Numerals“ Implement a function that maps roman numerals to decimals. Examples: „I“ -> 1 „II“ -> 2 „IV“ -> 4 „V“ -> 5 „IX“ -> 9 „XLII“ -> 42 „XCIX“ -> 99 „MMXIII“ -> 2013 Roman numerals are...

read more

Bowling

Implement a class that counts the pins in a Bowling game. A Bowling game consists of rolls to clear 10 pins that stand at the end of the Bowling alley. With each roll one can clear from 0 to 10 pins. In each round the player has two rolls at...

read more

Bounded Queue

Class Kata “Bounded Queue” Write a queue class of limited length for communication between different threads. Reading threads can take elements from the queue – but if its empty reading is blocked until another element becomes available....

read more

CSV tabellieren

Function Kata „CSV tabellieren“ Schreibe eine Funktion, die CSV Zeilen tabelliert. IEnumerable Tabelliere(IEnumerable CSV_zeilen); Als Eingabe erhält die Funktion eine Aufzählung von Strings. Jeder dieser Strings ist eine CSV-Zeile, die...

read more

Recap ABAP CodeRetreat´s in 2017

After the first attempts of the ABAP CodeRetreat (ACR) in 2016, the format got more momentum in the year 2017. In addition to the public CodeRetreat’s for the community, companies have also used this format to try a different form of learning together. The results...

read more

Applying Problem-Solving Techniques to Programming

( Source: https://pixabay.com/de/schach-spiel-schachbrett-glas-433071/ ) This is the corresponding blog post to my previous SAPTeched talk in Barcelona 2017. First of all, it is for me the solution to remember the key topics of this talk and I hope also helps everyone...

read more

Four reasons, why blogging is worthwhile

Four reasons, why blogging is worthwhile Yes, blogging here was a little „uncomfortable“ lately. Yes, bugs are annoying, and you think to yourself „I don’t have the nerve to deal with that.“ Here are four reasons, why it’s worth it nevertheless: Writing is education...

read more

Cost of pair programming

Higher cost pair programming - are paying offExtreme programming (XP) is one of the most important approaches of modern programming techniques, looking for new ways to bring projects to a successful conclusion quickly and error-free as...

read more

Collaborative writing – an agile approach

Agile? In an age of increasing networking and collaborative working and thinking, it is hardly surprising that the collaborative writing is gaining popularity in all possible areas. Be it in education or research. Be it to create an...

read more

Collaborative Writing

Be agile - everywhere! Who works in a team together with other people, knows the problem. Files are sent and changed several times until the final result is definite. But this can be easier. Collaborative Writing is the solution. A whole group of...

read more

CodeRetreat: How to perfect your Software-Craftmanship

What is a CodeRetreat? You surely know this: In the small-small of every days programming you have little or no time to improve your skills and practice. You may participate in one or other training - but the improvements in the functioning and...

read more

Coaching in the IT area

Individual coaching in the field of IT Individual coaching is one of the essential means for knowledge workers - including software developers - for the achievement of their objectives. Coaching takes place in groups today, teams are trained as...

read more

Fast learning

a) definition Scientific studies show that a good comprehension of the IQ is linked, but with short-term memory in connection. It stores all information in our environment and helps us to understand. Its capacity can be increased through targeted...

read more

Organize SAP community events

On the SAP TECHED 2015 in Barcelona there was a SAP TECHED live show with presenter Vitaly Rudnytskiy and SAP mentors Twan van den Broek, Gareth Ryan and Martin Steinberg. Me particularly pleased that Martin Steinberg with it, because he was...

read more

SAP inside track in Munich 2015

The SAP meeting Munich (https://www.xing.com/net/sap_stammtisch) organized by 2015 the 3. SAP inside track Munich. SAP inside tracks are local, the SAP community for the SAP community organized events. SAP developers, consultants, users, as...

read more

ABAP developer quo vadis?

What constitutes nowadays an ABAP developer? This question I on the reason to go, because I'm trying myself wondering how I would describe my work at present as a developer? https://infogr.am/abap_developer-96 In this blog I am trying» the ABAP...

read more

Many web sites still in their infancy

Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their...

read more

3 tools, with which you can save much time on Mac OS X

The workload is increasing in the demanding world of IT constantly, so agile time management and organization have become indispensable qualities. No wonder that digital to do lists, notebooks and similar programs steadily gained in recent...

read more

Letraset sheets containing lorem passages

Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their...

read more

Time management: Three practical free tools for Windows

Every day we use different computer programs and equipment, which should - make our lives easier and more convenient, but this has also a downside: E-Mails and short messages can be to greedy time wasters. extreme multitasking means that we can...

read more

Cost of pair programming

Higher cost pair programming - are paying off Extreme programming (XP) is one of the most important approaches of modern programming techniques, looking for new ways to bring projects to a successful conclusion quickly and error-free as...

read more

Agile ABAP developer

In the it well-rounded, there is a brief description of how to get in five steps to the agile ABAP developers: https://it-onlinemagazin.de/in-fuenf-schritten-zum-agilen-sap-abap-entwickler/ The presentation of the I inside track 2013 held on...

read more

More than two see pair programming – four eyes

Pair programming Most programmers are used to sit alone at a computer, and to solve their problems independently. Planning, implementation and control come from a single source. There is also the entire responsibility on the shoulders of the...

read more

Knowledge workers who work as a team

Together is more Our society, especially the economy, located in a continuous process of development of an industrial style to a knowledge-based society. The proportion of manual routine tasks in the world of work ever goes back and makes today...

read more

Time management using the Pomodoro technique

Pomodoro technique: You work with the clock (instead of against them) In a world full of distractions, agile time management can be a challenge. E-Mails, phone calls, social networks, and the like to prevent that we can really focus on a single...

read more

Making this the first true generator on the internet

Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English. Many desktop publishing packages and web page editors now use Lorem Ipsum as their...

read more

Insert transaction-Starter ZPEX_TA_STARTER

The report ZPEX_TA_STARTER the object Navigatior (TA SE80) display After running the report, the package enter that should be searched for executable transactions Button "Start Search" or just hit ENTER press In our case, there are no...

read more

Flow in the profession

Flow in the profession Mihaly Csikszentmihalyi (née 1934) is Professor of psychology at the University of Chicago and a renowned author. «He refers to as "happiness researchers"and established the so-called theory of flow during his career. The...

read more

Quality of development

Why is the aspect of quality in software development not noticed? Often, there are decisions that improve the conditions of bad programs. But the actual deficits are not addressed. Hardware will be purchased for performance problems, it is...

read more

What is time management?

Time is a precious commodity, especially if you are working in the IT industry. In only a few other professions as many simultaneous requests on the people roar down. Constantly, you are interrupted by requests and short-term tasks prevent you...

read more

Lorem Ipsum available, but theses majority

There are many variations of passages of Lorem Ipsum available, but theses majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. It uses a dictionary of over 200 Latin...

read more

Agile project management

What a well run project management? What's not? What are process gaps during the project to control? It lies in the nature of things, that while a project is discovered that important processes have not been considered in advance of the...

read more

Is Web 3.0?

What should be the Web 3.0 Please? We live only in the age of Web 2.0, or? As a big fan of the programming language Smalltalk I by chance discovered the Fra www.seaside.st. After the first search, I was a little disappointed. The Web page is...

read more