پایان دادگاه ۷ ساله #اپل علیه #سامسونگ/ صدور رأی محکومیت ۵۳۹ میلیون دلاری به نفع اپل
🔹جریمه نقدی سامسونگ معادل 538.6 میلیون دلار شامل 533 میلیون و 316 هزار و 606 دلار بابت نقض ثبت اختراع بخش طراحی (3 مورد) و 5 میلیون و 325 هزار و 50 دلار نیز بابت نقض ثبت اختراع بخش Utility (دو مورد) تائید شد.
🔹اپل در آخرین راند دادگاه، درخواست دریافت خسارت 1 میلیارد دلاری را مطرح کرده بود (سامسونگ هم رقم 28 میلیون دلار جریمه را منطقی دانسته بود) و هرچند پیشتر 548 میلیون دلار از سامسونگ خسارت دریافت کرده بود، اما آخرین راند دادگاه مربوط به پرداخت 399 میلیون دلار دیگر به اپل بود که درنهایت هیئت ژوری تصمیم خود را با جریمه 539 میلیون دلاری به پایان برد.
🔹در سال 2012 رقم جریمه 1 میلیارد دلاری تعیین شد و دعوای حقوقی تا 2015 ادامه یافت تا اینکه سامسونگ ازنظر حقوقی مجبور به پرداخت 548 میلیون دلار شد. دسامبر همان سال سامسونگ پول را بهحساب واریز کرد. (سال قبل از آن، یعنی 2014 هر دو کمپانی توافق کردند که برپایی دادگاه علیه یکدیگر در سایر کشورها را ادامه ندهند.)
🔹جریمه نقدی سامسونگ معادل 538.6 میلیون دلار شامل 533 میلیون و 316 هزار و 606 دلار بابت نقض ثبت اختراع بخش طراحی (3 مورد) و 5 میلیون و 325 هزار و 50 دلار نیز بابت نقض ثبت اختراع بخش Utility (دو مورد) تائید شد.
🔹اپل در آخرین راند دادگاه، درخواست دریافت خسارت 1 میلیارد دلاری را مطرح کرده بود (سامسونگ هم رقم 28 میلیون دلار جریمه را منطقی دانسته بود) و هرچند پیشتر 548 میلیون دلار از سامسونگ خسارت دریافت کرده بود، اما آخرین راند دادگاه مربوط به پرداخت 399 میلیون دلار دیگر به اپل بود که درنهایت هیئت ژوری تصمیم خود را با جریمه 539 میلیون دلاری به پایان برد.
🔹در سال 2012 رقم جریمه 1 میلیارد دلاری تعیین شد و دعوای حقوقی تا 2015 ادامه یافت تا اینکه سامسونگ ازنظر حقوقی مجبور به پرداخت 548 میلیون دلار شد. دسامبر همان سال سامسونگ پول را بهحساب واریز کرد. (سال قبل از آن، یعنی 2014 هر دو کمپانی توافق کردند که برپایی دادگاه علیه یکدیگر در سایر کشورها را ادامه ندهند.)
درگذشت چهارمین انسانی که به ماه قدم گذاشت
🔹"آلن بین"، فضانورد ناسا و چهارمین انسانی که به ماه قدم گذاشت، روز گذشته در ۸۶ سالگی از دنیا رفت.
🔹"آلن لاورن بین"(Alan LaVern Bean)، فضانورد آمریکایی ناسا، پس از تحمل دو هفته بیماری، در بیمارستان " متودیست"(Methodist) آمریکا و در میان دوستانش درگذشت.
🔹بین، یکی از 12 فضانوردی بود که به ماه قدم گذاشت. او دو سفر فضایی را پشت سر گذاشت که نخستین بار در سال 1969 و با فضاپیمای "آپولو 12" (Apollo 12) و آخرین بار برای ماموریت "اسکایلب 3"(Skylab 3) در سال 1973 بود./ايسنا/فناوری فوری
🔹"آلن بین"، فضانورد ناسا و چهارمین انسانی که به ماه قدم گذاشت، روز گذشته در ۸۶ سالگی از دنیا رفت.
🔹"آلن لاورن بین"(Alan LaVern Bean)، فضانورد آمریکایی ناسا، پس از تحمل دو هفته بیماری، در بیمارستان " متودیست"(Methodist) آمریکا و در میان دوستانش درگذشت.
🔹بین، یکی از 12 فضانوردی بود که به ماه قدم گذاشت. او دو سفر فضایی را پشت سر گذاشت که نخستین بار در سال 1969 و با فضاپیمای "آپولو 12" (Apollo 12) و آخرین بار برای ماموریت "اسکایلب 3"(Skylab 3) در سال 1973 بود./ايسنا/فناوری فوری
Ⓜ️ توضیحی در مورد روش جدید آنتی فیلترینگ (MTProto) تلگرام :
👥 مدیران تلگرام از ابتدای کار تا حد امکان به صورت متن باز عمل کرده اند و همواره سعی کرده اند سایر برنامه نویس ها را با خودشون همراه کنند. یعنی از همان ابتدا روششان این بوده که با ارایه امکانات مختلف برنامه نویسی لشکری از برنامه نویس ها را همراه تیم خود داشته باشند که در کنار تلاش برای راه اندازی کسب و کار و کسب درآمد برای خود به ارتقای سیستم تلگرام نیز کمک بکنند. نمونه آن امکان برنامه نویسی ربات برای تلگرام هست که سبب به وجود آمدن میلیون ها ربات برای سرویس های مختلف کاربری شده است.
🔹 یکی از مشکلات اخیر تلگرام، فیلترینگ آن در روسیه و ایران بود که خطر از دست دادن حدود 50 میلیون کاربر (از مجموع 200 میلیون) را ایجاد کرده بود.
🔸 اما تلگرام با همان حربه همیشگی یعنی استفاده از برنامه نویس ها و همراه کردن آنها با خود روش جدید ابداع کرده است که به نظر می رسد می خواهد مشکل فیلترینگ برنامه اش رابرای همیشه از بین برده و یا آن را بسیار سخت کند.
🔹 تلگرام روشی جدید به اسم mtproto-proxy برای تونلینگ ترافیک خود با استفاده از همان الگوریتم معروف رمزنگاری خود (mtproto) ایجاد کرده که عملا شکستن رمز آن و تشخیص و فیلتر کردن آن غیر ممکن است (تا کنون البته). چرا که در ظاهر همانند یک ترافیک عادی کار می کند و امکان تشخیص آن را برای سیستم های پیشرفته فیلترینگ (همانند آنچه در ایران استفاده میشود) غیرممکن می نماید.
🔸 در واقع، تلگرام با این ایده بیش از ده ها هزار برنامه نویس رو از تمامی دنیا به کارزار جنگ با فیلترینگ کشانده تا ایشان با ساختن پراکسی های جدید و توزیع آن در بین کاربران و اطرافیان خود شبکه ای از میلیون ها آی پی پراکسی ایجاد کند بنوعی که فیلتر کردن آنها عملا غیرممکن شود.
🔹 در این روش هر کاربر قادر خواهد بود با صرف هزینه ای بسیار کم یک سرور با یک آی پی پراکسی جدید ایجاد کرده و آن را در بین سایر کاربران توزیع کند. یعنی هر کاربر متصل به تلگرام می تواند ده ها کاربر دیگر را نیز به تلگرام متصل کند. در این روش، آی پی ها البته قابل فیلتر خواهند بود اما فیلتر کردن میلیون ها آی پی عملا کل اینترنت کشورها را مختل خواهد کرد. / نسل جوان
✍ mr.ashkan
👥 مدیران تلگرام از ابتدای کار تا حد امکان به صورت متن باز عمل کرده اند و همواره سعی کرده اند سایر برنامه نویس ها را با خودشون همراه کنند. یعنی از همان ابتدا روششان این بوده که با ارایه امکانات مختلف برنامه نویسی لشکری از برنامه نویس ها را همراه تیم خود داشته باشند که در کنار تلاش برای راه اندازی کسب و کار و کسب درآمد برای خود به ارتقای سیستم تلگرام نیز کمک بکنند. نمونه آن امکان برنامه نویسی ربات برای تلگرام هست که سبب به وجود آمدن میلیون ها ربات برای سرویس های مختلف کاربری شده است.
🔹 یکی از مشکلات اخیر تلگرام، فیلترینگ آن در روسیه و ایران بود که خطر از دست دادن حدود 50 میلیون کاربر (از مجموع 200 میلیون) را ایجاد کرده بود.
🔸 اما تلگرام با همان حربه همیشگی یعنی استفاده از برنامه نویس ها و همراه کردن آنها با خود روش جدید ابداع کرده است که به نظر می رسد می خواهد مشکل فیلترینگ برنامه اش رابرای همیشه از بین برده و یا آن را بسیار سخت کند.
🔹 تلگرام روشی جدید به اسم mtproto-proxy برای تونلینگ ترافیک خود با استفاده از همان الگوریتم معروف رمزنگاری خود (mtproto) ایجاد کرده که عملا شکستن رمز آن و تشخیص و فیلتر کردن آن غیر ممکن است (تا کنون البته). چرا که در ظاهر همانند یک ترافیک عادی کار می کند و امکان تشخیص آن را برای سیستم های پیشرفته فیلترینگ (همانند آنچه در ایران استفاده میشود) غیرممکن می نماید.
🔸 در واقع، تلگرام با این ایده بیش از ده ها هزار برنامه نویس رو از تمامی دنیا به کارزار جنگ با فیلترینگ کشانده تا ایشان با ساختن پراکسی های جدید و توزیع آن در بین کاربران و اطرافیان خود شبکه ای از میلیون ها آی پی پراکسی ایجاد کند بنوعی که فیلتر کردن آنها عملا غیرممکن شود.
🔹 در این روش هر کاربر قادر خواهد بود با صرف هزینه ای بسیار کم یک سرور با یک آی پی پراکسی جدید ایجاد کرده و آن را در بین سایر کاربران توزیع کند. یعنی هر کاربر متصل به تلگرام می تواند ده ها کاربر دیگر را نیز به تلگرام متصل کند. در این روش، آی پی ها البته قابل فیلتر خواهند بود اما فیلتر کردن میلیون ها آی پی عملا کل اینترنت کشورها را مختل خواهد کرد. / نسل جوان
✍ mr.ashkan
♦️ضرب الاجل یک ماهه روسیه به اپل
🔸آژانس تنظیم مقررات ارتباطات (روسیه) "روسکومنادزور" با انتشار بیانیه ای اعلام کرد از مقامات شرکت اپل خواسته است ظرف مدت یک ماه ارائه خدمات پیام رسان تلگرام در روسیه را متوقف کنند.
🔹الکساندر ژاروف رئیس روسکومنادزور : شرکت اپل یک ماه برای اتخاذ تدابیر مقتضی فرصت دارد. از آنجا که اپل یک شرکت فراملی است و بوروکراسی نیز در آن زیاد است، ما انتظار داریم که مقامات این شرکت ظرف مدت یک ماه به درخواستمان پاسخ دهند.
🔸ژاروف از توضیح این که چه تدابیری ممکن است روسکومنادزور بر ضد اپل اتخاذ کند، خودداری و خاطر نشان کرد فعلا قصد ندارد درباره واکنشهای احتمالی این شرکت آمریکایی به درخواست روسکومنادزور، گمانه زنی و پیشگویی کند. وی تصریح کرد:" زمانی که پاسخ اپل را دریافت کردیم، آن وقت می دانیم که چه بکنیم."/
🔸آژانس تنظیم مقررات ارتباطات (روسیه) "روسکومنادزور" با انتشار بیانیه ای اعلام کرد از مقامات شرکت اپل خواسته است ظرف مدت یک ماه ارائه خدمات پیام رسان تلگرام در روسیه را متوقف کنند.
🔹الکساندر ژاروف رئیس روسکومنادزور : شرکت اپل یک ماه برای اتخاذ تدابیر مقتضی فرصت دارد. از آنجا که اپل یک شرکت فراملی است و بوروکراسی نیز در آن زیاد است، ما انتظار داریم که مقامات این شرکت ظرف مدت یک ماه به درخواستمان پاسخ دهند.
🔸ژاروف از توضیح این که چه تدابیری ممکن است روسکومنادزور بر ضد اپل اتخاذ کند، خودداری و خاطر نشان کرد فعلا قصد ندارد درباره واکنشهای احتمالی این شرکت آمریکایی به درخواست روسکومنادزور، گمانه زنی و پیشگویی کند. وی تصریح کرد:" زمانی که پاسخ اپل را دریافت کردیم، آن وقت می دانیم که چه بکنیم."/
#خبر
برای گوشی های
p10 lite, honor8 lite, p9, p9 pro, honor 8, honor note 8, honor 6x, mate 8
نسخه آزمایشی اندروید 8 ارسال شده.
تاریخ ارسال نسخه اصلی مشخص نیست.
زمانی که ارسال بشه از برنامه firmware finder ، زودتر از بقیه کاربران این آپ دیتا را میتوانید نصب کنید.
برای گوشی های
p10 lite, honor8 lite, p9, p9 pro, honor 8, honor note 8, honor 6x, mate 8
نسخه آزمایشی اندروید 8 ارسال شده.
تاریخ ارسال نسخه اصلی مشخص نیست.
زمانی که ارسال بشه از برنامه firmware finder ، زودتر از بقیه کاربران این آپ دیتا را میتوانید نصب کنید.
وزیر ارتباطات:
🔹مواضع من از ابتدا درباره فیلترینگ مشخص بود
🔸به فیلترشکن ها اجازه توسعه پیدا کردن نمی دهیم.
🔹مواضع من از ابتدا درباره فیلترینگ مشخص بود
🔸به فیلترشکن ها اجازه توسعه پیدا کردن نمی دهیم.
Installation MTProxy For servers Linux
#mr.ashkan #MTProxy
Install NodeJS, NPM, GIT and PM2 on your server:
In Debian & Ubuntu
$> ap
$> yu
$> gi
{
"port"
$> pm
$> pm
#mr.ashkan #MTProxy
Install NodeJS, NPM, GIT and PM2 on your server:
In Debian & Ubuntu
$> ap
t-get install nodejs npm git
$> npm install pm2 -g
In CentsOS & RHEL$> yu
m install nodejs npm git
$> npm install pm2 -g
Clone repository on your server:$> gi
t clone https://github.com/FreedomPrevails/JSMTProxy.git
Enter JSMTProxy directory and edit config file (config.json) if you wish. You can change the secret and listening port. it is in json format.{
"port"
:6969,
"secret":"b0cbcef5a486d9636472ac27f8e11a9d"
}
Start the app in cluster mode using pm2:$> pm
2 start mtproxy.js -i max
You can use pm2 to list running processes and check their logs:$> pm
2 list
$> pm2 log #idInstallation MTProxy For servers Windows
#mr.Ashkan #MTProxy
Download and install NodeJS for Windows using this link: https://goo.gl/bb654A
After installation is complete, enter "Command Prompt" and install PM2 by following command:
npm i
Extract the zip file into C Drive. and enter the command in CMD:
cd C:\
pm2 s
Port: 6969
Secre
Note: You may need to open the proxy port number in your Windows firewall in order for it to accept connections.
#mr.Ashkan #MTProxy
Download and install NodeJS for Windows using this link: https://goo.gl/bb654A
After installation is complete, enter "Command Prompt" and install PM2 by following command:
npm i
nstall pm2 -g
and Download JSMTProxy using this link: https://goo.gl/NHCBKT Extract the zip file into C Drive. and enter the command in CMD:
cd C:\
JSMTProxy-master
Start the proxy server from "Command Prompt" by following command:pm2 s
tart mtproxy.js -i max
Default port and secret:Port: 6969
Secre
t: b0cbcef5a486d9636472ac27f8e11a9d
You can change these both on file config.jsonNote: You may need to open the proxy port number in your Windows firewall in order for it to accept connections.
Telegram_X_iOS_5.0.3.349_alpha.ipa
57.9 MB
Forwarded from Pavel Durov
Unfortunately, some Telegram features, such as stickers, don’t work correctly under iOS 11.4 that was just released – even though we fixed this issue weeks ago.
Apple has been preventing Telegram from updating its iOS apps globally ever since the Russian authorities ordered Apple to remove Telegram from the App Store. Russia banned Telegram on its territory in April because we refused to provide decryption keys for all our users’ communications to Russia’s security agencies. We believe we did the only possible thing, preserving the right of our users to privacy in a troubled country.
Unfortunately, Apple didn’t side with us. While Russia makes up only 7% of Telegram’s userbase, Apple is restricting updates for all Telegram users around the world since mid-April. As a result, we’ve also been unable to fully comply with GDPR for our EU-users by the deadline of May 25, 2018. We are continuing our efforts to resolve the situation and will keep you updated.
Sorry for the inconvenience and thank you for your patience.
Apple has been preventing Telegram from updating its iOS apps globally ever since the Russian authorities ordered Apple to remove Telegram from the App Store. Russia banned Telegram on its territory in April because we refused to provide decryption keys for all our users’ communications to Russia’s security agencies. We believe we did the only possible thing, preserving the right of our users to privacy in a troubled country.
Unfortunately, Apple didn’t side with us. While Russia makes up only 7% of Telegram’s userbase, Apple is restricting updates for all Telegram users around the world since mid-April. As a result, we’ve also been unable to fully comply with GDPR for our EU-users by the deadline of May 25, 2018. We are continuing our efforts to resolve the situation and will keep you updated.
Sorry for the inconvenience and thank you for your patience.
Pavel Durov
Unfortunately, some Telegram features, such as stickers, don’t work correctly under iOS 11.4 that was just released – even though we fixed this issue weeks ago. Apple has been preventing Telegram from updating its iOS apps globally ever since the Russian…
و اینگونه بود که تلگرام از اپ استور حذف شد !
#fun - #freetime
سرخ پوستان از رييس جديد می پرسند :
آيا زمستان سختی در پيش است؟
رييس جوان قبيله که نمی دانست چه جوابی بدهد می گوید : برای احتياط برويد هيزم تهيه کنيد. سپس به سازمان هواشناسی کشور زنگ می زند :
آقا امسال زمستان سردی در پيش است؟
و پاسخ شنید : اينطور به نظر می آید.
پس رييس دستور می دهد که بيشتر هيزم جمع کنند، و بعد يک بار ديگر به سازمان هواشناسی زنگ می زند :
شما نظر قبلی تان را تأييد می کنيد؟
و پاسخ شنید : صد در صد !
رييس دستور می دهد که افراد تمام توانشان را برای جمع آوری هيزم بيشتر بکار ببرند. سپس دوباره به سازمان هواشناسی زنگ می زند : آقا شما مطمئنيد که امسال زمستان سردی در پيش است؟
و پاسخ شنید : بگذار اينطور بگویم ؛ سردترين زمستان در تاريخ معاصر!!!
رييس پرسید : از کجا می دانيد؟
و پاسخ شنید :
چون سرخ پوستها ديوانه وار دارند هيزم جمع میکنند !
خيلی وقتها ، ما خودمان مسبب وقايع اطرافمان هستيم!
.
.
حالا بنظر شما دلار و ماشین و گوشت و مرغ و ... باز هم گران می شود؟؟؟!!!!
خواهشا کمتر هیزم جمع کنید !...
سرخ پوستان از رييس جديد می پرسند :
آيا زمستان سختی در پيش است؟
رييس جوان قبيله که نمی دانست چه جوابی بدهد می گوید : برای احتياط برويد هيزم تهيه کنيد. سپس به سازمان هواشناسی کشور زنگ می زند :
آقا امسال زمستان سردی در پيش است؟
و پاسخ شنید : اينطور به نظر می آید.
پس رييس دستور می دهد که بيشتر هيزم جمع کنند، و بعد يک بار ديگر به سازمان هواشناسی زنگ می زند :
شما نظر قبلی تان را تأييد می کنيد؟
و پاسخ شنید : صد در صد !
رييس دستور می دهد که افراد تمام توانشان را برای جمع آوری هيزم بيشتر بکار ببرند. سپس دوباره به سازمان هواشناسی زنگ می زند : آقا شما مطمئنيد که امسال زمستان سردی در پيش است؟
و پاسخ شنید : بگذار اينطور بگویم ؛ سردترين زمستان در تاريخ معاصر!!!
رييس پرسید : از کجا می دانيد؟
و پاسخ شنید :
چون سرخ پوستها ديوانه وار دارند هيزم جمع میکنند !
خيلی وقتها ، ما خودمان مسبب وقايع اطرافمان هستيم!
.
.
حالا بنظر شما دلار و ماشین و گوشت و مرغ و ... باز هم گران می شود؟؟؟!!!!
خواهشا کمتر هیزم جمع کنید !...
eval
evalc( code );
برای عملکرد های محاسباتی مثلا
evalc("2+2");
evalc("true");
evalc(evalc("''hello''")); \\hello
evals( string );
برای رمزگشایی کدهای متنی
برای مثال
'\xff\n45$hello'
این برای نمایش تغییری نخواد کرد اما
evals('\xff\n45$hello');
برابر است با
"\xff\n45$hello"
evalc( code );
برای عملکرد های محاسباتی مثلا
evalc("2+2");
evalc("true");
evalc(evalc("''hello''")); \\hello
evals( string );
برای رمزگشایی کدهای متنی
برای مثال
'\xff\n45$hello'
این برای نمایش تغییری نخواد کرد اما
evals('\xff\n45$hello');
برابر است با
"\xff\n45$hello"
https://www.instagram.com/ehsanalikhani/
هکر نیسما ولی از این احسانه بدجوری بدم میومد :///
پیجش هک شد...
هکر نیسما ولی از این احسانه بدجوری بدم میومد :///
پیجش هک شد...
#بیشتر_بدانید
تاحالا به این فکر کردید که کلاس استرینگ مخصوص خودتون بسازین؟
بسازین خو
دوستی اومد و بهم گفت از شی گرایی بیشتر بگم
عجیبه اما من درباره شی گرایی زیاد حرف زدم قبلا
اما خب چون گفت منم این فکر به سرم زد
در ضمن من یه آماتور هستم و کلاس کامل تست شده نیست و احتمال ارور دادن یا نشت حافظه توش هست
اگه چیزی بود خبرم کنین درست کنم
کلاس کامنت گذاری شده هستش
#
تاحالا به این فکر کردید که کلاس استرینگ مخصوص خودتون بسازین؟
بسازین خو
دوستی اومد و بهم گفت از شی گرایی بیشتر بگم
عجیبه اما من درباره شی گرایی زیاد حرف زدم قبلا
اما خب چون گفت منم این فکر به سرم زد
در ضمن من یه آماتور هستم و کلاس کامل تست شده نیست و احتمال ارور دادن یا نشت حافظه توش هست
اگه چیزی بود خبرم کنین درست کنم
کلاس کامنت گذاری شده هستش
#
include <iostream>
#include <cstring>
#include <stdexcept>
using namespace std;
//چون حال ندارم هر بار تایپش کنم یه اسم مستعار براش میسازم
typedef unsigned int uint;
class MyString
{
public:
//سازنده ی بدون آرگومان
MyString()
{
// دیتا هیچوقت نباید خالی باشه چون ما تمام حزف های کلاس رو بدون شرط انجام میشه
data = new char[1];
// همیشه آخرین حرف باید پوچ باشه
data[0]='\0';
}
//سازنده ی با آرگومان
MyString(const char* in )
{
//اشاره گر رو آماده میکنیم
data = new char[strlen(in)+1];
//کپی میکنیم
strcpy(data,in);
// حرف آخرش رو هم پوچ میکنیم
data[strlen(in)]='\0';
}
//سازنده ی کپی
MyString(const MyString& other)
{
data = new char[strlen(other.data)+1];
strcpy(data,other.data);
data[strlen(other.data)]='\0';
}
//مخرب
virtual ~MyString()
{
delete[] data;
}
//موقع سرچ معادل پیدا نشدن هست
static const uint NullPosition = -1;
//دیتا رو بر میگردونه
const char* getdata()const
{
return data;
}
//اندازه رشته رو برمیگردونه
uint getsize()const
{
return strlen(data);
}
// پاک میکنه
void clear()
{
delete[] data;
//حتما باید دیتا حداقل یه خونه داشته باشه تا ارور نده
data=new char[1];
data[0]='\0';
}
// یه تیکه از رشته رو بر میگردونه با استفاده از نقطه شروع و پایانش
MyString substring(uint _start,uint _end=-1)const
{
//اگه پایانش منفی یک بود یعنی پایان رشته البته مقدار منطقیش منفی یک نیست
uint __end = (_end!=-1)?_end:strlen(data)+1;
if(_start>__end)//اگه نقطه شروع از پایان بزرگتر بود ارور بده
throw std::runtime_error("MyString::substr : start point is greater than end point");
MyString out;
delete out.data;
out.data= new char[__end-_start];//مقدار جدید خروجی
for(int i=_start;i<__end;i++)// کپی کردن
out.data[i-_start]=data[i];
out.data[__end-_start]='\0';
return out;
}
// یه رشته رو از داخل خود رشته پیدا میکنه و میتونین مشخص کنین از کجا شروع بشه
uint findstring(const char* in,uint from=0)const
{
uint pos = (uint)strstr(data,in);
if(pos==0)
return -1;
while(pos - (uint )data<from)
{
pos=(uint)strstr(&data[pos - (uint )data+1],in);
if(pos==0)
break;
}
if(pos - (uint )data<from || pos - (uint )data>getsize())
return -1;
return pos - (uint )data;
}
// پیدا کردن با استفاده از نوع خود کلاس
uint findstring(const MyString& in,uint from=0)const
{
return findstring(in.data,from);
}
// پاک کردن یه قسمت از رشته با استفاده از نقطه شروع و پایان
void erase(uint start,uint end=-1)
{
//اگه منفی یک بود یعنی انتهاش
uint _end=(end!=-1)?end:strlen(data);
if(start>getsize()||_end>getsize())
throw std::runtime_error("MyString::erase : start point or end point is greater than data size");
//سایز رشته قبل از تغییر
uint strsize=getsize();
//کپی کردن کاراکتر های بعد از قسمتی که باید پاک بشه
for(uint i=start;i<strsize;i++)
{
//یعنی توانایی کپی رو داره
if(i+(_end-start)<strsize)
{
// رشته جلویی رو میاره میذاره جایی که باید پاک شه
data[i]=data[i+(_end-start)];
//پوچ میشه تا باقی نمونه
data[i+(_end-start)]='\0';
}
else
// قابل کپی نیست و باید پوچ شه
data[i]='\0';
}
//یادتون نره میتونین مموری رو فلاش کنین اما من اینکار رو نکردم
}
// وارد کردن یه رشته به داخل رشتمون (پوستم سر دیباگ کردنش کنده شد)
void insert(uint point,const char* in)
{
// اگه نقطه شروع بود کار رو سریع انجام میدم که جمع کردنش باشه
if(point == 0)
{
MyString _a(in);
//توضیحات جمع کردن رو بخونید
*this = _a+*this;
return;
}
//سایز قبل تغییر
uint _s=getsize();
// سایز ورودی برای اینکه لازم نباشه هر بار چک کنیم
uint _inlen = strlen(in);
//نگه میداریم تا حافظه جدید بسازیم
char* buf = data;
data = new char[_s+_inlen+1];
//حافظه قدیمی رو کپی میکنیم
memcpy(data,buf,sizeof(*buf)*strlen(buf));
// حافظه قدیمی رو از بین میبریم
delete[] buf;
//کپی کردن
for(uint i=_s;i>=point;i--)
{
// از محل جایی که باید پاک بشه حروف ها رو به اندازه سایزشون جلو میبریم
data[i+_inlen]=data[i];
}
data[_s+_inlen]='\0';
//اون رشته ای که باید وارد میکردیم رو وارد میکنیم
memcpy(&data[point],in,sizeof(*in)*_inlen);
}
//این همون بالایی هس با فرض اینکه نوعش ورودی از نوع خودشه
void insert(uint point,const MyString& in)
{
insert(point,in.data);
}
// جایگزین کردن یه رشته با استفاده از نقطه شروعش
void replace(uint start,const char* b)
{
// اگه اندازش بیشتر بود باید حافظه جدید حاضر کنیم
if(start+strlen(b)>getsize())
{
// محل قدیمی رو نگه میداریم
char* buf=data;
//محل جدید رو حاضر میکنیم
data= new char[start+strlen(b)+1];
// محتوای قدیمی رو به جای جدید کپی میکنیم
memcpy(data,buf,sizeof(*buf)*strlen(buf));
data[start+strlen(b)]='\0';
// حافظه قدیمی رو پاک میکنیم
delete[] buf;
}
//اندازه ورودی رو بدست میاریم
uint blen = strlen(b);
// کپی میکنیم
for(uint i=start;i<blen+start;i++)
data[i]=b[i-start];
}
// این رو که دیگه معلومه
void replace(uint start,const MyString& b)
{
replace(start,b.data);
}
// تمام کلمات آرگومان اول رو با آرگومان دوم جایگزین میکنه . نقطه شروع هم میتونین بهش بدین نظقطه پایان هم همینطور
void replaceall(const char* what,const char* with,uint from=0,uint end=-1)
{
uint _d=findstring(what,from);
while(1)
{
if(end<_d||_d==-1)
break;
erase(_d,_d+strlen(what));
insert(_d,with);
_d=findstring(what,_d+strlen(with));
}
}
//معلومه دیگه
void replaceall(const MyString& what,const MyString& with,uint from=0,uint end=-1)
{
replaceall(what.getdata(),with.getdata(),from,end);
}
//جمع کردن یه رشته با یه رشته دیگه
MyString operator+(const char* in)const
{
MyString out;
delete out.data;
// مقدار جدید براش آماده میکنیم
out.data = new char[strlen(in)+strlen(data)+1];
// مقدار خود رشته رو کپی میکنیم
memcpy(out.data,data,sizeof(*data)*strlen(data));
// مقدار رشته دوم رو هم کپی میکنیم
memcpy(&out.data[strlen(data)],in,sizeof(*in)*strlen(in));
out.data[strlen(in)+strlen(data)]='\0';
return out;
}
MySt
ring operator+(const MyString& in)const
{
return *this + in.data;
}
//کپ
ی کردنt
MyS
ring& operator = (const char* in)
{
delete[] data;
//آماده کردن فضای جدید
data = new char[strlen(in)+1];
//کپی کردن
strcpy(data,in);
data[strlen(in)]='\0';
return *this;
}
MySt
ring& operator = (const MyString& in)
{
*this = in.data;
return *this;
}
//اض
افه کردن به خود رشتهt
MyS
ring& operator +=(const char* in)
{
*this = *this + in;
return *this;
}
MySt
ring& operator +=(const MyString& in)
{
*this+=in.data;
return *this;
}
//ب
ررسی برابر بودنl
boo
operator == (const MyString& other)const
{
return !strcmp(other.data,data);
}
//ب
ررسی برابر نبودنl
boo
operator!= (const MyString& other)const
{
return !(*this==other);
}
bool
operator == (const char* other)const
{
return !strcmp(other,data);
}
bool
operator!= (const char* other)const
{
return !(*this==other);
}
//دس
ترسی به تک تک کاراکتر هاr
cha
& operator [] (uint in)
{
if(in>strlen(data))//ارور بده اگه عدده زیاد بود
throw std::runtime_error("MyString::operator [] : in is greater than data size");
return data[in];
}
cons
t char& operator [] (uint in)const
{
if(in>strlen(data))
throw std::runtime_error("MyString::operator [] : in is greater than data size");
return data[in];r
}
p
ivate:
r
cha
* data;م
};
یه
ثال استفاده ازش:
int main
()رم لذت برده باشین
{
MyString a = "Hello World!";
cout<<a.getdata()<<endl;
return 0;
}
امیدوا
زندگیتون بی ارور♥️
تلگرام اعلام کرده که در به روزرسانی آینده این پیام رسان امکان کامنت گذاری بر زیر پستهای کانالها اضافه خواهد شد
🔹وزیر ارتباطات ایران گفته بود تلگرام رسانه یک طرفه هست چون امکان پاسخ دادن ندارد!
🔹وزیر ارتباطات ایران گفته بود تلگرام رسانه یک طرفه هست چون امکان پاسخ دادن ندارد!
💥 کلید کدگشایی تلگرام طلایی!
تلگرام طلایی یکی از اپ های غیر رسمی تلگرام هست که اخیرا بیان شده که مربوط به جمهوری اسلامی است.
📌 با این اپ بدون استفاده از فیلترشکن میتونید از تلگرام خود استفاده کنید!
💠 ساختار این اپ هم به این صورت هست که در درون نرم افزار جستجوگر پروکسی کار شده که با ارتباط با سرور تلگرام طلایی پروکسی دریافت کرده و روی اپ ست میکند و شما بدون استفاده از فیلترشکن خارجی میتونید از این اپ استفاده کنید.
🔐 اطلاعاتی که بین اپ تلگرام طلایی و سرورش رد و بدل میشود با کدینگ AES کدگذاری شده است و دی کامپایل کردن این اپ شما می توانید به فرمول تولید کلید رمزگشایی اطلاعات پی ببرید!
📌 تلگرام طلایی لیست پروکسی های خود را از این آدرس با ارسال چند پارامتر دریافت میکند که در ریسپانس شما یک جی سون حاوی دیتای کدشده ی AES دریافت میکنید و اپ باید این محتوا را با کلید کدگشا، کدگشایی کند:
🌐 http://lh58.hotgram.ir/v1/proxy?slt=77799000&appId=3
🔓کلیدکدگشایی از اطلاعات:
⛔️ با کدگشایی این اطلاعات شما به پروکسی های تلگرام طلایی دست خواهید یافت!
برای مثال از طریق لینک بالا شما یک استرینگ کدشده دریافت کنید و در سایت زیر با کلید کدگشایی و کلید IV بالا و زدن دکمه Decrypt و سپس Decode to plain Text اطلاعات کدگشایی شده را ببینید:
🌐 https://www.devglan.com/online-tools/aes-encryption-decryption
نمونه کدگشایی شده:
213.195.55.20 ===>
تلگرام طلایی یکی از اپ های غیر رسمی تلگرام هست که اخیرا بیان شده که مربوط به جمهوری اسلامی است.
📌 با این اپ بدون استفاده از فیلترشکن میتونید از تلگرام خود استفاده کنید!
💠 ساختار این اپ هم به این صورت هست که در درون نرم افزار جستجوگر پروکسی کار شده که با ارتباط با سرور تلگرام طلایی پروکسی دریافت کرده و روی اپ ست میکند و شما بدون استفاده از فیلترشکن خارجی میتونید از این اپ استفاده کنید.
🔐 اطلاعاتی که بین اپ تلگرام طلایی و سرورش رد و بدل میشود با کدینگ AES کدگذاری شده است و دی کامپایل کردن این اپ شما می توانید به فرمول تولید کلید رمزگشایی اطلاعات پی ببرید!
📌 تلگرام طلایی لیست پروکسی های خود را از این آدرس با ارسال چند پارامتر دریافت میکند که در ریسپانس شما یک جی سون حاوی دیتای کدشده ی AES دریافت میکنید و اپ باید این محتوا را با کلید کدگشا، کدگشایی کند:
🌐 http://lh58.hotgram.ir/v1/proxy?slt=77799000&appId=3
🔓کلیدکدگشایی از اطلاعات:
KCH@LQj#>6VCqqLg
🔓 کلید آی وی: YC'2bmK=b%#NQ?9j ⛔️ با کدگشایی این اطلاعات شما به پروکسی های تلگرام طلایی دست خواهید یافت!
برای مثال از طریق لینک بالا شما یک استرینگ کدشده دریافت کنید و در سایت زیر با کلید کدگشایی و کلید IV بالا و زدن دکمه Decrypt و سپس Decode to plain Text اطلاعات کدگشایی شده را ببینید:
🌐 https://www.devglan.com/online-tools/aes-encryption-decryption
نمونه کدگشایی شده:
{"ip":"213.195.55.20","prt":443,"usr":"hotgram","pwd":"062=29-cc_00","ttl":2337}
📌 نکته: نوع پروکسی ها socks5 هستند و برای ست کردن باید بخش اول و دوم آی پی را جابجا کنید. مثال:213.195.55.20 ===>
195.213.55.20
🇮🇷 @jasussdevglan
AES Encryption and Decryption Online
Online AES encryption/decryption tool with ECB, CBC, CTR, and GCM modes. Supports 128, 192, and 256-bit keys. Built for secure, real-world use.
تاریخچه زبان برنامه نویسی C همراه با:🧐😄 mr.ashkan
#سی_کد
زبان برنامه نویسی C توسط دنیس مکآلیستر ریچی (Dennis MacAlistair Ritchie) در سال 1972 معرفی شد و به علل مختلف از جمله پیروی از ساخت یافتگی (و در نتیجه افزایش کارایی)، خوانایی بهتر و اشکال زدایی راحت تر برنامه ها مورد استقبال فراوان قرار گرفت.
در هر نگارش از زبان C استاندارد هایی تعریف شده است و آخرین استاندارد این زبان C11 نام دارد.
بدیهی است با پیروی از استانداردهای روز امکانات بیشتری در توسعه نرم افزارها در اختیار داشته و همچنین برنامه های کاراتری خواهیم نوشت.
⌨⌨⌨⌨⌨
💻 معرفی کامپایلر، سورس کد و محیط توسعه
#سی_کد
برنامههای نوشته شده به زبان C در فایلی متنی با پسوند c. ذخیره میشوند. به این فایل، کد منبع یا source code گفته میشود.
از آنجا که زبان ماشین صفر و یک است و اصولا پردازنده به طور مستقیم امکان اجرای کدها را ندارد، فایل کد منبع برای اجرا باید به زبان ماشین ترجمه یا Compile (کامپایل) شود.
به برنامهای که عمل ترجمه کدمنبع به زبان ماشین را انجام می دهد مترجم یا compiler گفته می شود.
برای نوشتن برنامه به زبان C به چیزی جز یک ویرایشگر متن ساده و یک کامپایلر نیاز نیست اما از آنجا که در ابتدای کار ترجیح بر استفاده از امکاناتی مثل قابلیت تکمیل دستور ها با تایپ بخشی از دستور و یا خطایابی خودکار برنامه است نیاز به استفاده از یک محیط توسعه مجتمع (IDE) احساس میشود که بخشی از کار ظاهرا ساده تر و سریع تر انجام شود. (حال اینکه برای مثال برنامه نویسان زبردست بسیاری از استفاده از IDE ها دوری میکنند و از ترکیب یک ادیتور عالی مانند Vim و کامپایلر GCC استفاده میکنند و این کار نه تنها سرعت کار را کاهش نمی دهد بلکه منابع سیستمی بسیار کمتری اشغال میکند و سرعت کارها را شدیدا افزایش میدهد.)
⌨⌨⌨⌨
💻 انتخاب و نصب محیط توسعه
#سی_کد
📁
محیط های توسعه مجتمع (IDE) بسیاری وجود دارد که از معروف ترین های آنها می توان به Eclipse، Codeblocks، Microsoft Visual Studio و Codelite اشاره کرد.
از آنجا که امکان استفاده قانونی از برنامه ویژوال استودیو در ایران به دلایلی از جمله عدم امکان پرداخت هزینه نرم افزار و همچنین عدم سرویس دهی این شرکت به کاربران داخل کشور (از جمله پشتیبانی) امکان پذیر نیست و از همه مهمتر کامپایلر پیشفرض این IDE امکان برنامه نویسی استاندارد را از برنامه نویس می گیرد بنابراین از آن استفاده نخواهیم کرد.
اما در اینجا از کدبلاکس (Code::Blocks) استفاده خواهیم کرد که از کامپایلر GCC به طور پیشفرض استفاده میکند و به لطف قابلیت چندسکویی (Cross Platform) امکان استفاده از آن در سیستم عامل های مختلف فراهم می باشد. بنابراین پیشنهاد میکنم برای هماهنگی بهتر با آموزش ها آخرین نسخه این IDE را دانلود و نصب نمایید.
کاربران سیستم عامل ویندوز میتوانند آخرین نسخه برنامه کدبلاکس (codeblocks-16.01mingw-setup) را از آدرس زیر دریافت نمایند:
https://www.dropbox.com/s/1nt39feuuboxt8z/codeblocks-16.01mingw-setup.exe?dl=0
از آنجا که نصب کدبلاکس همانند نصب سایر برنامه هاست و نکته خاصی ندارد از توضیحات بیشتر صرف نظر میکنم.
کاربران گنو/لینوکسی نیز برای نصب کدبلاکس میتوانند بستهٔ codeblocks را توسط مدیربستهٔ توزیع خود نصب کنند. به عنوان مثال کاربران اوبونتو، مینت و دبیان میتوانند با دستور زیر جدیدترین نسخه این برنامه را نصب نمایند.
sudo apt install codeblocks
تنها نکته ای که باید مد نطر قرار دهید این است که وقتی کدبلاکس را برای اولین بار اجرا میکنید برنامه از شما میخواهد کامپایلر پیشفرض را انتخاب کنید در این قسمت GCC GNU compiler را برگزینید.Dropbox
codeblocks-16.01mingw-setup.exe
Shared with Dropbox