backup yum GPG Keys

In case you’re looking for yum‘s repository GPG Keys, you can find them under /etc/pki/rpm-gpg

Convert Non-Generic IEnumerator to IEnumerable

[code lang=”csharp”]
/// <summary>
/// Converts a Non-Generic IEnumerator to IEnumerable
/// </summary>
/// <param name="enumerator"></param>
/// <returns></returns>
public static IEnumerable ToIEnumerable(this IEnumerator enumerator) {
while (enumerator.MoveNext()) {
yield return enumerator.Current;
}
yield break;
}
[/code]

using “netcat” as a port scanner on linux

There are certain time when you need to do a port scan on a remote host in a Linux shell. There are many scripts flying all over the internet giving you this ability; but wait! There’s a native way to do this.

The “netcat” command [perhaps you’ll need to install it using yum or whatever installation method you prefer] can do the job really nice!
nc <host-name-or-ip-address> -z -w 1 <start-port>-<end-port>

example:
nc -z -w 1 192.168.1.1 1-65535
this will scan for ports from 1 to 65536 on 192.168.1.1 and will wait 1 second before throwing a timeout for every port being checked.

Nice trick, wasn’t it?

اعتراض

یعنی اعتراض کردنم بلد نیستیم ها!!
ملت جوگیر پاشدن رفتم روی یه عکس از پادشاه عربستان اعتراض کنن به اسمی که این عربها برای خلیج فارس گذاشتن، یکی در میون فحش خواهر و مادر باید بخونی اون وسط!

بابا! معترضین؟ اوکی! مثل بچه ی آدمیزاد به یارو بگین که بفهمه با مردم با فرهنگی طرفه؛ وقتی میرین اونجا رو به فحش می بندین، اولاً طرف می فهمه که دردتون اومده، حالا هی میخواد انگشتشو بیشتر اون تو بچرخونه؛ دوماً هر کی نگاه کنه میفهمه که با ملت بی فرهنگ و بی تربیتی طرفه!

Excel formula for a long/strong random password

=CONCATENATE(RANDBETWEEN(11, 99), CHAR(RANDBETWEEN(65,90)), CHAR(RANDBETWEEN(33,47)), RANDBETWEEN(11111,99999), CHAR(RANDBETWEEN(97,122)),CHAR(RANDBETWEEN(33,47)))

Refresh Intellisense Cache in Microsoft SQL Server Management Studio

When you create a new object in SSMS, its intellisense will not recognize it right away. I had to close and re-open the SSMS to make it see these new objects.

Well, there’s a very nice shortcut to make SSMS see these new objects right away! Press Ctrl+Shift+R to refresh the Intellisense cache after you’ve created a new object and everything will be fine.

PS to those fellas using Red-Gate SQL Prompt:
Don’t forget to press Ctrl+Shift+D refresh SQL Prompt’s cache either.

کیبورد فارسی استاندارد برای همه ویندوزها

Persian Keyboard - Custom Layout

Persian Keyboard – Custom Layout

لینک دانلود در پایان پست وجود داره. اگه حوصله اش رو ندارید که مطلب رو بخونین میتونین از اینجا دانلودش کنین!

در Microsoft Windows، وقتی بنا بر این بشود که کیبوردتان فارسی هم بنویسد، راه‌های زیادی برای این کار وجود خواهد داشت؛ از صفحه کلید عربی/فارسی خود ویندوز گرفته تا راه حل ارائه شده توسط سازمان ملی استاندارد ایران و این راهها، هر کدام مزیت و عیوب خود را دارند.

برای من، مهمتر از همه این بود که ضمن حفظ جای کلید ها در استاندارد قبلی، کاراکتری که جدیداً استفاده از آن باب شده یعنی Zero-Width Non-Joiner یا همان ZWNJ با کد یونیکد U+200C را روی ترکیب کلیدهای Shift+Space داشته باشم؛ و اولویت دوم سادگی نصب روی همه ی نسخه های ویندوز بود؛ از 98 بگیرید تا Server 2008 R2 و نیز همه ی پلاتفرم‌های ویندوز (x86، x64 و IA64).

خوشبختانه، مایکروسافت، نرم افزاری ارائه می دهد به اسم Microsoft Keyboard Layout Creator که اولویت دوم را کاملاً برآورده می کند؛ اما بدبختانه، از نظر علما در مایکروسافت، به کلید Space در هر حالتی (یعنی بصورت ساده یا به همراه هر ترکیبی از Shift، Control و Alt) تنها می توان کاراکترهایی را نسبت داد که از نظر آن علمای محترم، جزء White-Space ها باشند و ZWNJ جزء آن کاراکترها نیست!

خوشبختانه، نرم افزار فوق با Microsoft.NET نوشته شده و با تغییراتی در تابع تشخیص White-space، می توان هر کاراکتری را بعنوان White-Space به خورد نرم افزار مربوطه داد!

خیلی دردسرتان ندهم! فایلی که به این پست پیوست شده، یک کیبورد فارسی به مجموعه‌ی کیبوردهای شما اضافه خواهد‌کرد به نام Persian – Custom Layout و امکانات زیر را خواهد ارائه خواهد داد:

  1. با استفاده از ترکیب کلیدهای Shift و Space می‌توانید کاراکتر ZWNJ یا هم “نیم‌فاصله” خودمان را تایپ کنید.
  2. حروف “ی” و “ک” را بصورت فارسی بنویسید.
  3. در صورتی که صفحه کلید در حالت تایپ فارسی باشد و Caps Lock را روشن کنید، اعداد بالای کیبورد، فارسی خواهند بود. یعنی به جای 1234567890 تایپ خواهد شد: ۱۲۳۴۵۶۷۸۹۰ و البته این حالت بر کلیدهای “صفحه ی عددی” یا Numeric Pad تأثیری نخواهد داشت.
Persian Keyboard - Custom Layout - Shift key toggled

Persian Keyboard – Shift key toggled

Persian Keyboard - Custom Layout - Caps-Lock key toggled

Persian Keyboard – Caps-Lock key toggled

Persian Keyboard - Custom Layout Installer
Download Persian Keyboard – Custom Layout Installer here.

Ctrl+Alt+Delete in remote desktop?

Well, press “Ctrl+Alt+End” instead and you’re good to go!

خانواده بزرگ سامسونگ – نسخه 2

خوب بالاخره نسخه ی دوم نرم افزار خانواده بزرگ سامسونگ رو – که نسخه ی اولش رو با کلی نقص و باگ، یکی-دو تا از رفقا مرحمت کردن و گذاشتن روی دستمون و رفتن پی زندگیشون – آماده کردیم.
امیدوارم که تا قبل از پایان تعطیلات نوروز بگذاریمش بالا که ملتی حالش رو ببرن…

من فقط موندم از رفاقت این رفقا!

nginx startup script problems? Well! No More!

If you have messed with your nginx setup; perhaps you’ve installed it using yum and then you have come to a conclusion that you need passenger for a rails application and therefore you’ve built it again using source; you most probably have a corrupted nginx service control script now!
Well, no worries! You can fix it really easy.
1. use the “-V” switch of nginx to determine its configuration. something like
nginx -V

2. use “whereis” command to find possible locations of nginx executable. like
whereis nginx

3. to make sure you’ve stopped nginx, you can use a combination of “kill” and “pidof” commands. like
kill `pidof nginx`
Please note that I’m using ” ` ” and not ” ‘ “.

4. use a text editor like “vi” to edit the service control script.. it must be in an address like this: “\etc\init.d\nginx”. You may want to use “cp” to keep a copy of this file before you mess with it.
cp \etc\init.d\nginx \etc\init.d\nginx_original
and then
vi \etc\init.d\nginx

5. There should be lines where you can see the script decides where to look for conffile, pidfile and lockfile. edit them as per what you received from that “nginx -V” command

… and you’re finally good to go!
service nginx stop
service nginx start
service nginx status

These all should work now!