inzynierwibroakustyki_ENG_logo_pack-07_obciety
1673613956993

I didn’t like programming until I found NEO4J and made the MVP of the program myself

I've programmed in many languages ​​in the past c, c++, java, sql and many others. I didn't really like any of these languages. I've always liked databases and tables. What NEO4J did exceeded my wildest expectations. Using the CYPHER language in this database, it was possible to successfully build the MVP of the artist billing program.
Some 15-20 years ago maybe I started programming in C and C++. I wrote simple programs for image processing, sound processing. That wasn't it. When I was finishing mechanical engineering studies at AGH University of Science and Technology, I felt unsatisfied. I wanted to learn more about building software. That's why I chose postgraduate studies at the Jagiellonian University. There I went through many programming languages, many different software development methodologies. Later, while working in various corporations, I used the acquired skills, creating some automations to speed up my work. While working at Borgwarner automotive, I had the opportunity to work with Siemens many times on updates to their program. Siemens engineers have often asked me about features that would be useful to me as a vibroacoustics engineer. It also worked the other way, because many times I reported them interesting features to be implemented.

While working at the startup TANDIG as a product owner, I also programmed. And that's quite a lot. I was tasked with finding a system-programming language that would be best for our problem. I tested many different solutions. At some point I came across the NEO4J object database. I locked myself at home for 2 months, practically did not go out. I studied the structure, studied, wrote my code, and finally created a working MVP demo. NEO4J employees praised the method of solution when valuing the implementation of my program.

Below I paste some of my lines of code in CYPHER:

X:\NEO4J\neo4jDatabases\database-c479acc6-003b-47d6-a6fc-b439c423e6af\installation-4.0.1\import
MATCH (com:composer), (tra:track)
////RETURN com, tra
MERGE (com:composer)-[:composed]->(tra:track )
//START
//1
LOAD CSV FROM ‘file:///X:/NEO4J/neo4jDatabases/database-c479acc6-003b-47d6-a6fc-b439c423e6af/installation-4.0.1/import/01_lodz_b.csv’ AS line
create (:track { name: line[1], track_id: line[0]} )
create (:composer { name: line[2], composed_track_id: line[0] })
create (:artist { name: line[3], reproduced_track_id: line[0]} )
//2
MATCH (t:track),(a:artist)
WHERE t.track_id = a.reproduced_track_id
CREATE (a)-[r:reproduced]->(t)
RETURN type(r)
//3
MATCH (t:track),(c:composer)
WHERE t.track_id = c.composed_track_id
CREATE (c)-[r:composed]->(t)
RETURN type(r)
//4
CREATE (pn:person { name: ‘Paweł’, title: ‘co-founder’, b_model: ‘k_res’ })
CREATE (tb:firma { name: ‘sztartup’, title: ‘startup’ })<-[r:works_at]-(js:person {name:”Jarosław”, b_model: ‘k_res’})
CREATE (pn)-[:works_at]->(tb)
CREATE (pn)-[:owns]->(tb)
CREATE (js)-[:owns]->(tb)
CREATE (pn)-[c:cooperate_with]->(js)
CREATE (js)-[:cooperate_with]->(pn)//
CREATE (product:demo { name: ‘track_up’, title: ‘software’, b_model: ‘k_res’, b_model: ‘cost’, b_model: ‘revenue’ })
CREATE (soft:resource { name: ‘neo4j’, b_model: ‘k_res’, b_model: ‘cost’ })-[de:devlope]->(product)
CREATE (cloud:resource { name: ‘amazon’, b_model: ‘k_res’, b_model: ‘cost’})-[st:store]->(product)
create (pn)-[:programing {b_model:”cost”, b_model:”k_activ”}]->(product)
create (pn)-[:programing {b_model:”cost”}]->(cloud)
create (pn)-[:programing {b_model:”cost”}]->(soft)
CREATE (dj:DJ :customer { name: ‘Trakmajster’, b_model: ‘customer_DJ’ })-[ex:export]->(djlist1a:value:list_event:demo {name:”Lista 05 07 2019″})
create (dj)-[:is_registered_in]->(product)
create (dj)-[:export]->(djlist1b:value:demo:list_event {name:”Lista 01_03_2020″})
//create (dj)-[:export]->(djlist1c:value :demo :list_event {name:”Lista 22 07 2019″})
create (dj)-[:export]->(djlist1d:value :demo :list_event {name:”Lista 02_03_2020″})
create (dj)-[:export]->(djlist1e:value :demo :list_event {name:”Lista 03_03_2020″})
//CREATE (dj2:DJ { name: ‘Funky’, b_model: ‘customer_DJ’ })-[:export]->(djlist2a:value :demo :list_event {name:”Lista 11 07 2019″})
//create (dj2)-[:export]->(djlist2b:value :demo :list_event {name:”Lista 12 07 2019″})
//create (dj2)-[:export]->(djlist2c:value :demo :list_event {name:”Lista 23 07 2019″})
CREATE (place:place :customer { name: ‘Lodz’, type:”club”, b_model: ‘customer_place’ })-[re:receive]->(djlist2:value :list_event {name:”March 2020″})
CREATE (zaiks:firma :customer { name: ‘zaiks’, title: ‘Stowrzyszenie’, b_model:’customer_zaiks’ })
create (djlistmth:demo :list_mounth {name:”March Lodz 2020″, b_model:’k_res’ })-[:sent_to]->(zaiks)
create (place)-[:sent_to]->(product)
create (product)-[:export]->(djlistmth)
create (product)-[:sent_to]->(djlistmth)
create (product)-[:calculate]->(djlistmth)
//create (trala:track { name:”Trala la”})
//CREATE (aut:author :customer { name: ‘Jan Kowalski’, b_model:’customer_author’ })-[:is_author_of]->(trala)
//CREATE (comp:composer :customer { name: ‘Marek Nowak’, b_model:’customer_composer’ })-[iscom:is_composer_of]->(trala)
//CREATE (art:artist :customer { name: ‘Rzepolisław’, b_model: ‘customer_artist’ })-[isart:is_artist_of]->(trala)
//CREATE (trala)-[:is_registered_in]->(product)
//create (bla:track { name:”Bla la”})
//CREATE (aut)-[:is_author_of]->(bla)
//CREATE (comp)-[:is_composer_of]->(bla)
//CREATE (art)-[:is_artist_of]->(bla)
//CREATE (bla)-[:is_registered_in]->(product)
//create (ala:track { name:”ala ma cota”})
//CREATE (aut)-[:is_author_of]->(ala)
//CREATE (comp)-[:is_composer_of]->(ala)
//CREATE (art)-[:is_artist_of]->(ala)
//CREATE (ala)-[:is_registered_in]->(product)
//create (dj)-[:sent_to]->(product)
//create (dj2)-[:sent_to]->(product)
//CREATE (art)-[:is_registered_in]->(product)
//CREATE (comp)-[:is_registered_in]->(product)
//CREATE (aut)-[:is_registered_in]->(product)
//CREATE (dj2)-[:is_registered_in]->(product)
CREATE (zaiks)-[:is_registered_in]->(product)
CREATE (zaiks)-[:update]->(djlistmth)
CREATE (djlistmth)-[:sent_to]->(product)
CREATE (product)-[:calculate]->(tantiemy:demo {name:’tantiemy’, b_model: ‘k_res’, b_model: ‘cost’, b_model: ‘revenue’})
create (djlist1b)-[:update]->(djlistmth)
create (djlist1e)-[:update]->(djlistmth)
create (djlist1d)-[:update]->(djlistmth)
//create (djlist2a)-[:update]->(djlistmth)
//create (trala)-[:update]->(djlist1b)
//create (trala)-[:update]->(djlist1e)
//create (trala)-[:update]->(djlist2a)
//create (trala)-[:update]->(djlist2c)
//create (ala)-[:update]->(djlist1b)
//create (ala)-[:update]->(djlist1e)
//create (ala)-[:update]->(djlist2a)
//create (tantiemy)-[:update]->(art)
//create (tantiemy)-[:update]->(comp)
//create (tantiemy)-[:update]->(aut)
create (dj)-[:played_at]->(place)
//create (dj2)-[:played_at]->(place)

//5
MATCH (t:track), (l:list_event)
WHERE t.list_name = l.listEventName
CREATE (t)-[r:made666]->(l)
RETURN type(r)

////////
MATCH (t:track),(l:list_event)
WHERE t.list_name = l.name
CREATE (t)-[r:made]->(l)
RETURN type(r)
// list_event_id:”Lista 01_03_2020″} to trzeba dopisać od innych list to klucz

// wyszkanie tylko tracków co mają id listy 01….
MATCH (t:track)//,(l:list_event_id)
WHERE t.list_name = ‘Lista_01_03_2020’ //and wl:list_event_id = ‘Lista_01_03_2020’
//CREATE (t)-[r:made]->(l)
//RETURN type(r)
return t.list_name
MATCH (t:track)
WHERE t.list_name = ‘Lista_01_03_2020’
CREATE (t)-[r:made]->(djlist1b)
RETURN type(r)
MATCH (t:track),(djlist1b:value:demo:list_event {name:”Lista 01_03_2020″})
WHERE t.list_name = ‘Lista_01_03_2020’
CREATE (t)-[r:mfffffffade]->(djlist1b:value:demo:list_event {name:”Lista 01_03_2020″})
RETURN type(r)
MATCH (l:list_event)
WHERE l.listEventName = ‘Lista_01_03_2020’
RETURN l

 
automotive
Paweł Niedermaier

Designed in Rzeszów, Made in Germany

The automotive business looks like that in Germany they have research and development of products, and in Poland these products are manufactured. In this post I describe an interesting example showing the reverse trend in the automotive industry. Polish doesn’t mean it’s worse…

Read more
IT
Paweł Niedermaier

I thought I wouldn’t like working as a Product Owner and that I would be developing software for the construction industry

For several months I developed programming software for small and medium-sized construction companies. This project taught me a completely different approach to developing web applications. I had the opportunity to test the demo version and implement the first releases with the first customers. I also had an influence on the development of the application’s features based on feedback from the market.

Read more