Ekim 5

Merkeziyetsiz Ponzi / Decentralized Ponzi

The English version of the article is below.
Yıllardır yakın çevreme anlatıyorum. kripto para merkeziyetsiz ponzidir. yatırım araçlarını düşündüğünüz zaman, hepsinin arkasında bir fiziksel varlık vardır. Mesela altın bir çok alanda kullanılan değerli bir madendir, yada hisse senedi bir şirkette payınız olduğunun kanıtıdır ve kardan pay almanızı sağlar. Ülkelerin para birimleri ise en kötü ihtimalle ilgili ülkede fiziksel ürün takasına imkan sağlar. Kripto para ise kabul görmediği zaman bir hiçtir. Bir oksijen, hava, kum ya da su bile değildir.

Merkezi olmayan kripto para sadece kara para trafiğine hizmet eder, arz talep dengesi bozulduğu anda ise bir ponziye dönüşür.

örneğin lunaya bakacak olursak; luna alıp yüklü miktarlarda paralar kaybeden insanlar var. arz talep dengesi bozulduğunda herkes kaçtığı anda işin ponzi yüzü ortaya çıkar.

yine bir diğer batık kripto para olan one koine bakacak olursak; dolandırıcılık olduğu ortaya çıktıktan, organizatörleri kaçtıktan sonra dahi alım satımı devam etmiştir, çünkü son zamanlarda para kaptırmış olanların tek çıkar yolu yeni kurbanları sisteme dahil etmektir.

Bu bağlamda, merkeziyetsiz kripto para için, arz-talep dengesi bozulduğunda, kesinlikle bir ponzi aracı olacaklarını söyleyebiliriz.

in english

I’ve been telling my friends for years. Cryptocurrency is a decentralized ponzi. When you think of investment instruments, there is a physical presence behind them all. For example, gold is a precious metal used in many fields, or a stock is proof that you have a share in a company and allows you to get a share of the profits. currencies of countries, on the other hand, at worst, allow physical product exchange in the relevant country. Cryptocurrency is nothing when it is not accepted. It is not even an oxygen, air, sand or water.

Decentralized crypto money only serves dirty money traffic, when the supply and demand balance is disturbed, it turns into a ponzi.

For example, if we look at luna; There are people who bought luna and lost large sums of money. When the supply-demand balance is disturbed, the ponzi side of the business emerges as soon as everyone flees.

If we take a look at “one” coin, which is yet another bankrupt cryptocurrency; The trading continued even after it turned out to be a scam and its organizers escaped, because the only way out for those who have lost money lately is to include new victims in the system.

In this context, we can say that they will definitely become a ponzi tool for decentralized crypto money when the supply-demand balance is disturbed.

Haziran 17

SQL Collation nedir, neden kullanılır, Turkish CI AS takıntısı şart mıdır?

SQL Server’daki collation dediğimiz ve türkçe anlamlı bir kelime bulamadığım kavram, verileriniz için sıralama kuralları, büyük/küçük harf ve aksan duyarlılığı özellikleri sağlar. char ve varchar gibi karakter veri türleri ile kullanılan bu kavram, kod sayfasını ve bu veri türü için temsil edilebilecek karşılık gelen karakterleri belirler.

Dünyada ki hiç bir yazılım geliştiricisine Türkçe’deki büyük “I” harfi ile küçük “i” harfinin farklı olduğunu anlatamazsınız.
Ve inatla Turkish Case Insensitive collation kullanırsanız özellikle server collation ayarı olarak başınıza neler gelir?

Bir çok uluslar arası yazılım kurulum aşamasında dahi sunucunuzda çalışmayabilir.
Sebebi ise kullanılan veritabanında, tablo, kolon, prosedür isimlerinde büyük “I” harfi geçecek olması.
örneğin tabloda UID diye bir kolon var ama kurulum sırasında bir joinde bu alanlar x.uid=y.uid diye bağlandı ise bu query sizin sunucunuzda çalışmayacak. Kurulumu tamamlayamayacaksınız. Binlerce dolar verdiğiniz yazılımı kurmak için ticketlar açacaksınız. En sonunda bir uzman sql serverınızdan trace alacak ve collationdan kaynaklandığını söyleyecek.

peki neden hal böyleyken UNICODE collation kullanmıyoruz.

ya da bu sorunu kalıcı olarak düzeltmenin yolu var mıdır?

düşünün bulursanız bana da haber verin.

Ekim 12

SSL Sertifikası üretme, imzalama, doğrulama


Global ssl sertifika üreticilerinden bıktınız mı? bu paralar artık bu kan emicilere gitmesin değil mi? kendi otoritenizi kurabilirsiniz. hatta ve hatta kurun!

Sırasıyla uygulamanız gereken adımlar;
1- önce bir centos 8 üzerine sertifika otoritesi kuracağız.
2- sonra bu sunucu da root sertifikamızı ve private key imizi oluşturacağız.
zaman zaman root sertifikamızı istemci ve sunucularımızın trusted keystorelarına yükleyeceğiz.
3- sonra örnek bir linux yada windows sunucuda secure bir servis için server key ve server csr (certificate signing request, sertifika imzalama isteği) oluşturacağız.
4- sonra bu isteği sertifika otoritemize gönderip private key ile imzalayacağız.
5- sonra server sertifikamızı alıp servisimizin ayarlarını yapacağız.
6- sonra root sertifikamızı örnek bir istemcinin trusted key store una ekleyeceğiz. (normalde işletim sistemi ve browserlar global sertifika üreticilerinin root sertifikalarını kurulum sırasında bilgisayarınızın keystore una yüklüyorlar, böylece global sertifika üreticilerinin sertifikaları servislerle istemcilerin konuşmalarını güvenli hale getiriyor, gidip secure bir siteye girin, sertifikasının hangi global kan emici tarafından imzalandığına bakın, sonra trusted keystore unuza girip o kan emiciyi kaldırın, artık kan emicinin imzaladığı hiç bir sertifikayı bilgisayarınız kabul etmeyecektir. Active Directory kullanıyorsanız kendi sertifika otoritenizin root sertifikasını basit bir policy ile tüm domain kullanıcılarının bilgisayarına login sırasında yükleyebilirsiniz.)
7- sonra servisimizi bir istemciden (bizim örneğimizde web server kullanıyoruz) çağıracağız ve nasıl trusted göründüğünü inceleyeceğiz.

CA Kurulumu
root olmayan sudoer yetkisi olan kullanıcı ile Centos 8 ca otorite sunucuma ssh ile bağlanıyorum. extra packages içerisinden bir uygulama kuracağım için önce epel i kuruyorum, ardından easy-rsa i kuruyorum.

[baris@labca /]$ sudo dnf install epel-release
[sudo] password for baris:
CentOS-8 — AppStream 3.9 MB/s | 7.0 MB 00:01
…..
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
Is this ok [y/N]: y
Key imported successfully
Installed:
epel-release-8–8.el8.noarch
Complete!
[baris@labca /]$ sudo dnf install easy-rsa
Extra Packages for Enterprise Linux 66 kB/s | 118 kB 00:01

Installing:
easy-rsa noarch 3.0.7–1.el8 epel 46 k
Installed size: 117 k
Is this ok [y/N]: y
….
Installed:
easy-rsa-3.0.7–1.el8.noarch
Complete!
/home/baris/ altında easy-rsa klasöründe public ve private keyler oluşturacağım için bir klasör açıyorum, ca işlemleri için gerekli dosyaları
/usr/share/easy-rsa/3/ klasöründen yeni klasörüme symlink olarak bağlıyorum. klasörü baris user ı dışında kimse erişemeyecek şekilde yetkilendiriyorum. private key de bu klasör altında olacağından bu çok önemli. private key i hiç bir şekilde CA sunucusu dışına çıkartmamamız gerekiyor, eğer bu dosya bir şekilde sunucudan çıkarsa daha önce üretip yayınlamış olduğunuz sertifikaların kullanıldığı sistemlerin “man in the middle” ataklarına maruz kalmasının önüne geçemezsiniz.

[baris@labca /]$ mkdir ~/easy-rsa
[baris@labca /]$ ln -s /usr/share/easy-rsa/3/* ~/easy-rsa/
[baris@labca /]$ chmod 700 /home/baris/easy-rsa

ilk olarak init-pki komutu ile public key infrastructure oluşturuyoruz.
[baris@labca /]$ cd ~/easy-rsa
[baris@labca easy-rsa]$ ./easyrsa init-pki

init-pki complete; you may now create a CA or requests.
Your newly created PKI dir is: /home/baris/easy-rsa/pki

nano text editörü oldukça kullanışlıdır, bazı dosyaları editlemek için nano kuruyoruz.
[baris@labca easy-rsa]$ sudo dnf install nano

/baris/easy-rsa altına “vars” diye bir text dosya açarak CA parametrelerimizi tanımlıyoruz
[baris@labca easy-rsa]$ cd ~/easy-rsa
[baris@labca easy-rsa]$ nano vars
set_var EASYRSA_REQ_COUNTRY “TR”
set_var EASYRSA_REQ_PROVINCE “Istanbul”
set_var EASYRSA_REQ_CITY “Beykoz”
set_var EASYRSA_REQ_ORG “TELCO LAB”
set_var EASYRSA_REQ_EMAIL “admin@lab.local”
set_var EASYRSA_REQ_OU “Community”
set_var EASYRSA_ALGO “ec”
set_var EASYRSA_DIGEST “sha512”

CTRL+X ile kaydetme onayını verip çıkıyoruz ve CA mızı oluşturmak için easyrsa komutunu build-ca parametresiyle çalıştırıyoruz. bu kısımda vereceğiniz şifre private key ile sertifika imzalamada ve public key in clientların trusted key storelarına yüklenmesi sırasında sorulacaktır. parametrelere nopass i de ekleyerek password kullanmadan da oluşturabilirsiniz.
[baris@labca easy-rsa]$ ./easyrsa build-ca
Using SSL: openssl OpenSSL 1.1.1c FIPS 28 May 2019

Enter New CA Key Passphrase:
Re-Enter New CA Key Passphrase:
Generating RSA private key, 2048 bit long modulus (2 primes)
…….+++++
………………………..+++++
e is 65537 (0x010001)
You are about to be asked to enter information that will be incorpora ted
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
— — –
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:Lab L ocal CA

CA creation complete and you may now import and sign cert requests.
Your new CA certificate file for publishing is at:
/home/baris/easy-rsa/pki/ca.crt
CA sunucusu yani sertifika otoriteniz artık hazır.
public key (yani domaininizdeki tüm istemcilerin trusted key store larına import edeceği root sertifikası) /home/baris/easy-rsa/pki/ca.crt dosyası.
private key (yani diğer sunucularda kullanacağınız sertifikaları imzalayacağınız ve ca sunucusu dışına çıkarmayacağınız key dosyanız) /home/baris/easy-rsa/pki/private/ca.key dosyası.

SECURE WEB SERVER KURULUMU
yine bir başka centos 8 sunucumuzu önce kendi sertifika otoritemiz ile tanıştırarak root sertifikamızı sunucumuzun trusted key store una ekleyeceğiz. ca sunucumuzdaki public key imizi (/home/baris/easy-rsa/pki/ca.crt) cat komutuyla ekrana döktürüp kopyaladıktan sonra yeni sunucumuzda /tmp/ca.crt dosyasını oluşturarak içine kaydediyoruz.

[baris@labca easy-rsa]$ cat ~/easy-rsa/pki/ca.crt
— — -BEGIN CERTIFICATE — — –
MIIDTjCCAjagAwIBAgIUQRY1WZrvgRXMu…..
WMCtB+Xrntns30cWscPuY6MNgM8+a1gxZkruT4xbTnv3oQ==
— — -END CERTIFICATE — — –
[root@SRVB ~]# nano /tmp/ca.crt
— — -BEGIN CERTIFICATE — — –
MIIDTjCCAjagAwIBAgIUQRY1WZrvgRXMu…..
WMCtB+Xrntns30cWscPuY6MNgM8+a1gxZkruT4xbTnv3oQ==
— — -END CERTIFICATE — — –
[root@SRVB ~]# cp /tmp/ca.crt /etc/pki/ca-trust/source/anchors/
[root@SRVB ~]# update-ca-trust

sunucuma openssl , apache 2 + modssl kurup kendi sertifika otoritemin imzaladığı sertifika ile web hizmeti yayınlayacağım. firewall da 443 portuna erişim izni tanımlayacağım.
[root@SRVB etc]# dnf install openssl httpd mod_ssl
[root@SRVB conf.d]# firewall-cmd -zone=public -add-port=443/tcp - p ermanent
[root@SRVB conf.d]# firewall-cmd -reload

/tmp altında server.key ve server.csr oluşturacağım
[root@SRVB ~]# cd /tmp

[root@SRVB /tmp]# openssl genrsa -out baris-server.key
Generating RSA private key, 2048 bit long modulus (2 primes)
……….+++++
…………………………………+++++
e is 65537 (0x010001)
[root@SRVB /tmp]# openssl req -new -key baris-server.key -out baris-server.req
You are about to be asked to enter information that will be incorpora ted
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.’, the field will be left blank.
— — –
Country Name (2 letter code) [XX]:TR
State or Province Name (full name) []:Istanbul
Locality Name (eg, city) [Default City]:Istanbul
Organization Name (eg, company) [Default Company Ltd]:BKF RND
Organizational Unit Name (eg, section) []:Community
Common Name (eg, your name or your server’s hostname) []:srvb.lab.loc al
Email Address []:

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@SRVB practice-csr]# openssl req -in baris-server.req -noout -su bject
subject=C = TR, ST = Istanbul, L = Istanbul, O = BKF RND, OU = Commun ity, CN = srvb.lab.local

csr talebimi CA sunucuma gönderiyorum. root olmayan kullanıcımı kullanarak yapıyorum.

[root@SRVB practice-csr]# scp baris-server.req baris@192.168.7.49:/tm p/baris-server.req
The authenticity of host ‘192.168.7.49 (192.168.7.49)’ can’t be estab lished.
ECDSA key fingerprint is SHA256:YtxAe/zcUSk1Z5rkmlo430K5/ZYvZMYEVYJo9 t0F0jc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type ‘yes’, ‘no’ or the fingerprint: yes
Warning: Permanently added ‘192.168.7.49’ (ECDSA) to the list of know n hosts.
baris@192.168.7.49’s password:
baris-server.req 100% 1017 1.0MB/s 00:00

CA sunucumda csr ı imzalayarak server.crt dosyasını oluşturup web sunucuma geri gönderiyorum.

[baris@labca ~]$ cd ~/easy-rsa
[baris@labca easy-rsa]$ ./easyrsa import-req /tmp/baris-server.req baris-server

[baris@labca easy-rsa]$ ./easyrsa sign-req server baris-server
Using SSL: openssl OpenSSL 1.1.1c FIPS 28 May 2019

You are about to sign the following certificate.
Please check over the details shown below for accuracy. Note that thi s request
has not been cryptographically verified. Please be sure it came from a trusted
source or that you have verified the request checksum with the sender  .

Request subject, to be signed as a server certificate for 825 days:

subject=
countryName = TR
stateOrProvinceName = Istanbul
localityName = Istanbul
organizationName = BKF RND
organizationalUnitName = Community
commonName = srvb.lab.local

Type the word ‘yes’ to continue, or any other input to abort.
Confirm request details: yes
Using configuration from /home/baris/easy-rsa/pki/easy-rsa-6199.U4e0G A/tmp.aSdJmT
Enter pass phrase for /home/baris/easy-rsa/pki/private/ca.key:
Check that the request matches the signature
Signature ok
The Subject’s Distinguished Name is as follows
countryName  :PRINTABLE:’TR’
stateOrProvinceName  :ASN.1 12:’Istanbul’
localityName  :ASN.1 12:’Istanbul’
organizationName  :ASN.1 12:’BKF RND’
organizationalUnitName:ASN.1 12:’Community’
commonName  :ASN.1 12:’srvb.lab.local’
Certificate is to be certified until Sep 15 07:33:54 2022 GMT (825 da ys)

Write out database with 1 new entries
Data Base Updated

Certificate created at: /home/baris/easy-rsa/pki/issued/baris-server. crt

[baris@labca easy-rsa]$ scp pki/issued/baris-server.crt root@192.168. 7.22:/tmp
root@192.168.7.22’s password:
baris-server.crt 100% 4828 236.6KB/s 00:00

[root@SRVB tmp]# ls
baris-server.crt

[root@SRVB /tmp]# cp baris-server.key /etc/httpd/ssl/
[root@SRVB /tmp]# cp baris-server.crt /etc/httpd/ssl/
[root@SRVB /tmp]# cp /tmp/ca.crt /etc/httpd/ssl/

ssl conf içerisinde yeni sertifikamızı tanımlıyoruz

[root@SRVB /tmp]# nano /etc/httpd/conf.d/ssl.conf
#SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateFile /etc/httpd/ssl/baris-server.crt

# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you’ve both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
# ECC keys, when in use, can also be configured in parallel
#SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SSLCertificateKeyFile /etc/httpd/ssl/baris-server.key

[root@SRVB /tmp]#systemctl status httpd
[root@SRVB /tmp]#systemctl enable httpd
[root@SRVB /tmp]#systemctl start httpd
[root@SRVB /tmp]#systemctl status httpd
Secure Web Server kurulumumuz tamamlandı.

İstemci ye root sertifikamızı yükleyip secure web serverımızı
deneyeceğiz.
bunun için bir windows 10 kullanıyorum, mmc (microsoft management console) yi run as admin ile açıyorum. file menüsü add remove snap-ins adımından certificates i seçerek selected bölümüne taşıyıp next e basıyorum. Arada certificates i hangi account için açtığımı soracak “computer account” u seçiyorum.

Test sunucumun https servisini çağırıyorum ve sertifikayı kontrol ediyorum.

 

Mart 10

SILENT SCREEN CAPTURE

https://sourceforge.net/projects/silent-screen-capture/

You can take screenshots from all of your monitors separately and silently by hitting “prt scr” key with this tool.

you can set options in ini file like below;

# log file path
LogPath=c:\sscapture\log
# screen shot folder
SSPath=c:\sscapture
# to disable logs
SaveLogOnExit=No
# to disable notification baloon
NotificationOnCapture=No

Ekim 25

UDP port testi nasıl yapılır?

UDP bir taşıma katmanı protokolüdür. UDP bağlantısız ve güvenilmezdir. UDP akış kontrolü, hata kontrolü ve yeniden gönderim yapmaz. UDP TCP’den hızlıdır. UDP genel olarak video ve ses iletiminde kullanılır. UDP asla önemli dökümanların iletiminde kullanılmaz.

Örneğin bulunduğunuz networkten başka bir networkdeki UDP bir servise veri göndermeniz gerekiyor. Öncelikle Trace Route komutuyla tüm trafiğin yolunu tespit etmeniz gerekir, aradaki noktalardan bir tanesi bile bazı paketleri göndermezse istediğiniz iletişimi sağlayamayabilirsiniz.

UDP testleri için bir araç olmadığını farkettim ve udp port dinleyen ve udp client olarak sunuculara bağlanabileceğiniz 2 uygulama geliştirdim. UDP test tool u olarak https://sourceforge.net/projects/udptelnet/ adresindeki udptelnet i kullanabilirsiniz.

Temmuz 7

Export Call Records from Genesys Pureconnect for Verint

  • You should select all records to be export from I3_IC database and insert them to a table.
    Below you can see “insert select” statement to do this.

TRUNCATE TABLE EXPORT4VERINT
GO
INSERT INTO EXPORT4VERINT 
 select distinct rd.RecordingId AS RecordingId, ConnectedDateTimeGMT, replace(convert(nvarchar(10),cd.ConnectedDateTimeGMT,111),'/','-') AS StartDate, LEFT(convert(nvarchar(12),cd.ConnectedDateTimeGMT,114),8)+'.'+
 RIGHT(convert(nvarchar(12),cd.ConnectedDateTimeGMT,114),3) AS StartTime,
 replace(convert(nvarchar(10),cd.TerminatedDateTimeGMT,111),'/','-') AS EndDate,
 LEFT(convert(nvarchar(12),cd.TerminatedDateTimeGMT,114),8)+'.'+
 RIGHT(convert(nvarchar(12),cd.TerminatedDateTimeGMT,114),3) AS EndTime,
 case when cd.CallDirection='Outbound' then 2 else 1 end as Direction,
 cd.CallDirection, cd.nHeld, cd.nConference, cd.nTransfer,
 cd.HoldDurationSeconds,cd.LocalNumber as LocalUserId,
 cd.StationId,cd.RemoteNumber,
 replace(replace(replace(
 replace(cd.DNIS,'-',''), 'sip:',''), '@CICAIPADDR:5060',''), '@CICBIPADDR:5060',''
 ) as DNIS,
 cd.LocalNumber,cd.CallId as InteractionId, 
 replace(cd.AssignedWorkGroup,'-','') as AssignedWorkGroup, cd.LocalName
 from calldetail_viw cd with (nolock)
 inner join RecordingDetail_viw rd with (nolock) on cd.CallId=rd.InteractionId
 Where 
 cd.ConnectedDateTimeGMT between '20171201 00:00:00' and '20171202 00:00:00'
 and cd.InteractionType=0 
 and cd.StationId like '%STATION%'
 and cd.localnumber in (
 'EXTENSON1','EXTENSION2'
 )
 order by InteractionId

 

  • You should execute BkfRc4PureConnect2Verint.exe from command line after collect all records.

Tool is located in g:\projectfolder\tool\bkf folder.

BkfRc4PureConnect2Verint.exe CICSERVER CICUSER ConnectedDateTimeGMT RecordingId 2018-06-07 00:00:00 2018-06-08 00:00:00 EXPORT4VERINT g:\projectfolder\ G:\projectfolder\tool\temp_prod.xml 1 gsm StartDate 1

PARAMETERS:

CIC HOST: CICSERVER

CIC USER: CICUSER *user should have read rights to get records, you should configure this from Recorder Policy – Security Rights in PureConnect Administrator. The User should not have any License.

DateTime Field Name: ConnectedDateTimeGMT

RecordingId field Name: RecordingId

Start Date: 2018-06-07 *YYYY-MM-DD

Start Time: 00:00:00

End Date: 2018-06-08 *YYYY-MM-DD

End Time: 00:00:00

Table Name: EXPORT4VERINT

Export Path: g:\projectfolder\ *last backspace (“\”) is most important

Template File: G:\projectfolder\tool\temp_prod.xml

Convert Flag: 1 *use 1 if file should convert to wav otherwise use 0

CIC File Extension: gsm *CIC file type. gsm, wav … etc

Folder Field Name: StartDate  *records will categorize by this field

Delete after convert flag: 1 *if you convert from other format to wav format you should delete old files

 

if you need this tool you can send me an email (baris @ bariskayar.com)

 

 

Aralık 18

Kripto Para

Blockchain altyapısı ile el değiştiren, alınan-satılan, kopyalanamaz, güvenilir sanal emtia cinsi.
Market kapasitesi ve fiyatı en yüksek olanın adı bitcoin. btc diye kısaltılıyor.
Şu anda 1btc 19bin dolar a alınıp satılıyor.
Kim üretiyor, miner (madenci).
Nasıl kazıyor, mining(kazı) algoritmasına göre çalıştırılan programlar ile belli bir formüle göre bazı dizilimler aranıyor.
Bulunan geçerli dizilim block chain e soruluyor, daha önce kayıt edilmemiş ise miner’ın adına kaydediliyor.
Gün geçtikçe geçerli dizilim bulmak zorlaşıyor.

Gelin kripto para olgusunu btc özelinde inceleyelim

Neden alınıp satılıyor?
Dünyanın çeşitli noktalarında para taşıma ihtiyacı var, paralar dünyanın her yerinde, ama taşınması gerektiğinde bankalara, devletlere (yani bir nevi çetelere) haraç(fahiş oranlarla vergi, komisyon) ödenmesi zorunlu.
Eğer arz-talep dengesi değişmez ve talep artmaya devam eder ise btc artmaya devam eder, dünyanın her yerinde para taşımak isteyen insanlar, bu ortak emtia yı kullanarak, ellerindeki gerçek paraları block chainin sağladığı güven temelinde rahatlıkla, haraç ödemeden değiş tokuş yapabilecekler.

Talep edenler ne düşünüyor, neden satın almak istiyor bunu insanlar?
Herkes kolay paranın peşinde. 1 koyup 10 almak gibi bir hayale kapılmış bir çok insanın ağızlarından salyalar akıtarak, dişinden tırnağından arttırdığıyla 0.1 btc almak için didindiklerini görüyorum. Girin sisteme, siz kabul ettiğiniz sürece btc’nin değeri, evet 19 bin dolar, bir gün gelip bu malı kimse satın almak istemeyince, hala sistemden çıkmamış olursanız vay halinize. Ama korkmayın, çöpe atacak paranız varsa denemeye değer.

Alan-satan neye güveniyor?
Sorduğunuzda “nedir abi?” dediğinizde alacağınız cevap, “abi amazon,alibaba btc ile mal satacakmış”. Sisteme giren oyuncuların bir çoğu oyunun farkında ve vakitlice terkedecek sistemi, buna jp morgan, alibaba, amazon gibi manipulatörler de dahil. Şüphesiz bu şirketlerin finans departmanlarında bu tip oyunlarda katılımcının ne zaman patlatılacağını çok iyi tahminleyen uzmanlar mevcut ve patlama anı sakince beklenmekte. Belki zamana yayarak, patlata patlata götürülmekte. Bir gün gelecek ve amazon, alibaba .. vb “btc ile satmıyoruz” diyecek. Belki de bunlar bu malı vakitlice aldı ve rezervleri okadar yüksek ki btc artsın diye bu tip numaralar çekiyorlar ve günü geldiğinde erite erite kaçacaklar terkedecekler sistemi. Kim bilir 😀

Tüm btc kazılıp bittikten sonra ne olacak?
Tüm btc kazıldıktan sonra, sadece karapara taşımak isteyen ve vergiden kaçmak isteyen yatırımcı sistemin içinde kalacağı için btc arz talep durumuna göre gerçek fiyatını bulacak. benim tahminim, bu fiyat 1btc 100 $ bile olmayacak o gün geldiğinde. O dikine çıkışlar, o gün geldiğinde, dikine inişler neticesinde çoktan yerle yeksan olmuş olacak.

Fiyatı belirleyen arz ve talep ile ilgili ne söyleyebiliriz?
Sisteme son giren (dikine inişlerin hemen öncesinde) tüm varlığını kaybedecek, sistemin ne zaman patlayacağı muamma.

peki insanlığa bir getirisi olur mu?
btc yada diğer kripto paraların bir getirisi olmaz, hepsi bir süre gerçekten değerliymiş gibi işlem görecek, ama sonu hüsran. Gerçek bir değer arz etmeyen emtia hayalidir. Hayali olan bir piyasa sadece işine gelen yatırımcıyı çeker. Bakıyorum bu işe soyunmuş profile, hepsi 1 koyup 10 alma derdinde. 2000 dolar dan alan 100 bin dolar olana kadar bekleyeceğini söylüyor. “Paşam herkes bunu yaparsa arz kalmazsa talep olmazsa ne olacak bu işin sonu?”. İnsanlık için tek kazanım Block Chain kurgusudur. Bir çok iş sürecinde insanın dahil olduğu tanık, onaylayan makam gibi fonksiyonları ortadan kaldırabilecek bir yapı bu. Misal bir devletin tüm halkının kayıtlı olduğu ve tüm olayların (sabıka,evlilik,boşanma,suç,ceza,dava…vb) kaydedildiği bir Block Chain düşünün. Nüfus memuruna ihtiyaç yok, Mahkemedeki kalem müdürlüğüne, tapu dairesine … hiç birine ihtiyaç yok.

Son önerim bu işi kara kara düşünenlere, 1-2 hafta içinde vurkaç yapın, ama fazlasını beklemeyin. araya gidersiniz 😀

Category: Makale | LEAVE A COMMENT
Mart 14

JS ve SQL ile iki nokta arasındaki mesafeyi ölçme

Günümüzde bir çok mobil uygulama ve web sitesi tablet, akıllı telefon ve gps desteği olan masaüstü yada dizüstü bilgisayarların lokasyon bilgilerini alabilmekte. uygulamalarda HTML5 Geolocation kütüphanesi kullanılmakta.

Uygulamalarda GPS koordinatlarını almak için


<!DOCTYPE html>
<html><body>
<p>Kordinatlar için tıklayın.</p>
<button onclick="lokasyonuBul()">Burayı tıkla</button>
<p id="lokasyonBilgi"></p>
<script>
var x = document.getElementById("lokasyonBilgi");
function lokasyonuBul() {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(showPosition);
    } else { 
        x.innerHTML = "Geolocation is not supported by this browser.";
    }
}
function showPosition(position) {
    x.innerHTML = "Latitude: " + position.coords.latitude + 
    "<br>Longitude: " + position.coords.longitude;
}
</script>
</body></html>

SQL ile iki nokta arası kuş uçuşu mesafeyi hesaplamak için:


CREATE FUNCTION MesafeKacMetre(
@Latitude1 float,
@Longitude1 float,
@Latitude2 float,
@Longitude2 float
)
RETURNS float
AS 
BEGIN
-- CONSTANTS
DECLARE @EarthRadiusInMeter float;
--SET @EarthRadiusInMiles = 3963.1
SET @EarthRadiusInMeter = 3963.1 * 1609.344
DECLARE @PI  float;
SET @PI = PI();
-- RADIANS conversion
DECLARE @lat1Radians float;
DECLARE @long1Radians float;
DECLARE @lat2Radians float;
DECLARE @long2Radians float;
SET @lat1Radians = @Latitude1 * @PI / 180;
SET @long1Radians = @Longitude1 * @PI / 180;
SET @lat2Radians = @Latitude2 * @PI / 180;
SET @long2Radians = @Longitude2 * @PI / 180;
RETURN Acos(
Cos(@lat1Radians) * Cos(@long1Radians) * Cos(@lat2Radians) * Cos(@long2Radians) +
Cos(@lat1Radians) * Sin(@long1Radians) * Cos(@lat2Radians) * Sin(@long2Radians) +
Sin(@lat1Radians) * Sin(@lat2Radians)
) * @EarthRadiusInMeter;
END
 
select dbo.MesafeKacMetre( 29.0904, 41.0944, 29.0778, 41.0970 )

Şubat 14

Windows updatelerini toplu olarak kaldırma

Windows 10 ile birlikte microsoft güvenlik güncellemeleri başa bela olmaya başladı.
Bazı güncellemelerin bazı uygulamaların ağ üzerindeki hareketlerini kısıtlayan ters etkilere sebep olması sinirleri iyice gerdi.
Microsoft güncellemelerini toplu olarak kaldırmak için aşağıdaki toplu işlem dosyasını kullanabilirsiniz:


@echo off
FOR /f "tokens=1-6 delims== " %%a IN ('wmic qfe') DO (
 rem echo a=%%a b=%%b c=%%c d=%%d e=%%e f=%%f
 IF [%%d]==[Security] (
  echo security update: %%b kaldiriliyor.
  wusa /uninstall /kb:%%b /quiet /norestart
 )
 IF [%%d]==[Update] (
  echo update: %%b kaldiriliyor.
  wusa /uninstall /kb:%%b /quiet /norestart
 )
)