About Me

My photo
I worked as freelancer on freelance.com for many years, Then opened my Company. I did software coding with my company. But also did pottery -- I know well business management. Software coding is coming next to it as a plus. It helps but organising is as much important as coding. I have many years of experience in business management of Industrial Construction works. I am quite known as company for CAD drafting and 3d for architectural design. I had quite a lot experience at USA and at Turkey. I am less known, in my pottery love.

Monday, April 21, 2025

neo4j-mathematics

 create the nodes:

CREATE (n:sil {name:"k1", val: 1250}),(m:sil2 {name:"k2", val:1250}), (n)-[r:sil3]->(m)

Addition:


MATCH (n:sil), (d:sil2)
RETURN SUM(n.val + d.val)

//returns 2500

Substraction


MATCH (n:sil), (d:sil2)
RETURN SUM(n.val - d.val)

//returns 0

Multiplication:


MATCH (n:sil), (d:sil2)
RETURN SUM(n.val * d.val)

//returns 1562500

Division:


MATCH (n:sil), (d:sil2)
RETURN SUM(n.val / d.val)

//returns 1

Formatting numbers


first you have to setup apoc in settings / plugins . Then close database, exit neo4j and reopen it. Apoc will be activted.

MATCH (n:sil), (d:sil2)
RETURN apoc.number.format(SUM(n.val * d.val))

//returns "1,562,500"

Source:


Wednesday, January 22, 2025

Business reference

 


Outside Universe Consulting IT and Programming

(Branch of Alorya Ser.Teknoloji A.S. – Ankara) (previous our family`s company was Eski Istanbul Ltd. Co)

ORUÇ KENAN YILDIRIM

Manager

Adress: Cayyolu / Ankara

Cell: 0 535 930 66 18  

E-mail: oruc@outsideuniverse.com 

Web: http://www.outsideuniverse.com

Business Reference

Turkey Software developping reference:  Enka Insaat ,  Turbosan Ltd ,  Belgi Insaat

International Coder reference 

  • UK  Government – Pensions and Amendments department - Helpdesk  database, and Document Control database.

  • Smart Forms Corporation - USA:. Construction permits database design. 

  • Diving SA - Australia  - Sport School Project

  • Belgi Construction Company for Algeria  - Warehouse, Logistics and Finance database for Saida project  and Skikda Project 


Computer Literacy

I am a professional computer programmer. I participate to international programming bids. I have clients from USA, UK and Australia mainly.

Software Developping

  • Visual Basic

  • PHP / MYSQL

  • ASP

  • ASP.NET

  • SQL 

  • MS Access and all office applications 


Web design and Database

  • Javascript 

  • HTML

  • CSS

  • Dreamweaver

  • Flash




database design and planning - old notes - 2004

Suggested Planning

Please find hereby the method of working that I suggest,

1-Objective and scope

The objective here is to understand the steps of the work, and to make the maximum automation in your work process. A database should be designed to minimize the paper come and go, to minimize the daily data controls etc. So the objective is to make your business running more efficiently with a database use.

2-Planning of work

  • The first step is to exchange information. I will get all your requests as reports content, type of data to enter.

  • I will prepare a prototype.

  • After you will revise. comment, and suggest on this prototype and then you will notify me about them.

  • Then I`ll prepare and send the second database. This second database will be the program ready to run.

  • Also I will organize the database structure according your work flowchart

  • I will assign operability and control options according the user place in the hierarchy.

  • On your approval I will prepare the final database by making the final touch on it, and finalise it.

  • For making this planning running most closely the same in practice, I will stay all the time in contact with you.

  • Finally I will send you this program`s user manual.

  • Also I will be online for services on after sale.

  • If any need of change will occure, you will notify me for the changes to be done, I`ll prepare this changes and send it to you.

3 - Technical Details

I will provide you one database where you will be able to install this database for multi user environment.

4 - Further Technical details of the database:

The program I will design will have its 
backend on the server. So the whole data entered will be stored on your server.

The 
frontend will be placed on the user`s computer, Id Est on the local hard drive of each user.

The main reason I do this is because the frontend is much more heavier then the backend, and when you run it it requires more space in memory of the computer. By placing it on the user`s computer 
I avoid server`s memory being overloaded.

This system will open you the way to convert in the future, this database to sql server easily.

 

Your satisfaction is my primary objective in my business

If you are interested and you would like to get more information on my services, do not hesitate to contact me

Other Works I make the consulting

 

1.   The QRS Database for QS Department

a.      For this database I made all the necessary changes. I don`t think there will be any need of doing something special

b.     Shashank has given aleady a training to all QS department about how the system works and the procedures to follow for reporting to the client, to the planning and other reportings

c.      Generally the way the QS personnel maintain their data is as follows

                                                    i.     Marina and Lena make the batchloading (batchloading = adding data) to the QS system of new data. They are used to this thing for many months already

                                                  ii.     Lena is trained to make the changes in the piping database for progress reporting of the cimtas production in the system.

                                                iii.     Lena is also trained on middle level about access database programing, She can make middle level queries for data checking and and she can also make some massive updates. But for doing this operation the best is she get support and help by Gokhan Nazikkulak or Haluk Tuna or Tolga Coskun (They know well Access programming, especially Gokhan Nazikkulak and Haluk Tuna)

                                                iv.     Also Marina and Lena makes the necessary changes to the database. They are trained for making simple queries, simple filterings and simple changes in the system.

                                                  v.     Aydin, and the two Joey Brothers are preparing the data to batchload and they coordinate this job with the girls. They have been trained to make the simple filtering in the system and making the checking and changes they require.

d.     If there will be any additional need about this database, it is going to be about the reporting section. This work can be done from here or from there by Gokhan, Haluk or Tolga Coskun. As Gokhan has a really advanced level he can be more helpful about it. But as it was discussed with Shashank, the QRS database got all the reports and forms necessary for running the department jobs. As this database has been used in 2 projects already , and according the fact that during 1 year I have been only interventing about adding new report only, I don`t think you`ll get any problem about the database structure. Also The mechanical, electrical database are really well maintained by the two Joey brothers. About the Civil database Aydin and I have been corrected the data and this database is ready to produce correct data, We stored many system for this database so as to control the best way the data entered and the data changed. Aydin got lots of training about it.

2.   The database for Mechanical Engineering and Mechanical construction Department

a.      This database structure has been established many months ago and it is running for many months without a problem occurred. Also for its production Tolga Coskun has participated actively, and he knows very well its structure. For any reporting needs for this database I can produce any report by your requirement. I don`t think that there will be any change on its structure. So this will cause no problem to you.

3.   The databases for HSE Department.

a.      All the database for HSE department have been maintained for long period. For the last six months I had no more request for any change or adding anything. I guess thess databases have proven their performance, they don`t need any more any maintenance.

b.     The HSE may only require new database. I can provide them without problem in short time

4.   The procurement Department database for reporting and data controlling of the MMSXP

a.      I have prepared a database for procurement department. But as far as I know they were no need of this database.

5.   Bar database and the library database

a.      These database are working well for since 4 months. The problems that raises up about them is generally due to IT. Either there are network updates that causes connection interruptions becauses they change the addressing system.

b.     The database need to have direct connection to the computer stored in SEIC bar and in BETS bar so as to produce the report, if there is any formatting of these computer or change in the network system then the connection is lost and should be restored.

The library database is also working the same way. I suggest to IT to have the least intervention on the bar and library computers

Experience

In just few words about the following table:

After your analyse of the table, you may conclude like many of our customer.

We are reflecting our experience accumulated in many years to our customer`s business. We do and do again same programs that has proven its reliability

Past Experience about Custom Programming

About my personal experience

 

I have been working in construction business at Bechtel Construction Co as Cost Engineer and programmer in the same time I worked for the Russia/Sakhalin project and Kazakstan Tengiz project. I did  programs for various  departments of the construction site.

Also I designed many access databases for companies in different sector like construction, real estate, advertisement agency, furniture retailing.

Among my

XX-JV

experience :

I did databases and maintained them during 1.5 year for:

· quantity surveying,

· logistics,

· purchasing and warehousing,

· cost,

· finance,

· electrical, mechanical and civil site construction control,

· personnel payroll

· and finally safety departments.

Equipment warehousing and workshop (My partner Gokhan`s experience for over 7 year)

Safety departments.

As

Outside Universe Consulting we did databases for:

 

· Finance

Call lines helpdesk,

· Document control ,

· Advertising agency general database (including bid, accounting and customer address book).

· Logistics

· Warehouse control and reporting

· Personnel Payroll and human ressources

· Sport Schools Student achievements




Sunday, November 10, 2024

neo4j - creating nodes- relationships

Giriş ve birkaç not

İlk giriş için birkaç not yazmam gerekti. Aşağıdaki notları esasında kendim için tuttum. Ve Neo4j ile ne yaparsam yapayım bu sayfayı acayip çok kullanıyorum ve işime çok yarıyor. Demek ki sizin de çok işinize yarayacak.

Neo4j nedir? 

Basit cevabı: Graph database dediğimiz ilişkisel veri tabanı. RDBMS'in relational kısmı mevcut ama ekstrası da var: AI ile beraber işlemeye uygun bir veri tabanı sistemi. 

Farklı ikinci cevap: Neo4j gibi graph database'ler bugünün yazılımlarıdır! Geleceğin yazılımı demeyeceğim, çünkü geleceği artık yaşamaya başladık bile. AI ile ilgiliysen Neo4j kullanman gereken yararlı bir yol. Diyelim Herhangi bir dernek , vakıf, devlet kurumu, veya bürokratik bir birimde çalışıyorsun: Neo4j kullanman gereken, hatta zorunda olduğun bir veri tabanı programıdır.

Neden mesela MySQL, SAP veya başka RDBMS programı değil de Graph database olan Neo4j?

Çünkü 
1/ Şu anda piyasada yaygın olan RDBMS sisteme dayanan veri tabanları, eski bir sisteme aitler. RDBMS harikulade bir sistem, ama yetmiyor, AI için yeterli değil, bu sebeplerle artık tarihe karışmaya başladı bile. Büyük kurumlar çok hantal ve bunların yönetimi, hatalı şekilde düşünerek, bu ağır hantal yazılımlarıı kullanmak zorundaymış gibi hissediyorlar.  
Bu hatalı düşünceleri sebebiyle, bu ağır ve büyük kurumlar da tarihe karışacak, çünkü esnekliğe sahip değiller. İşin acı yanı tarihe karıştıklarını gazetelerde yavaş yavaş okuyoruz da. Esneklik bence veritabanının mantıklı şekilde NoSQL dataları barındırabilme kapasitesi ile geliyor. RDBMS'de nosql datalar, data integrity'yi bozuyor, hatta RDBMS'lerin ilk harfi olan Relational mantığına ters düşüyorlar. Ama bugünün dünyası NoSQL dataları gittikçe daha çok kullanıyor. İşte bu modern zamanın hali RDBMS'leri zor duruma düşürüyor bence. Bu sebeple de RDBMS 'e dayanan veri tabanı yazılımları obsolete yani teknolojik olarak geri kalmış oluyorlar. 

17 sene RDBMS'i kullandım ve hayrandım, ama Graph database ile tanışınca eskidiklerini anladım. Dev kurumlar, sizlere kötü bir haberim var; kusura bakmayın ama boşu boşuna RDBMS bazlı programlarınızı bilen adamları işe alarak, bünyenizi şişiriyorsunuz. Yeni teknolojiye geçmezseniz, harcamanız şimdiden boşa çıkmaya başlayacak. 

Piyasa örneklerini hatırlayın; Koskoca "Nokia" ve "Motorola" yeni teknolojiye ayak uyduramadıkları için ne olduklarını bile anlamadan yokoldular. İşte RDBMS bazlı yazılımları kullanan firmaların da yakın geleceği ne yazık ki böyle. İşin acı yanı Dünya'daki pek çok devletin en önemli kurumları RDBMS bazlı yazılımlar ile ayakta duruyorlar. Ama Dünya acımasız. Bu ülkelere piyasa acımayacak, sırf eski nesil veri tabanı kullandıkları için bu ülkeler geriye düşecekler.
 
2/ Neo4j Graph Database dediğimiz 2000 'li senelerin başında ortaya çıkan devrimsel bir veri tabanı sistemi. Neo4j'nin RDBMS bazlı db'lere nazaran "data integrity" sağlamasını karşılaştırırsak, çok daha iyi olduğunu görürüz. Bir ilişkili veriler kümesi kurmak Neo4j'de 2 kat daha kısa ve query ile sorgulamada da herhalde birkaç kat daha hızlı, Milyon datalara erişimde ilişkisel verilere göre çok daha hızlı. Yani Neo4j ileri bir kuvvete sahip. 

RDBMS mi yoksa Graph Database mi? Hangisinin geleceği parlak? 

Kanaatimce eski tip veri tabanları son tangoyu oynuyorlar, eski yapılar, eski kafalar, eski düzenler bu eski tip RDBMS'leri delicesine ama çok lüzumsuz şekilde koruyor.  Üzgünüm ama "Nokia" ve "Motorola" nın "Iphone" ve "Android" telefonlar çıktıktan sonra yokolma örneklerini hiç bir devlet kurumu ve özel kuruluş unutmamalı. Çünkü herhangi bir kurum dev boyuta ulaşsa da, muazzam bir insan, altyapı ve parasal sermaye biriktirse de, teknolojik değişim, az olan akıl sermayesiyle bile, bu dev insan ve finansal sermayeli kuruluşları serçe parmağıyla yıkmaya kudretli oluyor. 

Yani devir artık para devri değil akıl devri. Ve akıl artık sadece kafada olması değil bilgisayarda da olması gerekiyor. Bu çok tuhaf değil mi? Binlerce yıldır insan aklını öven, ve insan aklının herşeyi yapabileceğini söyleyen yazılar okuduk durduk. Bugün insan aklı bilgisayar aklı tarafından geçilmek üzere. 

İşte Graph database bu yeni aklın kullanım aracı. "Bilgiyi kontrol eden dünyayı kontrol eder" lafına göre harekete etmeliyiz bizler. Buna göre, bilgi oluşturmanın yeni aracı olan yeni tip veri tabanı olan Graph Database yazılımlarını kullanmak gerekiyor. Gelecek artık bugündür. Bu sebeple bugün ayakta kalmak isteyen kurumlar teknolojiye ayak uydurmak zorundalar. Bu istisnasız tüm devletleri dahi ilgilendiren bir husus. Devletler de ayakta akalabilmek için teknolojiye ayak uydurmak zorundalar. 

17 senelik deneyimlerimde gördüğüm yegane şey: Kurumlar, RDBMS, veya daha eski teknoloji olan Excel ve bugünkü türlü şekillerine, aşık kaldıkça, romantik ve nostaljik olup ayrıca da batan kurumlar  olacaklardır. 

"Verileri excel'de de toplarız, veri tabanı denen saçmalık da ne ki! " diye sürekli böbürlenen son patronum şirketini iflas sebebiyle kapatmıştı. Teknolojiye gözünü yuman bir patrondu, sonunu kendisi hazırladı. 

Rekabette arkalara düşen, küçülmek zorunda kalan, bir başka çalıştığım kurumun müdürleri ve sahibi de aynı hataları yaptılar.  Eski tip veri tabanlarına milyonları gömüp, "yeni teknoloji de ne ki, bak biz milyonları şu "X" yazılıma gömdük" diyorlardı. Oysa ki yeni yazılımlar daha ucuz ve daha verimliler. Ama görmek istemediler. 

Bunlara karşı ne diyeyim bilemiyorum! "Her koyun kendi bacağından asılır" demek istemiyorum . Çünkü, bu güzel bir laf değil. Bu laf şunu demek ile aynı: sen yokolmaya giderken seni sadece izleyeceğim, sen yokolacaksın ben de ayakta kalacağım. Çok acımasız, yardımseverlikten uzak bir görüşü tasvir ediyor bu laf. Bu laftan dolayı babamdan azar işitmiştim, bunu sizlere aktarmam gerekiyordu.
aklın olmadığı yolda birisi yürüyorsa bu kişiler bu yoldan dönmeleri sağlanmalı, oturup da onun kötü gidişini seyretmemeli insan.

Düşünceler ve deneyimlerimden elde ettiklerimi iletmeye çalıştım.

Create

Create unique Node

MERGE (p:kol1 {name: 'Kazan'}) 

Create multiple nodes with label

CREATE (a:kol2 {name: 'Cafe'}), (b:kol2 {name: 'Tarim'}), (c:kol2 {name: 'Otel'}), (d:kol2 {name: 'Havacilik'}), (e:kol2 {name: 'Sanat'}), (f:kol2 {name: 'Endustri'}), (g:kol2 {name: 'Spor'})

MERGE = Duplicate`i engeller ve create eder
CREATE = Duplicate var mi diye kontrol etmez

Create Relationship by matching (better option)

MATCH (b {name: 'Uretim'}), (a {name: 'Kazan'})
MERGE (a)-[R_K_01_01:SEKTOR]->(b)
or
MERGE (a)-[:LIKES]->(b) 

Create Nodes and Relationship all together - easier way:

CREATE (a:kol1 {name: 'Kazan'}), (b:kol2 {name: 'Cafe'}), (c:kol2 {name: 'Tarim'}), (d:kol2 {name: 'Otel'}), (e:kol2 {name: 'Havacilik'}), (f:kol2 {name: 'Sanat'}), (g:kol2 {name: 'Endustri'}), (h:kol2 {name: 'Spor'})

CREATE (a)-[pr:FAALYT]->(b), (a)-[pf:FAALYT]->(c), (a)-[pl:FAALYT]->(d), (a)-[pl:FAALYT]->(e), (a)-[pl:FAALYT]->(f), (a)-[pl:FAALYT]->(g)
RETURN a,b,c,d,e,f,g

Create Relationship - has problems see note

MATCH (cmk:kol1), (ddm:kol2)
WHERE cmk.name = 'Kazan' AND ddm.name = 'Hizmet'
CREATE (cmk)-[R_K_01_01:FAALYT]->(skol:kol2 {name: 'Spor'}),(cmk)-[R_K_01_02:SEKTOR]->(ddm),
(ddm)-[R_H_01_01:ALT_FT]->(cfkol21:kol2 {name: 'Cafe'}),(ddm)-[R_H_01_02:ALT_FT]->(cfkol22:kol2 {name: 'Otel'});

Note: it creates the nodes as duplicates: cafe, otel, spor

Delete

Delete the node and its relationship

MATCH (n:kol2 {name: 'Hizmet'})
DETACH DELETE n

Delete nodes with null names (and their relationships)

match (n) WHERE (IS NULL(n.name)) DETACH DELETE n

Delete node by its elementid

MATCH (p) where elementId(p)='4:2281ff98-ea44-490d-836f-e6961cda3ec3:16'
DETACH DELETE p

Remove a node`s label

MATCH (n)
WHERE ID(n) = 35 REMOVE n:Tarla 

don`t know

MATCH ()-[r:FAALYT]->(n:kol2 {name: 'Cafe'})
DELETE r

Querying

Query for one node:

MATCH (a:kol1 {name: "Kazan"}) RETURN a

Change

Set a property name (property here is `Labels`< > label)

    MATCH (n) WHERE Id(n)=13 SET n.Labels = 'Sektor'

    Edit - baska yontem ? :  test ettim - tercih edilen: - 
    Hurriyet ve Itilaf node`una kurulus ekledim
     MATCH ({name: 'Hurriyet ve itilaf'})
     SET n.kurulus = '1919'

Remove property

    MATCH (a {name: 'Hizmet'})
    REMOVE a.Labels

    ornek 2: 
    `Muhalif` ana node`una, yanliskla `kurulus` ve data da `1919` tarihini \eklemisim
    asagidaki kod ile, `kurulus` property`si icindeki `1919` datasi ile silinir
    MATCH (a {name: 'Muhalif'}) REMOVE a.kurulus

Change label (by removing the old one)

MATCH (ddm:kol2) // eski property`yi bul: kol2
WHERE ddm.name IN ["Hizmet"] // Hangi var olan node icinde? Cevap = Node adi: Hizmet
WITH ddm
REMOVE ddm:kol2 // bu node`daki eski property "kol2" `yi siliyor
SET ddm:skt1 // bu node`a yeni property: "skt1" `i ekliyor

Change Relationship type:

It is not possible to do it directly (by: jaderberg). But you can do something that looks like to it:

MATCH (n:kol2 {name:"Spor"})-[r:URETIM]->(m:Fun_Hizm {name:"Tenis"})
CREATE (n)-[r2:FUN]->(m)
SET r2 = r
WITH r
DELETE r
(source: https://stackoverflow.com/  by: Michael Hunger edited: Hendy Irawan)

Change Node`s name property

Match (n:kol1{name:'Kazan'}) Set n.name = 'Tarla'

Match by id

MATCH (n)
WHERE ID(n) = 35

Data integrity

Constraint

CREATE CONSTRAINT Fun_Hizm_Uniq FOR (a:Fun_Hizm) REQUIRE a.name IS UNIQUE

CREATE CONSTRAINT ideol_uniq FOR (cc:ideoloji) REQUIRE cc.name IS UNIQUE

Import

Import data from csv

LOAD CSV  WITH HEADERS FROM 'file:///n4j_cift_02_node_yrd_dal_is_kolu.csv'
AS row
MERGE (:2_yrd_dal {id:  row[1], is_ad: row[2], Sehir: row[3], type: row[4]});

LOAD CSV  WITH HEADERS FROM 'file:///n4j_cift_02_node_yrd_dal_is_kolu.csv'
AS row
MERGE (:yrd_dal {is_ad: row[1], Sehir: row[2], type: row[3]});

LOAD CSV  WITH HEADERS FROM 'FILE:///n4j_cift_01_node_anadal.csv'
AS row
MERGE (:Ana_dal {is_bolgesi_ad: row[1], sehir: row[2], mevki: row[3], type: row[4]});

LOAD CSV WITH HEADERS FROM 'FILE:///n4j_cift_01_node_anadal.csv'
AS row
CREATE (and:ana_dal)
SET and = row;

LOAD CSV WITH HEADERS FROM 'FILE:///n4j_cift_02_node_yrd_dal_is_kolu.csv'
AS row
CREATE (yrd:yrd_dal)
SET yrd = row;

LOAD CSV WITH HEADERS FROM 'FILE:///n4j_cift_03_node_uyg_is_kolu.csv'
AS row
CREATE (usk:uyg_kol)
SET usk = row;

LOAD CSV WITH HEADERS FROM 'FILE:///n4j_cift_04_node_uyg_tip.csv'
AS row
CREATE (utip:uyg_tip)
SET utip = row;
n4j_cift_01_node_anadal
n4j_cift_02_node_yrd_dal_is_kolu
n4j_cift_03_node_uyg_is_kolu
n4j_cift_04_node_uyg_tip
n4j_cift_05_rel_menfaat_iliskisi
n4j_cift_06_rel_uyg_baglantisi
n4j_cift_07_rel_yapilacak_is

Sum

MATCH(n:Person) RETURN SUM(n.salary) as value 


neo4j-mathematics

 create the nodes: CREATE   ( n : sil  { name : "k1" ,  val :   1250 }),( m : sil2  { name : "k2" ,  val : 1250 }),   ( ...