6 Ekim 2025 Pazartesi
8 Mart 2024 Cuma
Chrome'da yalnızca okunabilir (read-only) dökümanları indirmek
Merhaba Arkadaşlar!
Bu yazımda indirmeye karşı korumalı, yalnızca okunabilen dökümanları chrome üzerinden indirme yöntemini anlatacağım.
1- İndirilemeyen dökümanınızı açın
2- Geliştirici Konsolunu açın (F12 veya Ctrl + Shift + J) (Edge kullanıyorsanız Ctrl + Shift + I)
3- Konsol (Console) sekmesine gidin
4- Aşağıdaki kodu yapıştırıp çalıştırın:
let jspdf = document.createElement( "script" );
jspdf.onload = function () {
let pdf = new jsPDF();
let elements = document.getElementsByTagName( "img" );
for ( let i in elements) {
let img = elements[i];
if (!/^blob:/.test(img.src)) {
continue ;
}
let canvasElement = document.createElement( 'canvas' );
let con = canvasElement.getContext( "2d" );
canvasElement.width = img.width;
canvasElement.height = img.height;
con.drawImage(img, 0, 0,img.width, img.height);
let imgData = canvasElement.toDataURL( "image/jpeg" , 1.0);
pdf.addImage(imgData, 'JPEG' , 0, 0);
pdf.addPage();
}
pdf.save( "download.pdf" );
};
jspdf.src = 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js' ;
document.body.appendChild(jspdf);
İndirilemeyen dökümanınız hayırlı olsun :)
6 Kasım 2023 Pazartesi
Github istediğimiz tarihe push yapmak
Merhaba arkadaşlar!
Bu yazıda github üzerinde dilediğiniz tarihe nasıl push atabileceğinizi anlatacağım
Sırasıyla bu komutları uygulayarak verdiğiniz tarihe push atabilirsiniz:
git add .
git commit --amend --no-edit --date="Wed Mar 16 20:00:00 2022 -0600"
git pull --allow-unrelated-histories
git push
Angular yardımıyla dinamik isimlenen click event'ı oluşturma
Bu yazıda typescript tarafta tanımlanmış bir değişken tipinden yardım alarak dinamik isimli click event'ı oluşturuyoruz.
Typescript tarafta Event isimlerimiz
- checkEN()
- checkTR()
- checkJP()
- checkCN()
- checkDE()
<button (click)="this['check' + translation.language.substr(0,2)]()" type="button" name="phoneType_Type{{translation.language}}" id="PhoneType_Type{{translation.language}}" class="form-control"> </button>
TypeScript Çok boyutlu diziyi tek boyutlu diziye dönüştürmek
5 Ekim 2023 Perşembe
Kurulu programları Program kaldır veya değiştir 'den gizlemek
Merhaba arkadaşlar,
Bilgisayarımızda yüklü olan uygulama ve oyunları program ekle kaldırdan gizleme yöntemini uygulayacağız.
Öncelikle eski program ekle kaldır arayüzünü açalım. (win 10 ve win 11 sürümlerinde gözükmeyen bazı özellikler için)
Başlat -> Çalıştır -> appwiz.cpl
Eski görünümlü program ekle kaldır menümüz geldi.
Şimdi Kayıt Defteri Düzenleyicisi'ni açmamız gerekiyor.
Başlat -> Çalıştır -> regedit
Açılan ekranda şu konuma gidelim:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
Eğer bilgisayarınız 64 bit ancak gizlemek istediğiniz program 32 bit olarak kurulmuş ise şu konuma gidelim:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
- Eğer gizlemek istediğiniz uygulamanın ismi düzgün ise onu bulalım ve şu adımı uygulayalım:
Veee tebrikler! Artık Program ekle kaldır ekranınızdan bu uygulamayı gizlediniz. Tekrar açmak isterseniz yine buraya gelip SystemComponent'in değerini 0 yapmanız ya da SystemComponent'i silmeniz yeterli olacaktır.
- Eğer gizlemek istediğiniz uygulamanın ismi düzgün değil ise
Sonrasında Kayıt Defteri Düzenleyicisine gelip az önce bulduğumuz Uninstall klasörüne sağ tıklayarak Bul diyorum.
2 Ekim 2023 Pazartesi
Windows 10/11 Uzak Masaüstü Bağlantısı "Başvuru hesabı şu anda kilitlenmiş ve buna oturum açılamayabilir." Hatası
Merhaba arkadaşlar,
Bugün kendim yeni formatladığım 2 makina arasında bağlantı sorunu yaşadığım için bunu nasıl çözdüğümü anlatacağım.
Öncelikle aldığım hata buydu:
Bu hatayı alıp dururken deneyip durduğum için hesap bloklandı ve bağlanmak istediğim bilgisayarı normalde bile açamaz hâle geldim.
Önce bu ayarın nereden nasıl kapatıldığını göstereyim:
Başlat -> Grup İlkesini Düzenle
Yerel Bilgisayar İlkesi -> Bilgisayar Yapılandırması -> Windows Ayarları -> Güvenlik Ayarları -> Hesap İlkeleri -> Hesap Kilitleme İlkesi
Bu menünün altına geldiğimizde Hesap kilitleme eşik değeri'ne çift klik atıp "geçersiz oturum açma girişimi sayısı" değerini 0 yaparsanız ne kadar hatalı deneme yaparsanız yapın kilitlenmeyecektir.
Peki varsayalım bu ayarı bilmiyorduk ve deneye deneye kilitledik. Ne yapmalıyız?
Şu anda gördüğümüz ekran şu şekilde:
Sağ alttaki güç butonundan Yeniden Başlat'a klavyede Shift tuşuna basılı tutarak tıklıyoruz.
Karşımıza şu ekran gelecek:
Sorun Gider'e tıklıyoruz.
Bir sonraki ekranda Gelişmiş Seçenekler'i tıklıyoruz.
Bir sonraki ekranda ise Komut İstemi seçeneğini tıklıyoruz.
Sonrasında kendi kullanıcımızı seçeceğiz ve o kullanıcı ile bilgisayarın komut istemini çalıştıracak.
Komut isteminde Windows'umuzun kurulu olduğu dizine girmemiz gerekiyor. Bende C olduğu için
"C:" yazarak o dizine giriş sağlıyorum.
Sonrasında:
cd Windows\System32
yazarak System32 klasörünün içerisine gitmiş oluyorum.
Sonrasında:
ren utilman.exe utilman1.exe
yazıp Erişilebilirlik butonunun açacağı kısayolun adını değiştirmiş oluyoruz.
Sonrasında:
ren cmd.exe utilman1.exe
yazıp Login ekranında Erişilebilirlik butonumuzun açacağı kısayolu Komut istemi olarak ayarlamış oluyoruz. Bu sayede Windows arayüzü yüklenmiş hâldeyken login olmadan komut istemine erişebileceğiz.
Komut istemi ekranımızı kapatıp Devam diyelim.
Login ekranımız geldi ve hâlâ hata alıyoruz! Endişe etmeyin. Sağ alttaki saate benzeyen ikona basın. Bastığınızda karşınıza erişim kolaylığı ekranı değil de Komut istemi açılacak!
Açılan Komut istemine "netplwiz" yazalım ve açılan Kullanıcı Hesapları ekranında o anki kullanıcımıza tıklayıp Parolayı Sıfırla diyelim.
Yeni Parola kısımlarını boş bırakarak Tamam dediğimizde aynı şekilde şifresiz olarak kullanıcımız devam edecek ve kilidi kalkacaktır.
Bağlanacağımız bilgisayara sonunda yeniden erişebiliyoruz!
Haydi artık bağlanmak için gerekli son ayarımızı yapalım:
Başlat -> Grup ilkesini düzenle
Ekranını açalım.
Sonrasında:
Yerel Bilgisayar İlkesi -> Bilgisayar Yapılandırması -> Windows Ayarları -> Güvenlik Ayarları -> Yerel İlkeler -> Güvenlik seçenekleri
Bu menünün altına geldiğimizde Hesaplar: Yerel hesabın boş parola kullanmasını yalnızca konsol oturumuyla sınırla seçeneğine çift klik atalım.
Artık diğer bilgisayarımızdan bu bilgisayarımıza Uzak Masaüstü Bağlantısı ile bağlanabiliriz:
19 Ağustos 2021 Perşembe
C# Linq Select'in içerisinde istenilen tüm işlemleri yapmak
List<TaskDto> tasks = pagedAndFilteredTasks.Select(o =>
{
var assigneds = ObjectMapper.Map<List<TaskAssignedDto>>(o.Assigneds.ToList());
return new TaskDto
{
Subject = o.Subject,
Content = o.Content,
IsImportant = o.IsImportant,
IsPrivate = o.IsPrivate,
TaskType = o.TaskType,
ActionTime = o.ActionTime,
Id = o.Id,
Assigneds = assigneds
};
}).ToList();
Select süslü parantezinin içerisinde istediğimiz değişkeni oluşturup istediğimiz işlemleri uygulayıp aşağıda return ederken kullanabiliyoruz
25 Haziran 2021 Cuma
Typescript object array'i tekilleştirme
const keys = ["question"]; //tekilleştirilecek olan field
this.task.questions = this.task.questions.filter((s => o => (k => !s.has(k) && s.add(k)) (keys.map(k => o[k]).join('|'))) (new Set));
------------------------------------------------
bu kısımda da farklı fieldları olmayan diziyi tekilleştiriyor
var myArray = ['a', 1, 'a', 2, '1'];
let unique = [...new Set(myArray)];
11 Mayıs 2021 Salı
Typescript async for örneği
Selamlar!
Bazı durumlarda asenkron for işlemi gerekiyor. Bu işlemler için alttaki kodu kullanabilirsiniz:
for await (let dizininElemani of this.dizi) {
dizininElemani.property = "ben yeni value'yum";
}
İyi günler!
12 Nisan 2021 Pazartesi
Çalıştır kısmına istediğiniz ismi yazarak kendi uygulamanızı çalıştırma yöntemi
Merhabalar!
Bu yazımızda Başlat -> Çalıştır (Win + R) kısmından istediğimiz uygulamayı direk çalıştırabilme yöntemini anlatacağım.
- Öncelikle Kayıt defteri'ni açıyoruz. (Veya başka bir yoluyla Win + R yaptıktan sonra regedit yazabilirsiniz)
- Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths Yoluna gidiyoruz.
- App Paths'a sağ klik atıp New -> Key diyoruz.
- Çalıştır'a yazmak istediğimiz ismin sonuna .exe ekleyerek bir klasör oluşturuyoruz. Örneğin ben bdoboss.exe yazıyorum.
- Sağ tarafta oluşan (Default) isimli nesneye çift klik atıyoruz ve "Value data:" şeklinde istediği alana programımızın tüm uzantısını yazıyoruz. (Örnek olması için yazıyorum bendeki uzantı şu şekilde: C:\Users\DEVELOPER01\source\repos\virDeneme\virDeneme\bin\Debug\netcoreapp3.1\virDeneme.exe )
- Yine sağdaki boş bir alana sağ klik atıp New -> String Value seçeneğini seçiyoruz.
- New Value #1 şeklinde oluşan ismine Path yazıyoruz.
- Path'e çift klik atıp "Value data:" alanına az önceki tüm uzantısınız verdiğimiz programımızın sadece yolunu yazıyoruz. (Yine örnek olması için bendeki yolu yazıyorum: C:\Users\DEVELOPER01\source\repos\virDeneme\virDeneme\bin\Debug\netcoreapp3.1 )
- Tebrikler! Artık Çalıştır'a ayarladığınız ismi yazarak programınızı çalıştırabilirsiniz!
27 Ocak 2021 Çarşamba
C# Kullanıcı arayüzü (UI) donmadan async metod kullanımı
Sayfamıza bir adet buton ve bir adet label ekleyelim.
Yeni thread açmadan async şekilde fonksiyon çalıştırma yöntemi:
private async void button1_Click(object sender, EventArgs e)
{
var t = Task.Factory.StartNew(async () =>
{
for (int i = 0; i < 1000000; i++)
{
await Task.Delay(1);
label1.Text = i.ToString();
}
},CancellationToken.None,
TaskCreationOptions.None,
TaskScheduler.FromCurrentSynchronizationContext());
}
------------------------------------------------------------------------------------------------
Yeni thread açarak (eski tarz) async metod çalıştırma yöntemi:
public Form1()
{
InitializeComponent();
Control.CheckForIllegalCrossThreadCalls = false;
}
private async void button1_Click(object sender, EventArgs e)
{
await Task.Run(() =>
{
for (int i = 0; i < 1000000; i++)
{
label1.Text = i.ToString();
}
});
}
Bu yöntem daha fazla thread oluşturarak işlemciyi daha fazla yoracaktır.
3 Aralık 2020 Perşembe
C# Array.ForEach kullanımı
using System;
public class SamplesArray { public static void Main() { // üç elemanlı bir sayı dizisi oluşturun int[] intArray = new int[] {2, 3, 4}; // KareleriniGoster yöntemi için bir temsilci belirleyin Action<int> action = new Action<int>(KareleriniGoster);29 Eylül 2020 Salı
JavaScript ile konsola renkli ve farklı boyutta yazı yazdırma
Selam arkadaşlar bu sefer çok kısa bir bilgi ile karşınızdayım. JavaScript'te console.log() yaparken birbirinden farklı şekilde loglar yazdırmak isterseniz bu şekilde komutlar kullanmanız gerekli.
setTimeout(console.log.bind(console, '%cFoo' , 'color: #FF00FF; font-size: 35px;'), 0);
18 Ağustos 2020 Salı
Angular Custom Pipe Yazımı
Herkese Merhaba!
Bu yazıda kendi istediğimizi yapan bir pipe nasıl yazılır onu anlatacağım.
İstediğimiz konuma xyz123.pipe.ts dosyasını oluşturup;
export class xyz123 implements PipeTransform {}
şeklinde bir class oluşturalım.
Main module dosyamıza import ettiğimiz bir utilities modülümüz var ise utilities modülünün içine, yok ise main module dosyasına oluşturduğumuz pipe dosyasını import edelim.
import { xyz123 } from './xyz123.pipe';
@NgModule({
imports: [
CommonModule
],
providers: [ ],
declarations: [
xyz123
],
exports: [
xyz123
]
})
(Typescript dosyamızda bu pipe'ımızı kullanmak istiyorsak pipe class'ımızı modülümüzdeki providers kısmına da eklememiz gerekmektedir.)
Oluşturduğumuz xyz123.pipe.ts dosyamıza geri dönelim. Pipe'ı baz alan importumuzu yapalım ve Pipe olduğunu dışarıya belli edip yapmasını istediğimiz kodu yazalım.
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'xyzPipe'
})
export class xyz123 implements PipeTransform {
transform(value: any, args?: any): any {
let firstDigit = value.match(/\d/); // metindeki ilk sayıyı(digit'i) bulur
let index = value.indexOf(firstDigit); // sayının indexini verir
return value.substring(0, index) + ' ' + value.substring(index); //metnin arasına bir boşluk ekleyip return eder
}
}
Şimdi html dosyamıza dönüp pipe'ımızı kullanalım.
{{ 'istediğim yazı ve sonuna boşluksuz rakamlar123' | xyzPipe }}
Çıktı: "'istediğim yazı ve sonuna boşluksuz rakamlar 123"
Bu yazdığımız pipe'a göre metindeki ilk rakamı bulup bir öncesine boşluk ekledik. Metodumuzun içinde bu olayı istediğimiz gibi yazabiliriz.
5 Ağustos 2020 Çarşamba
Team Foundation Sidekicks 2015 / 2017 / 2019 Kurulumu
Merhaba arkadaşlar!
C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
29 Haziran 2020 Pazartesi
JSON veriyi otomatik sınıflandırma eklentisi
Selamlar!
Öncelikle sitemizin adı QuickType, siteye buradan ulaşabilirsiniz. Sitenin Visual Studio, Visual Studio Code ve XCode'a ait eklentileri bulunmakta. Siteyi kullanmadan direk yazılım içerisinden işinizi halledebilmeniz için.
- Visual Studio 2017 için resmi indirme linki: Link - Alternatif Link
- Visual Studio 2019 için resmi olmayan ama portlanmış yazılım linki: Link - Alternatif Link
- Visual Studio Code için resmi indirme linki: Link
- XCode için resmi indirme linki: Link






