28 Ağustos 2023 Pazartesi

Dokcer Compose ve Prometheus AlertManager

Örnek
prom/prometheus image Prometheus içindir
grafana/grafana image Grafana içindir
prom/alertmanager image AlertManager içindir

Şöyle yaparız
services:
  prometheus:
    image: prom/prometheus:v2.46.0
    ports:
      - 9090:9090
    volumes:
      - ./prometheus/tmp:/prometheus
      - ./prometheus/config:/etc/prometheus
    command: --config.file=/etc/prometheus/prometheus.yml --log.level=debug

  grafana:
    image: grafana/grafana:10.0.3
    ports:
      - 3000:3000
    volumes:
      - ./grafana/tmp:/var/lib/grafana
      - ./grafana/grafana.ini:/etc/grafana/grafana.ini

  alertmanager:
    image: prom/alertmanager:v0.25.0
    ports:
      - "9093:9093"
    volumes:
      - ./alert-manager/tmp:/data
      - ./alert-manager/config:/config
    command: --config.file=/config/alertmanager.yml --log.level=debug

27 Ağustos 2023 Pazar

Aikido - Nikyo - Bilek Kilidi

Giriş
Bilek  kilidi genellikle 
- birisi bizi tutarsa (örneği bir elle tutup, diğer elle vurmak için)
- fırsat çıkarsa
kullanılabilir

Bıçağa Karşı
Nikyo üzerime doğru elinde bir bıçakla saldıran birisine direk uygulanabilecek bir teknik değil. Çünkü rakip çok hızlı bir şekilde bıçağı kesme ve delmek için kullanabilir. Yapılması gerek en ilk şey rakibe vuruş ile onu yavaşlatmak, yani hızını azaltmak. Bu konuyu gösteren bir video burada

Nikyo'dan Kaçış
Nikyo'dan kaçmak mümkün. Bunu gösteren bir video burada. En basit yöntem dirseği havaya kaldırmak. Bu yöntem Nikyo'daki Z pozisyonuna daha geçilmemişse kullanılabiliyor. Z pozisyona geçilmişse bence artık çok zorlama olur. Bunun için 
- yere biraz daha yaklaşıp dirsek yukarıda bırakılabilir
- rakip dirseği kontrol etmiyorsa dirsek yukarı kaldırılabilir
- Video da gösterildiği gibi bilek kavanoz kapağı açar gibi çevrilebilir


26 Ağustos 2023 Cumartesi

Ryote Dori - Double Wrist Grab

Giriş
İki el ile iki el tutulur.

Aikido vs Wing Chun
Wing Chun doğası gereği hemen saldırıya geçiyor. Amaç iki elimin de rakibin ellerininin iç tarafında olması. Aikido doğası gereği dairesel, Wing Chun ise doğası geri doğrusal yani düz bir hatta ilerliyor


Wing Chun
Eller yukarı kaldırılır veya bir tanesi yana götürülür ve tekme, şuto vuruşlardan birisi yapılır. Bir video burada 

Aikido
Aikido bir şeyden kurtulma ve savuşturma amaçlı olduğu için rakibi dengesini bozarak, fırlatma veya hareketsiz hale getirme amacını güder. 

1. Tenchi Nage
Fırlatma amaçlıdır. Bir video burada. Bir el sanki dur işareti gibi yukarı kaldırılır. Diğer el de altta dur işaret yapan elin dirseğine doğru getirilir. Alttaki eli yana açarak ileriye yani rakibin yanına doğru bir adım atarım.

2. Kokyu Nage
Bir video burada. Ai hanmi duruşta ben yan dönerek rakibi aşağıya çekerim. Rakip hafifçe ileri ve aşağıya hareket eder. Böylece ben dışarıda kalırım, yani yoko empi'ye benzer bir konum alırım. Dirseğimi rakibin çenesinin altına yerleştirir ve ona doğru bedeni çevirerek onu kendi arkasında doğru iterim 

3. Ismini bilmiyorum. Bir video buradaada. Elleri çaprazlayarak dışarı çıkıyoruz 


25 Ağustos 2023 Cuma

AWS Batch

Giriş
Bir örnek burada.

AWS Glue ETL vs AWS Batch
AWS Glue Apache Spark üzerinde koşuyor. Açıklaması şöyle
AWS Glue ETL is a fully managed service that provides a serverless Apache Spark environment to run your Extract, Transform, Load (ETL) jobs. 
Error Handling and Debugging
Açıklaması şöyle
AWS Glue ETL is a fully managed service  provides detailed logging for your batch jobs using Amazon CloudWatch Logs. It also allows for the re-queueing of failed jobs, enabling them to be retried automatically. AWS Batch also provides an API operation to cancel jobs, giving you control over your batch workloads.


8 Ağustos 2023 Salı

SQL Inner Join - A ve B'nin kesişimi

Giriş
Aynı özelliklere sahip satırları gruplamak için kullanılır. Eğer sağ tabloda bir eşleşme yoksa, soldaki satır sonuca dahil edilmez. Açıklaması şöyle
Inner Join is one of the most frequently used joins. The left and right tables are joined by predicates. Only the rows that appear in both the left table and the right table meet the condition. It means the rows are in the set intersection of the left and right tables. The syntax is select A.x, B.y from A join B on A.x = B.y. Inner Join does not distinguish the order of the left and right tables. A inner join B is equivalent to B join A.

Inner Join is divided into Equal Join and Non Equal Join (Theta Join). The difference is that Equal Join is a certain field in the left table that is equal to a field in the right table under the join condition. The join condition of Theta Join is not the equality condition but may be greater-than or less-than conditions.
Şeklen şöyle
Inner Join 2 farklı şekilde olabilir
1. Theta Join
2. Equi Join

1. THETA JON
Örnek
Şöyle yaparız
SELECT firstname, lastname domicile, location
  FROM employee JOIN department
  ON domicile < location

2. EQUI JOIN
Örnek
Şöyle yaparız. Böylece A ve B'deki tüm sütunları alabiliriz.
SELECT * FROM a INNER JOIN b ON a.a = b.b;
JOIN Gerçekleştirimi
1. Hash Join
2. Neted Loop 
şeklinde olabilir

1. Hash Join 
Açıklaması şöyle
In a Hash Join, Database builds a hash table from the smaller of the two joining tables based on the join key.

Hash Join is well-suited for equi-joins, where the join condition is based on equality between columns.
2. Nested Loop
Açıklaması şöyle. Yani aslında Nested Loop Theta Join için daha uygun gibi
Nested Loop Join is a join method that works well for smaller datasets and simple join conditions.

In Nested Loop Join, Database iterates through each row in the outer table and matches it with corresponding rows from the inner table based on the join condition.

Nested Loop Join is suitable for join conditions involving range checks, inequalities, or non-equality conditions.

1. INNER JOIN Yerine Sadece Where
Inner Join kelimesi kullanmadan kısa şekliyle sadece Where ile yazılabilir

Örnek
Şöyle yaparız.
# inner join
SELECT o.order_id, o.order_date, c.customer_name
FROM orders o
INNER JOIN customers c ON o.customer_id = c.customer_id;
# where
SELECT o.order_id, o.order_date, c.customer_name
FROM orders o, customers c
WHERE o.customer_id = c.customer_id;
2. Alt SQL
Eğer A ve B'deki bazı sütunları görmek isteseydik alt SQL kullanırdık. Alt SQL'de parantez içinde SQL sonucuna bir alias tanımlanır. Örnekte alias olarak grp kullanılmış. Daha sonra On A.X = Alias. X ile süzme işlemi yapılır.
SELECT e.Name, e.Station 
FROM Employee e
INNER JOIN
(
   SELECT Salary
   FROM Employee
   GROUP BY Salary
   HAVING COUNT(*) > 1
) grp ON e.Salary = grp.Salary;
3. Genel Kullanım
Örnekler

Örnekte aynı maaşa sahip kişiler gösterilmek isteniyor
|Name |Station|Salary|
|Bob  |1      |2000  |
|Steve|2      |1750  |
|Mark |3      |2050  |
|Lisa |4      |2200  |
|Hans |5      |2000  |
İki SQL cümlesi kullanılarak Inner Join yapılır. Bu yöntemde B tablosundaki tüm sütunlar yerine bazı sütunlar istendiği için Inner Join'den sonra parantez için alt sql çalıştırılıyor.
SELECT e.Name, e.Station 
FROM Employee e
INNER JOIN
(
   SELECT Salary
   FROM Employee
   GROUP BY Salary
   HAVING COUNT(*) > 1
) grp ON e.Salary = grp.Salary;
İçerdeki cümle maaşları gruplar. Dışardaki cümle ise maaşla isimleri eşleştirir.

3 Ağustos 2023 Perşembe

DO-178C ve Multicore Sistemler

Giriş
Açıklaması şöyle. Yani Multicore sistemler için DO-178C ve DO-297 yetersiz kalıyor. Bu açığı kapatmak için CAST-32AAMC 20-193 ve EASA Certification Review Item – Multi-core Processor (CRI MCP) yayınlanmış
Multicore processors are increasingly used within avionics systems, and this trend is likely to continue.

These processors offer increased performance compared to single core processors and allow more functionality to be included within hardware.

They can also contain other embedded functions such as memory management and embedded security, reducing the chip count for a system.

Furthermore, as single-core processors are used in so few other industries, their future supply is a serious concern for avionics suppliers.

Whilst MCPs offer a great deal of advantages, their behavior is harder to verify due to the presence of interference channels.

Interference channels can be caused by a variety of factors, including contention over shared hardware resources.

This interference can have a significant effect on timing behavior, raising critical safety concerns.

Consequently, conventional DO-178C and DO-297 guidance (designed for single-core systems) is insufficient to verify the behavior of MCPs, hence the need for additional guidance such as CAST-32A and AMC 20-193.
AMC Ne Demek
Açıklaması şöyle. Yani rehber belgelerin başına verilen kısaltma
Acceptable Means of Compliance documents (AMCs) and the FAA's equivalent, Advisory Circulars, provide guidance for compliance with airworthiness regulations without creating or changing existing regulatory requirements.
AMC 20-193
Açıklaması şöyleAMC 20-193 EASA tarafından multicore sistemler için yayınlanan belge.
AMC 20-193, EASA’s official guidance document for certification of multicore software & hardware, was released 21st Jan 2022.

It is expected that the FAA will release its AC 20-193 guidance soon, which is expected to be almost identical.
AMC 20-193 vs CAST-32A
Açıklaması şöyleCAST-32A artık eski ve yerine AMC 20-193 kullanılmalı
8 areas the ‘new’ multicore verification guidance could impact you.

AMC 20-193, EASA’s official guidance document for certification of multicore software & hardware, was released 21st Jan 2022.

It is expected that the FAA will release its AC 20-193 guidance soon, which is expected to be almost identical.

When certifying under EASA, AMC 20-193 has now superseded CAST-32A.

Here are the differences we found:

1.   Dynamic allocation of software execution – CAST-32A discouraged the use of dynamic allocation mechanisms for software execution (such as task migration) in ED-12C/DO-178C projects. AMC 20-193 states that “justification for using dynamic allocation features within the scope of this AMC may rely on robust & proven limitations that lead to deterministic behavior”. Activities relating to the appropriate use & verification of dynamic allocation of software execution remains outside the scope of the AMC.

2.   Simultaneous multithreading – guidance was given for certification of systems using simultaneous multithreading in CAST-32A. AMC 20-193 specifically states that this is not a multicore issue & offers no guidance. You’ll almost certainly still need to take any simultaneous multithreading into account in your ED-12C/DO-178C developments, but this isn’t covered by AMC 20-193.

3.   Exemptions – CAST-32A specified some exemptions as to situations in which a multicore ED-12C/DO-178C would not need to meet CAST-32A objectives. AMC 20-193 adds a new exemption for systems where cores are acting as co-processors under the control of another core, such as GPUs whose execution is under the control of a CPU.

4.   Integrated Modular Avionics (IMA) – AMC 20-193 includes a definition of IMA, which states that in the context of the AMC, an IMA platform meets the robust resource & time partitioning criteria listed in the AMC.

5.   Other definitions & clarifications – AMC 20-193 clarifies a number of other things mentioned in CAST-32A, e.g. clarifying that a multicore platform includes platform software such as an RTOS or hypervisor & providing extra definitions for what constitutes a software or hardware component.

6.   Mitigation of changes to critical configuration settings – CAST-32A’s MCP_Resource_Usage_2 objective provided guidance on the need to mitigate against inadvertent changes to critical platform configuration settings for ED-12C/DO-178C certification of multicore systems. AMC 20-193 doesn't include such guidance, stating that this objective is already provided in AMC 20-152A (Objective COTS-8).

7.   AMC 20-193 discourages the use of simulators in its MCP_Software_1 objective.

8.   Data Coupling Control Coupling – AMC 20-193 clarifies that tasks on one component may execute on other cores, so tasks on the same component may interfere with each other.