اشتراک‌ها
مهندسی معکوس سمت سرور WhatsApp

This project intends to provide a complete description and re-implementation of the WhatsApp Web API, which will eventually lead to a custom client. WhatsApp Web internally works using WebSockets; this project does as well.


مهندسی معکوس سمت سرور WhatsApp
مطالب
آموزش زبان Rust - قسمت 4 - انواع داده‌ها
انواع داده‌ها، جنبه‌ی ضروری هر زبان برنامه نویسی هستند و Rust نیز از این قاعده مستثنا نیست. در Rust از انواع داده برای تعریف نوع داده‌ای که یک متغیر می‌تواند نگه دارد استفاده می‌شود. این مقاله رایج‌ترین انواع داده در Rust را پوشش می‌دهد، از جمله:
  • Boolean
  • Unsigned int
  • Signed int
  • Floating point numbers
  • Char
  • String types
  • Arrays
  • Tuples
  • Type aliasing

Boolean
در Rust، نوع داده بولین با کلمه کلیدی bool نشان داده می‌شود. این نوع داده، فقط می‌تواند دو مقدار داشته باشد: true یا false و معمولاً در دستورات شرطی و حلقه‌ها برای کنترل جریان یک برنامه استفاده می‌شود.
 let is_rust_awesome: bool = true;

Unsigned int
  اعداد صحیح بدون علامت در Rust با کلمه کلیدی u و سپس تعداد بیت‌هایی که عدد صحیح باید داشته باشد، نشان داده می‌شوند. به عنوان مثال، u8 یک عدد صحیح بدون علامت 8 بیتی را نشان می‌دهد. محدوده‌ی یک عدد صحیح بدون علامت از 0 تا 2^n - 1 است که n تعداد بیت‌ها است.
 let x: u8 = 255;

Signed int
  اعداد صحیح علامت‌دار در Rust با کلمه‌ی کلیدی i و سپس تعداد بیت‌هایی که عدد صحیح باید داشته باشد، نشان داده می‌شوند. به عنوان مثال، i32، یک عدد صحیح علامت‌دار  32 بیتی را نشان می‌دهد. محدوده یک عدد صحیح علامت‌دار از -2^(n-1) تا 2^(n-1) - 1 است که n تعداد بیت‌ها است.
 let x: i32 = -2147483648;

Floating point numbers
  اعداد ممیز شناور در Rust با کلمات کلیدی f32 یا f64 نشان داده می‌شوند که به ترتیب مخفف اعداد ممیز شناور 32 بیتی و 64 بیتی هستند. این نوع داده‌ها برای نمایش اعداد واقعی با اعشار استفاده می‌شوند.
let x: f32 = 3.14;

Char
نوع داده char در Rust، نشان دهنده یک کاراکتر یونیکد است؛ برخلاف رشته‌هایی که با گیومه‌های دوتایی (") نشان داده می‌شوند.
let c: char = 'a';

String types
  در Rust دو نوع رشته وجود دارد: String و str. نوع String، یک نوع رشته‌ای heap-allocated و قابل رشد است؛ در حالیکه str (تلفظ "string slice") یک نوع رشته‌ای است که به یک برش از یک رشته در حافظه اشاره می‌کند:
let s1: String = String::from("hello");
let s2: &str = "world";

Arrays
آرایه‌ها در Rust، مجموعه‌هایی با اندازه‌ی ثابت از عناصر از یک نوع هستند. آنها با براکت مربع ([]) و نوع عناصر داخل آرایه نشان داده می‌شوند.
let arr: [i32; 5] = [1, 2, 3, 4, 5];

Tuples
تاپل‌ها در Rust، مجموعه‌ای از عناصر از انواع مختلف هستند. آنها با پرانتز (()) و انواع عناصر داخل تاپل نشان داده می‌شوند.
let tup: (i32, f64, u8) = (500, 6.4, 1);

Type aliasing
  تایپ aliasing در Rust، به شما امکان می‌دهد تا نام جدیدی را به یک نوع موجود بدهید. این می‌تواند برای خوانایی بیشتر کد یا ساده کردن انواع پیچیده مفید باشد.
type Age = u32;
let age: Age = 30;
اشتراک‌ها
استفاده از gulp و grunt در mvc 6

Bundling and minification is an important optimization technique for managing scripts and stylesheets in any web application. ASP.NET 5 and MVC6 take a different approach than previous versions to solving this problem. In this post I will illustrate the new approach using a simple example. 

استفاده از gulp و grunt در mvc 6
نظرات مطالب
یکپارچه سازی Angular CLI و ASP.NET Core در VS 2017
در این حالت حالت توسعه برخی مواقع حین build پروژه ممکن است با خطای:
System.TimeoutException: The Angular CLI process did not start listening for requests within the timeout period of 50 seconds.
مواجه شوید که علتش طولانی شدن پروسه‌ی build هست.برای رفع این مشکل در نگارش جدید بسته‌ی نیوگت Microsoft.AspNetCore.SpaServices.Extensions میتوان این زمان پیش فرض  را حین توسعه تغییر داد.
 app.UseSpa(spa =>
            {
                spa.Options.SourcePath = "ClientApp";

                if (env.IsDevelopment())
                {
                    spa.Options.StartupTimeout = new TimeSpan(0, 0, 80);
                    spa.UseAngularCliServer(npmScript: "start");
                }
            });

نظرات مطالب
توسعه برنامه های Cross Platform با Xamarin Forms & Bit Framework - قسمت چهارم
با توجه به این که Android Http Client Handler که از TLS 1.2 استفاده می‌کند و Performance بهتری نیز دارد، لااقل به Android 5 برای کار کردن احتیاج دارد، بهتر است حداقل ورژن اندروید برای برنامه تان را روی Android 5 تنظیم کنید.
در مورد بهبود سرعت بیلد در VS 15.9 هم در نظر داشته باشید که Target Android SDK تان باید روی Android SDK 9.1 باشد. توجه کنید که پروژه مثال XamApp در لحظه نگارش این کامنت روی Android SDK 8.1 است.
اشتراک‌ها
کتاب درک رمزنگاری اطلاعات

Cryptography has crept into everything, from web browsers and email programs to cell phones, bank cards, cars and even into medical implants. Thus, an increasing number of people have to understand how crypto schemes work and how they can be used in practice. We wanted to create a book that teaches modern applied cryptography to readers with a technical background but without an education in pure mathematics.  

کتاب درک رمزنگاری اطلاعات
اشتراک‌ها
NewSQL چیست؟

Some NewSQL solutions

NewSQL-db-logosVoltDB  (in-memory database) : http://voltdb.com

ClustrixDB (distributed peer-to-peer SQL database) : http://www.clustrix.com

NuoDB (distributed database management) : http://www.nuodb.com

GenieDB (based on MySQL) : http://www.geniedb.com

ScaleArc (SQL traffic manager ) :  http://www.scalearc.com

ScaleDB (MySQL scalability) : http://scaledb.com

Tokutek/TokuDB (MySQL/MariaDB scallability): http://www.tokutek.com

JustoneDB (built upon PostgreSQL) : http://www.justonedb.com

MemSQL (in-memory database) : http://www.memsql.com   

NewSQL چیست؟