These days more and more Webservices let you manage all kinds of data. Recently I am tracking my fitness using a Mi-Band. And write every day my weight into the MI-Fit app. After two months, I installed an update to this app, with the result, that my weight data was lost. That made me very angry. ater a new update one week later the data is back, but the presentation is very bad. so from a diagam only a line is left. That let me don’t see any progress.

That was my intention to do a new app. The app is made to get used in mobilephones, because data is out there, more seldom in front of your PC. But it also works on desktop. So this app let you organise data in lists. For that the user will define a schema, with fields and datatypes. currently there are text,password, shortText, image, url, data, color. basically, what the html-input element has to offer. One special datatype is the enumeration where some options can get defined. I am planing to use other tables as value too. that would make this app, a relational database system.

The data is stored in a JSON-File. To store I use a imple download-link(an a-Tag with download Attribute that is giving the fileName) and to load data i use an input type file. and trigger on click on it, to open the fileFinder. when the user selects a file, I can load it using the browsers FileReader and parse the JSON-content. This is a good solution for an app, that does not need to get installed. Maybe I transform this app, to be a cordova app, to store the file on the system and sync data on the fly, without the users need to “download”. On an Android phone I get asked if I want to replace the previouse downloaded file. That is convinient.

Let me sum up some great points on that app, even we both know the app is very simple and limited, but the potential is huge and the and the used technology is great. The data is stored in a JSON-file, that makes it easy in any application to adopt thouse data. The UI is not beautiful, but very efficient on mobile. Try it out and convince yourself: ddata

When developing web application you need many programms in a modern environment. That leads many to use tools like grunt or gulp to run tasks automatically. Using thouse tools requires all tools to get translated to thouse frameworks. And some even don’t fit into this setting.

twatch will run many programms simultanously on a single console, making it ease to reason what output came from witch programm. When I develop nodeApplications I have running the node-server, JS-lint, babeljs, regenerator, mocha and other tools running in watch-mode. Normally each of thouse would use one console or run in background printing the output mixed into one open console. Restarting the commands is difficult or timeconsuming.

With twatch you prepare a single file, that will start all programms on a single terminal, helping you to reason what programm printed the output.

For various Projects I thought it would be great to have a graphical programming language, that had cover all Javascript specialities. After I did something like that before. Where I wanted to build a AI simulation MMOG. Now I wanted to build it for more general purpose. When this works. It could work with a whide range of applications. Because today I would build it on top of babylon.js. Babylon would parse any Javascript-file and provide an AST(abstract source tree). The ast could easily get displayed with graphical components. and get changed and moved by drag and drop. When Changing a function or object definition all positions where this was used could automatically get changed.

with that setup, you could build apps, where the users could implement there own logic.

Let’s say you make a Jump and run. Then you tell the player to move left. the user tries. Then you open a message this method is not implemented jet, can you do it. so the user implements a method to move the hero. and then the user can do it for all hero actions. When the user is arriving at a closed door. The user could implement the toogle method to open and close the doore. with a heros cction.

A second example could be a data-management-app. where the user yould define macros and forms to input data in his most efficient way, without a need to a special ajusted app. he could just code the logic with moving blocks.

The possiblilities are endless. before I looked ad scratch, whitch is a programming language that also can compile to Javascript. but this is not using the flexibilities of javascript. second Scratch is implemented on a canvas. that makes it difficult to change the theme. So in all apps. it will look like a toy for children. if the components are displayed with HTML they could be styled easily using CSS. to look like an actual programming lanugage, or more like blocks to move for the younger generation. I could even imagine, that it would be possible to build an IDE based on the Babylon abstract source tree.

how do you think about that Idea, should we start that project, to provide a general purpose graphical programming language supporting all the greatness of javascript?

Recently I found an interesting theory, that sais that OOP is bad. The author Brian Will is showing many code examples, where OOP will never match the right creteria to solve a real world problems. As an alternative he prefered functional or procedural programming. His thoughts made be thinking a lot about good software design. And I decided to make a little HTML/javascript app, completely in functional style.

To do so, there are a few rules to follow. The simple ones are “no new and no this.” Next is “let data be data”. In object oriented programming you bind functionality to your objects, but now only plane simple objects get used as you create them using curly braces {}. The objects get used to structure the app-data and to namespace your functions.

Next I thought the abstration of the DOM tReeact, that I developed serval months ago, where usefull. Actually, when rendering a Template, that is happen in pure functional style. That made me render the UI using underscore-templates. tReeact has the Component-system, that let me handle the UI events.

The plan is now the Events will trigger some functions to change the data and course an rerendering of the entire application ui. This aproach has lead to a great separation of consernes. UI is defined in the templates, Events are handled in Components, the logic is implemented in functions, and the models are just plane data in a structured object-tree.

It has shown, that this way to build an app is very effective, the app is showing a good performance and the structure could easily scale to very complex applications.

The application is available at http://tobiasnickel.github.io/ .
next time I will tell you why I made this app.

Over time software developer also develop a special sence in what conditions they can concentrate best. Some programmer need it absolutly silent. But for me that is nothing. Because anything is always there. When it is to quiet, I will listen to my own breath or some neighbors do anything. Then I listen to them. I found that even more distracting then having music running.

situations

From situation to situation I listen to very different music. That made me get used to say, I am listening to good music. Because I like music from electro, classic, rock/metal and hiphop/rap. Texts can realy lead make an average song great. When programming of course I don’t want to get distracted. So when coding I like to listen to radio paradise. I don’t know any song they are playing, but it sounds good. An othere way I use to not get distracted, is listening one song in a loop. For that I take a song that I realy like, then I listen it “to dead”, until i have no more emotions to it. So, then it is still a good song, but it is not distracting. The last songs I was listening in a loop have beed Ambitions by Donkeyboys, Mysti mountains from the Hobbit-movie, die immer Lacht, or “kein bock by eure Mütter”.

quality

As a good software developer I know ofcourse about the parameter of audiofiles and the quality of sound is very important. But actually i don’t care about kb/s or 80-40000Hz. I think even 32kb is ok. Having that, voices sound good and feelings get transportet well. When programming it is better to use headphones. I like to head deep bass, but I don’t want my heart to get shocked. For that good headphones are important. I think there are many good brands that offer nice headphones. Both is fine, a small button I stick to my ear or bigger once that cover the hear.

settings

I like to feel a deep bass. So I change the settings in my operating system. with very low mids and very high deeps and hights. There it is important not to increase the bass. but to reduce the mids. Because otherwise the quality get very bad. On the image is my current setting for the pulseaudio driver in Ubuntu. In Windows a similar setting is called Bass-Improvement to have system-wide stronger bass. Actually my notebook is not very good. It was cheap, 4 years old runing by an i3. but with that setting, even guys with mac-books tell me the sound of my notebook is so good. So the notebook can not be as loud as on default settings. It is still worth it.

equalizer

By the way, I am not good at dancing or singing. I don’t play any instrument. I just listen to music.