teleren/devto huggingface dataset:
C# MVC Bundle Config İle Minify İşlemleri
Tags: csharpminifying
Published: 2020-12-21 00:01:34

Web sitelerinde açılışta her bir javascript ve css dosyaları için requestler gider ve bunların sayısı sitenin açılış hızını düşürebilir.

**Bundle minify** işlemi ile hem tüm scriptleri tek bir dosya ile gönderecek hemde dosyanın minify edilmesini yani yorum satırları silinmiş gereksiz satırlardan arınmış bir şekilde birleştirecek.

Bunun için ilk önce Projeye Nuget yardımı ile 
` Microsoft.Asp.Net.Optimization` yüklenir
daha sonra yeni bir class açarız ve içerisine static bir metot yazarız ve bu dışarıdan BundleCollection tipinde veri alır

```
 public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Add(new ScriptBundle("~/bundles/scripts").Include(
               "~/Scripts/jquery-3.0.0.js",
               "~/Scripts/jquery.unobtrusive-ajax.min.js",
               "~/Scripts/bootstrap.js",
               "~/Scripts/DataTables/jquery.dataTables.js",
               "~/Scripts/DataTables/dataTables.bootstrap.js",
               "~/Scripts/custom.js",
               "~/Scripts/bootbox.js"
                ));

            bundles.Add(new StyleBundle("~/bundles/styles").Include(
                  "~/Content/bootstrap.css",
                  "~/Content/StyleSheet1.css",
                  "~/Content/DataTables/css/dataTables.bootstrap.css"
                ));
        }
```
ve buraya dosya yolları eklenir daha sonra `layout` 'tan bu alanlar silinir 
yerlerine ise 

>@Scripts.Render("~/bundles/scripts")

>@Styles.Render("~/bundles/styles")

Eklenir daha sonra bu işlemi çağırmak için `Global.asax` dosyasına
 
`BundleConfig.RegisterBundles(BundleTable.Bundles);`

burada kendi yazdığımız sınıfı ve metodu çağırdık ve bundlecollection tipinde bir veri gönderdik.

Son olarak ise `View`'in altında bulunan `webconfig` dosyasına `namespace` ekleyeceğiz 

``` <add namespace="System.Web.Optimization"/> ```

>bu işlem proje yayınlanmadan önce yapılmalı yani bu şekilde proje geliştirmek sağlıklı değildir
Quickly view nodejs project ‘scripts’ on the cli
Tags: cli, webdev
Published: 2020-12-21 23:53:05

---
title: Quickly view nodejs project ‘scripts’ on the cli
published: true
date: 2020-12-21 00:00:00 UTC
tags: cli,webdevelopment
canonical_url: https://blog.jonesrussell42.xyz/2020/12/21/quickly-view-nodejs-project-scripts-on-the-cli.html
---

Ahnii! I previously wrote a command line utility named ‘[packages](/_posts/2020-11-21-quickly-view-project-dependencies-on-the-cli.html)’ which simply prints a list of project dependencies on the command line.

I found that I also often want to see a list of scripts in package.json, so I wrote another utility I’ve named ‘scripts’, observe:

![scripts screenshot](https://blog.jonesrussell42.xyz/assets/img/screenshot-scripts.png)

You can accomplish the same with ‘sed’, but it’s quite a command to remember, observe:

```
sed -n -e '/scripts/,/},/ p' package.json

```

![scripts sed screenshot](https://blog.jonesrussell42.xyz/assets/img/screenshot-scripts-sed.png)

Check it out at [https://github.com/jonesrussell/scripts](https://github.com/jonesrussell/scripts) or simply install it and try:

```
npm i -g @jonesrussell42/scripts

```

Meegwetch!
Announcing Kali Linux Newsletter + Keeping in Touch
Published: 2023-08-21 21:13:22

---
title: Announcing Kali Linux Newsletter + Keeping in Touch
published: true
date: 2020-12-21 00:00:00 UTC
tags: 
canonical_url: https://www.kali.org/blog/kali-linux-newsletter-keeping-in-touch/
---

Extra! Extra! Read all about it! Today we are announcing the Kali Linux newsletter.

It’s easy to miss certain news. Not everyone is regularly checking our web page to see if something has been posted _(and we don’t have a regular schedule of when we update)_. It is easy to be drowned out in social networks with everything else going on. And RSS feeds have not been as common as they once were. So to try and help keep you in the loop with Kali Linux, we now have a newsletter option.

The contents of the newsletter will mirror [our blog posts](https://www.kali.org/blog/) _(we are not trying to market or sell anything to you)_. Once a day, if there has been any new posts, we will now send a copy direct to your inbox.

If you want to, please sign up to the [Kali Linux newsletter](https://www.kali.org/newsletter/).

Stay tuned, as we are going to keep working on other ways to improve our communication and community interaction in 2021!

* * *

**How can you keep up-to-date with what’s going on with Kali Linux?** Take your pick! There are various different offerings:

For pure content:

- Check [Kali Linux blog](https://www.kali.org/blog/)
- Watch [Kali Linux RSS feed](https://www.kali.org/rss.xml)
- Subscribe to the [Kali Linux newsletter](https://www.kali.org/newsletter/)

We are on a few social networks too (there will be other infosec related items shared):

- Follow [Kali Linux Twitter](https://twitter.com/kalilinux)

If you are wanting to keep up-to-date with Kali’s packages:

- You can register at [Kali Linux Package Tracker](https://pkg.kali.org/) and then select which ones you want to be alerted when they update.

And if you think something is down, which should be working on our end:

- You can discover the answer on the [Kali Linux status page](https://status.kali.org/)
How to remove a file synchronously using Node.js?
Tags: node
Published: 2020-12-21 00:00:00

---
  title: How to remove a file synchronously using Node.js?
  published: true
  tags: Nodejs
  date: Mon Dec 21 2020 05:30:00 GMT+0530 (India Standard Time)
  canonical_url: https://melvingeorge.me/blog/remove-file-synchronously-using-nodejs
  cover_image: https://melvingeorge.me/_next/static/images/main-4ad93e889a516adb4c0fbfa33de11e69.jpg
  ---
  [Originally posted here!](https://melvingeorge.me/blog/remove-file-synchronously-using-nodejs)
  
To remove a file, we can use the `unlinkSync()` function from the `fs` (filesystem) module Node.js. This will synchronously remove the file.

```js
// Remove file synchronously
fs.unlinkSync("file.txt");
```

For exampe let's consider a file called `file.txt` like this,

```js
// require fs module
const fs = require("fs");

// path
const path = "file.txt";
```

Now let's use the `fs.unlinkSync()` function and

- pass the path as the first argument

to the function like this,

```js
// require fs module
const fs = require("fs");

// path
const path = "file.txt";

// remove file by passing path
// as the first argument to the function
fs.unlinkSync(path);
```

See this example live in [repl.it](https://repl.it/@melvin2016/remove-file-sync-nodejs#index.js).

### Feel free to share if you found this useful 😃.

---
Interacting with JavaScript Objects using the new IJSObjectReference in Blazor
Tags: dotnet, blazor, javascript
Published: 2020-12-21 15:57:34

---
title: Interacting with JavaScript Objects using the new IJSObjectReference in Blazor
published: true
date: 2020-12-21 00:00:00 UTC
tags: dotnet, blazor, javascript
canonical_url: https://swimburger.net/blog/dotnet/interacting-with-javascript-objects-using-the-new-ijsobjectreference-in-blazor
cover_image: https://swimburger.net/media/iaubntnc/javascript-in-blazor-ijso-social.png?mode=crop&width=1000&height=420
---

New API's to interact with JavaScript from .NET were added with the introduction of Blazor. Using these API's you can invoke JavaScript functions from .NET and .NET methods from JavaScript. This is also referred to as ' **JavaScript interoperability**'.

The JavaScript interoperability API's provided by Microsoft live under Microsoft.JSInterop namespace. These capabilities were showcased at a previous article: "[Communicating between .NET and JavaScript in Blazor with in-browser samples](https://swimburger.net/blog/dotnet/communicating-between-dotnet-and-javascript-in-blazor-with-in-browser-samples)".

Some additional API's have now been introduced with the release of .NET 5. One very important API in particular was introduced: `IJSObjectReference`.

Continue reading at [swimburger.net](https://swimburger.net/blog/dotnet/interacting-with-javascript-objects-using-the-new-ijsobjectreference-in-blazor)
C# Anti Forgery Token
Tags: antiforgerytoken
Published: 2020-12-20 23:53:45

**CSRF** saldırıları olarak geçen ;
arama çubuğunu post olarak veri yollamak veri ele geçirmek için kullanırlar.

Direkt oradan veri yollayamaması için `controller`dan http post olan kısımı
>[ValidateAntiForgeryToken] olarak başlatıyoruz ve pos formunun içerisine 
```@html.AntiforgeryToken() ```
metodunu koyuyoruz.
Padrão Strategy em Python
Published: 2020-12-20 23:52:12

O Padrão Strategy é um **padrão comportamental**, este padrão recomenda que uma classe que faz algo de diversas maneiras diferentes tenha estes algoritmos extraídos para classes separadas chamadas estratégias.

####Exemplo de código em Python
```python
class Context():

    def __init__(self, strategy: Strategy) -> None:

        self._strategy = strategy

    @property
    def strategy(self) -> Strategy:
        return self._strategy

    @strategy.setter
    def strategy(self, strategy: Strategy) -> None:

        self._strategy = strategy

    def do_some_business_logic(self) -> None:
        print("Context: Sorting data using the strategy (not sure how it'll do it)")
        result = self._strategy.do_algorithm(["a", "b", "c", "d", "e"])
        print(",".join(result))


class Strategy(ABC):
    @abstractmethod
    def do_algorithm(self, data: List):
        pass
```
A classe *Context* define a interface de interesse do cliente, geralmente essa classe aceita uma estratégia no seu construtor, ela também contém um método setter para que esta seja definida em tempo de execução.

A classe *Strategy* declara as operações comuns para todos as estratégias.

```python
class ConcreteStrategyA(Strategy):
    def do_algorithm(self, data: List) -> List:
        return sorted(data)


class ConcreteStrategyB(Strategy):
    def do_algorithm(self, data: List) -> List:
        return reversed(sorted(data))
```
As classes *ConcreteStrategy* implementam seus algorítmos específicos enquanto seguem a estrutura definida pela interface *Strategy*. O *Context* usa desta interface para chamar os métodos concretos definidos.

A implementação em Python não tem nenhuma particularidade em relação a implementação em Java.

***
**Referências**
[Padrões de Projeto](https://diogomoreira.gitbook.io/padroes-de-projeto/) (Diogo Moreira, 2020)
[Mergulho nos Padrões de Projeto - v2020-1.14](https://refactoring.guru/pt-br/design-patterns/book) (Alexander Shvets, 2020)
*Os códigos usados como exemplo foram retirados do livro Mergulho nos Padrões de Projeto.*
Abstract Classes / Abstract Sınıflar
Tags: abstractclasses
Published: 2020-12-20 23:50:14

>Class yapısına sahiptir. Referans tiptir ama tamamen somut bir yapıya sahiptir. 

Classın içerisinde operasyonlar bulunur.
**Class** : İçerisinde birbirisiyle ilgili operasyonları , `field` ve `propertyleri` tutan yapı.

`Abstract Classta` tanımlanan bir operasyon `inherit` edildiği sınıfta ezilmek (`override`) zorundadır.
Tamamlanmış operasyon (`metod`) da tutabilir yarım operasyonlarıda tutabilir(imza şeklinde).

Bir sınıf sadece bir sınıfı `inherit` edebileceği için dolayısı ile bir `abstract class inherit` edebilir başka bir `classı inherit` edemez.
**Abstract** classların normal classlardan tek farkı kabaca **newlenememesi** çünkü içerisinde tamamlanmamış operasyonlarda barındırabilir.

Peki abstract classlar `constructor` içerebilir mi ? Evet 
Peki Nasıl çalışır ? 
>Sadece inherit edildiği class newlendiğinde çalışır ve constructor `protected` isim belirteci ile tanımlanmalıdır çünkü sadece `inherit` edildiği yerde kullanılabilir.

```
        abstract class MevzuatBase
        {
            public abstract void Degerlendir();
            public void Kaydet(){
                Console.Write("Kaydedildi !");
            }
        }
        class AMevzuat:MevzuatBase
        {
            public override void Degerlendir(){
                Console.Write("A Mevzuat Değerlendirdi !");
            }
        }
        
        class AMevzuat:MevzuatBase
        {
            public override void Degerlendir(){
                Console.Write("A Mevzuat Değerlendirdi !");
            }
        }```
Time Complexity Simplified
Published: 2020-12-20 23:46:02

Understanding time complexity is complicated, if I'm honest, I had to read articles over and over and watch videos just to fully understand the purpose of it. Calculating time complexity was also a challenge because I have a tendency to confuse my self quite often. My goal writing part 1 of this blog, is to explain time complexity and understand its definitions it in a not so confusing way. 

So, what is time complexity?

Time complexity is an analysis used in programming to time how long it takes to run an algorithm given a number of inputs(n), as well as how long it takes to complete the task. This is usually often referred to as **Big-O notation**, you might have heard this phrase many times before. Here is a list of common time complexities used with definitions.

**"O(1) — Constant Time: it only takes a single step for the algorithm to accomplish the task.
O(log n) — Logarithmic Time: The number of steps it takes to accomplish a task are decreased by some factor with each step.
O(n) — Linear Time: The number of of steps required are directly related (1 to 1).
O(n²) — Quadratic Time: The number of steps it takes to accomplish a task is square of n.
O(C^n) — Exponential: The number of steps it takes to accomplish a task is a constant to the n power (pretty large number)."**(freecodecamp, Algorithms in plain English: time complexity and Big-O notation, 2016

In the cover image from https://learnovercoffee.com/algorithms-datastructures/basics-of-big-o-notation/ it displays on a chart the time it takes for each algorithm to run. This is a good example to visually display how long it takes for each algorithm to complete each task, it is also a good example to differentiate the different time complexities.

In the future blogs, I plan to go in-depth explaining each Time Complexity to simplify it and show examples. I like to keep things simple and straight to the point, I hope you enjoyed. If there is anything you suggest I add to this post please by all means send me a message. 

Happy Holidays
C# Access Modifiers Private, Public, Internal, Protected Nedir ? / Erişim Bildirgeçleri
Tags: internalprotected
Published: 2020-12-20 23:45:39

Bir class oluşturulduğunda bu classın default erişim belirteci `internal` 'dır.

**Erişim Belirteçleri :** `Public, Internal, Protected, Private`

**Internal**: Proje namespace'inden harici bir alanda referans verilse dahi kullanılamaz. Aynı assembly içinde geçerli demektir.

**Public**: Referans verildiği heryerde kullanılabilir. Farklı assemblylerde fieldd property yada classlarını kullanabilir.

>En üst seviyeli bir class public veya internal olarak kullanılmak zorundadır.
Private veya protected olarak yalnızca başka bir classın içerisinde tanımlanabilir.

**Private**: Private sadece bir üst blokta geçerlidir(kıvırcık parantez). Ve inherit edildiği yerde kullanılamaz.

```
public class MyClass()
{
    class MyOtherClass()
    {
        //buradan alttaki değişkene erişemeyiz.
    }
    private MyPrivateClass()
    {
        //bu class yalnızca üst classta kullanılabilir.
        private int num=1;
    }
}
```


Bir field'ın default belirteci `private`'dır. Örn:   `int num=1;` `private` bir değişkendir.



**Protected**: Private ile aynı özellikleri taşır bir üst parantezde çalışır onun haricinde inherit edildiği yerde de erişilebilir. Ancak private inherit edildiği yerde erişilemez.
IoC (Inversion of Control) Container
Tags: ioccontainer
Published: 2020-12-20 23:38:28

**Nedir ?** `Dependency inversion` uygularken kullandığımız `dependency injection` tasarım dilinde bir interface örneği istenirse ona somut olan sınıftan verir arkada örneğini tutar(new) ve yaşam döngüsünü tutar tek seferlikmi çalışacak (`singelton`) her seferinde yeniden mi oluşturulacak gibi.


Bu kontrol araçlarına örnek olarak  
`Ninject, Unity(Microsoft), Castle Windsow, Structure Map.
Dry IoC , LightInject`


>Nasıl Kullanılır projeye eklenir.(`Ninject`)

Bunlar farklı dosyalardaki farklı configurasyonlar olarak düşünelim.

Katmanlar arası geçişte `singleton` kullanıyoruz 

``` var kernel = new StandardKernel();
kernel.Bind<IMevzuat>().To<IkinciMevzuat>().SingletonScope(); 

CustomerManager CustomerManager=new CustomerManager(kernel.Get<IMevzuat>());
CustomerManager.Add();
```

>**Kernel** bir kutu gibidir ona koyduğumuzu isteyen heryere dağıtır tek 
Noktadan kontrol imkanı sunar.
C# Değer Ve Referans Tipler Nedir ? Farkları Nelerdir ? / Value And Referance Type What Are The Differences ?
Tags: valueandreferancetype
Published: 2020-12-20 23:34:45

Nesnel programlama büyük ölçüde referans tiplerin üzerine kuruludur.

Referans Tip Çalışma Şekli

Değer tip ve referans tipler bellekte iki ayrı alanda tutulur.
Bu alanlar **Stack** ve **Heap** bölümleridir.

**Stack:** alanında sayısal ifadeler tutulur bunlar değer tiplidir: _int,double,decimal,bool(0,1),enum(1,2,3,4,5),stack(sınıflara benzer)_ tipte yapılar da stack alanında tutulur.

Değer tip sadece tanımlanan sayıda durur.
ÖRN: 

 `int sayi1;` Tanımladığı anda stackte tutulur

`sayi1=10;` Stack te sayi1=10 olarak tutulur
`int sayi2=sayi1`  Stack te sayi2=10 olarak tutulur ve sayi1 deki değişiklik sayi2 yi etkilemez.



**Referans Tipler:** _class, interface,abstract class, string, diziler, **int array**_ de olsa dizide olsa referans tiplidir. Referans tipler newlenenlerdir (stack hariç).

**EK BİLGİ:** Stringler referans tiplidir ancak çalışma şekli değer tip gibidir.

` string[] sehirler;`Tanımladığımızda stackte yer tutar.

` string[] sehirler = new string[]{"Ankara","İstanbul","İzmir"};
string[] sehirler2 = new string[]{"Adana","Bursa","Bolu"};`

İçerisine değer verildiğinde bir numara atanır ve heap bölümünde `new string[]{"Ankara","İstanbul","İzmir"}; ` şeklinde bu numara ile bir referans alanı tutar.


####ASIL FARK BU NOKTADA

//bu iki değeri eşitlersek eğer

`sehirler2 = sehirler;`

>bu iki değeri eşitlersek eğer sehirler2 tanımlanırken stackte aldığı numara sehirler dizisinin aldığı değere eşitleniyor ve her ikiside heap bölümünde aynı noktayı referans gösteriyor sehirler2 nin asıl değerine herhangi bir müdahele olmuyor 

>Bu noktada eğer şehirler 2 de bir alanda değişiklik yaparsak bu şehirler dizisinide etkileyecektir. Çünkü şehirler 2 de artık referans olarak şehirler dizisinin heapteki alanını gösteriyor.

`sehirler2[0]= "Eskişehir";
Console.Write(sehirler[0]);`

>Bu koddan alacağımız sonuç Ankara değil "Eskişehir" olacaktır.


>Peki şehirler2 nin başlangıçta gösterdiği referansa ne olacak ? 

> **Garbage Collector** dediğimiz nesne
Referansı kalmamış o referansı gösteren hiçbir tanım kalmamışsa
O referansı bellekten silecek yapıdır. Çöpçümüzdür.
Starting Something New
Published: 2020-12-20 23:21:58

So why did I decide to to pick up coding and study to become a software engineer? 
The biggest reason that I have is not too motivating but rather just comforting. As a teenager in high school, I played video games just like anybody else. Although it wasn't until I decided to build my own computer that I discovered my love for technology. After being exposed to the process of holding bare computer parts in my hand and connecting them to the motherboard to make something work, I began to realize how much I liked fidgeting with electronics. I began to take apart my old electronics that didn't work anymore and tried to study the inside. I took apart my broken laptop and I used the screen as an external monitor using some adapters that I bought off ebay. This assured me that I wanted to go study something in the field of electronics. The question then became "Computer Science vs. Computer Engineer".
Years later I accumulated small bits of knowledge about coding and realized how essential and powerful it was. I took that same mentality I had as a kid in high school and applied it to making something work using a computer language rather than bare computer parts. The moment that I realized you can make countless of things using just computer language, I knew that I wanted to know everything there was about it.
Framework ve Library Nedir ? Farkları Nelerdir ?
Tags: frameworkandlibrary
Published: 2020-12-20 23:19:31

>Framework uygulama çatısıdır.

Uygulama o çatıda geliştirilir. **Örn ASP.NET MVC**

>Kütüphane bir çatının altında yardımcı yapılardır.

**Kütüphane** basitleştirilmiş kod fonksiyonlar topluluğudur.
Framework bir uygulama çatısıdır uygulama o yapıya göre inşa edilir.
**Örn AngularJs.**
Two weeks in...
Tags: ruby, beginners
Published: 2020-12-20 23:16:08

My first exposure to computer programming was 8 years ago, when I took Visual Basic in highschool. While Visual Basic is virtually extinct now, it was still a good introduction to the world of code, to the capabilities, theories, and purposes of computer programming. Eight years later, with all of that Visual Basic knowledge long gone, I find myself learning the basics of a computer programming language yet again. 

Over the past couple weeks, while working through labs and attending study groups, I have also been asking myself - Why? Why am I completely changing my career path, doing something that doesn't really relate to my bachelor's degree or previous lines of work? 

The first thing that attracted me to flatiron's software engineering program was simply the usefulness and practicality of a software engineering degree. Obviously coding is a widely applicable skillset, something that can be used in a variety of different fields and markets. 

Another thing that initially attracted me to programming was just the process of creation that takes place. Throughout my academic experience, I was constantly involved in the creation of things: essays, stories, poems, plays, musicals, drawings. While these things are vastly different from computer programs and software, the process of creation is still similar.

I'm happy to say that, two weeks in, I still feel good about my decision to enroll in the software engineering program at flatiron. There have definitely been ups and downs, but all in all I have been thoroughly interested in the content, and I have enjoyed the learning process. 

The most exciting moments have come when talking and working with classmates over zoom: I have received a lot of help and guidance from the people in my cohort, and I know that they will continue to be an important resource for the rest of the course.
Yazılımda Interface Nedir ?
Tags: interfacenedir
Published: 2020-12-20 23:15:26

Yazılımsal olarak classlara arayüz görevi görür ve classların o operasyonları imzalamasını zorunlu hale getirir.

Sürdürülebilir yazılımın en büyük üyelerindendir.
Interface'ler ile sürdürülebilir yazlımlar geliştiririz.


Projelerimizde olay insanların gündelik hayatlarıdır. Dolayısı ile gündelik hayat her gün değişkenlik gösteriyor.
Kurallar değişiyo, ihtiyaçlar değişiyor vs.

Interfaceler ile yazılımda değişim denilen süreci kolayca yönetebiliyoruz. Yani if programcılığının önüne geçiyoruz ve spagetti kodlardan kurtuluyoruz.

```
public static void Main()
{
    
    CustomerManager CustomerManager =new CustomerManager(BirinciMevzuat);
}


class CustomerManager 
{
    
    private IMevzuat _mevzuat;
    public CustomerManager(IMevzuat mevzuat)
    {
        _mevzuat = mevzuat
    }
    public void Add()
    {
        _mevzuat.IslemYap();
    }
}
interface IMevzuat
{
    void IslemYap();
}
class BırıncıMevzuat: IMevzuat
{
    public void IslemYap()
    {
        Console.Write("Birinci Mevzuat işlem yaptı");
    }
}
class IkinciMevzuat: IMevzuat
{
    public void IslemYap()
    {
        Console.Write("İkinci Mevzuat işlem yaptı");
    }
}
```