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


Unix TimeStamp


مهر زمانی یونیک عددی است نمایش دهنده اختلاف از ساعت 00:00:00 UTC روز 1 ژانویه 1970 میلادی بر حسب ثانیه که استفاده فراوانی از آن برای ذخیره زمان در سیستم های مختلف می شود.
در این نوشته کوتاه زیر سعی داریم نحوه استفاده از این سیستم را در MySQL و چگونگی کار با آن ، تبدیل آن به فرم قابل نمایش و .. را ببرسی کنیم. برای شروع جدول نمونه ای را بصورت زیر ایجاد می کنیم.
تمامی کوئری های این نوشته بروی جدول زیر اجرا می شوند.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
-- Table "mytable" DDL
CREATE TABLE `mytable` (
`userId` int(11) NOT NULL,
`url` varchar(100) NOT NULL,
`epoch` int(11) NOT NULL
);
INSERT INTO mytable VALUES(1,'homepage',1225540800);
# User 1 visited the url homepage on Nov 1, 2008
INSERT INTO mytable VALUES(2,'contact',1225886400);
# User 2 visited the url contact on Nov 5, 2008
INSERT INTO mytable VALUES(3,'contact',1225972800);
# User 3 visited the url contact on Nov 6, 2008
INSERT INTO mytable VALUES(4,'homepage',1228132800);
# User 4 visited the url homepage on Dec 1, 2008


محتوات جدول ایجادی:
1
2
3
4
5
6
7
8
+--------+----------+------------+
| userId | url | epoch |
+--------+----------+------------+
| 1 | homepage | 1225540800 |
| 2 | contact | 1225886400 |
| 3 | contact | 1225972800 |
| 4 | homepage | 1228132800 |
+--------+----------+------------+


تبدیل به فرمت زمانی معمول


1
2
SELECT userId, url, FROM_UNIXTIME(epoch) FROM mytable


نتیجه اجرای این کوئری:
1
2
3
4
5
6
7
8
+--------+----------+----------------------+
| userId | url | FROM_UNIXTIME(epoch) |
+--------+----------+----------------------+
| 1 | homepage | 2008-11-01 15:30:00 |
| 2 | contact | 2008-11-05 15:30:00 |
| 3 | contact | 2008-11-06 15:30:00 |
| 4 | homepage | 2008-12-01 15:30:00 |
+--------+----------+----------------------+


همچنین می توانید مهر زمانی را به فرمت دخواه خود تبدیل کنید. برای این کار می بایست فرمت مورد نظر خود را بعنوان پارامتر دوم به تابع FROM_UNIXTIME ارسال کنیم.
1
2
SELECT userId, url, FROM_UNIXTIME(epoch,"%Y-%m-%d") FROM mytable


نتیجه اجرای کوئری فوق:
1
2
3
4
5
6
7
8
+--------+----------+---------------------------------+
| userId | url | FROM_UNIXTIME(epoch,"%Y-%m-%d") |
+--------+----------+---------------------------------+
| 1 | homepage | 2008-11-01 |
| 2 | contact | 2008-11-05 |
| 3 | contact | 2008-11-06 |
| 4 | homepage | 2008-12-01 |
+--------+----------+---------------------------------+


گروه بندی برحسب تاریخ


فرض کنید می خواهیم آمار ماهیانه ای از تعداد افراد بازدید کننده ارائه دهیم، برای این کار می توانیم کوئری را بر حسب تاریخ گروه بندی کردن و نتیحه را نمایش دهیم.
1
2
3
4
5
SELECT DISTINCT FROM_UNIXTIME(epoch,"%M, %Y") AS month, count(*) as numberOfVisits
FROM mytable
GROUP BY month
ORDER BY epoch


نتیجه کوئری:
1
2
3
4
5
6
+----------------+----------------+
| month | numberOfVisits |
+----------------+----------------+
| November, 2008 | 3 |
| December, 2008 | 1 |
+----------------+----------------+


براحتی می توان کوئری فوق را بصورت آمار ساعتی، روزانه، هفتگی، سالیانه و .. در آورد. در زیر تبدیل کوئری فوق بصورت سالیانه را مشاهده می کنید.
1
2
3
4
5
SELECT DISTINCT FROM_UNIXTIME(epoch,"%Y") AS year, count(*) as numberOfVisits
FROM mytable
GROUP BY year
ORDER BY epoch


افزودن سطری جدید به جدول


با استفاده از تابع UNIX_TIMESTAMP() می توانیم براحتی تاریخ با فرمت تاریخی پیش فرض مای اس کیو ال را به مهر زمانی یونیکس تبدیل کنیم.
همچنین تابع now() تاریخ کنونی سیستم را بفرمت پیش فرض بر می گرداند.
1
2
INSERT INTO mytable VALUES(1,'pagename',UNIX_TIMESTAMP(now()))


یا می توانید خود تاریخی دلخواه را به تابع UNIX_TIMESTAMP() بفرستیم.
1
2
INSERT INTO mytable VALUES(1,'pagename',UNIX_TIMESTAMP('2008-12-01 12:00:00'))


مشخصه های فرمت بندی تاریخ در MySQL





































Specifier Description
%a Abbreviated weekday name (Sun..Sat)
%b Abbreviated month name (Jan..Dec)
%c Month, numeric (0..12)
%D Day of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%d Day of the month, numeric (00..31)
%e Day of the month, numeric (0..31)
%f Microseconds (000000..999999)
%H Hour (00..23)
%h Hour (01..12)
%I Hour (01..12)
%i Minutes, numeric (00..59)
%j Day of year (001..366)
%k Hour (0..23)
%l Hour (1..12)
%M Month name (January..December)
%m Month, numeric (00..12)
%p AM or PM
%r Time, 12-hour (hh:mm:ss followed by AM or PM)
%S Seconds (00..59)
%s Seconds (00..59)
%T Time, 24-hour (hh:mm:ss)
%U Week (00..53), where Sunday is the first day of the week
%u Week (00..53), where Monday is the first day of the week
%V Week (01..53), where Sunday is the first day of the week; used with %X
%v Week (01..53), where Monday is the first day of the week; used with %x
%W Weekday name (Sunday..Saturday)
%w Day of the week (0=Sunday..6=Saturday)
%X Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%x Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v
%Y Year, numeric, four digits
%y Year, numeric (two digits)
%%A literal ‘%’ character

برنامه ای ۱۲ دقیقه ای با جاوا

امروز یکی از دوستان در حال ترجمه ماژولی از سیستم مدیریت محتوای جوملا بود و فایل های ترجمه جوملا را بوصورت دستی و با استفاده از Notepad++ تایپ می کرد، خب کاری است سخت و خسته کننده، به وی پیشنهاد دادم که جرا برنامه ی کوچکی با جاوا برای نمایش ترتیبی این متن ها و ترجمه یک به یک آنها نمی نویسی؟ بیش از ۱۵ دقیقه وقت نمی گیرید. وی از این پیشنهاد من استقبال نکرد.
شب که برگشتیم خانه با لپ تاپ inspiron 6400، زمان گرفتم و برنامه را نوشتم، دقیق 11:27.6 (یازده دقیقه و بیست و هفت ثانیه و شش دهم ثانیه) طول کشید.
فایل های ترجمه جوملا به فرمت زیر هستند:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
COM_MEDIA_ALIGN="Align"
COM_MEDIA_ALIGN_DESC="If 'Not Set', the alignment is defined by the class '.img_caption.none'. Usually to get the image centred on the page."
COM_MEDIA_BROWSE_FILES="Browse files"
COM_MEDIA_CAPTION="Caption"
COM_MEDIA_CAPTION_DESC="If set to 'Yes', the Image Title will be used as caption."
COM_MEDIA_CLEAR_LIST="Clear List"
COM_MEDIA_CONFIGURATION="Media Manager Options"
COM_MEDIA_CREATE_FOLDER="Create Folder"
COM_MEDIA_CURRENT_PROGRESS="Current progress"
COM_MEDIA_DESCFTP="To upload, change and delete media files, Joomla! will most likely need your FTP account details. Please enter them in the form fields below."
COM_MEDIA_DESCFTPTITLE="FTP Login Details"
COM_MEDIA_DETAIL_VIEW="Detail View"
COM_MEDIA_DIRECTORY="Directory"
COM_MEDIA_DIRECTORY_UP="Directory Up"
COM_MEDIA_ERROR_BAD_REQUEST="Bad Request"
COM_MEDIA_ERROR_FILE_EXISTS="File already exists"

خب تنها چیز های لازم یک lable یک textarea و سه عدد دکمه است. فایل را خوانده و سطر هایی که دارای کاراکتر = هستند را در یک آرایه ذخیره کرده و تک تک آنها را نمایش می دهیم و آرایه را آپدیت می کنیم.
در نهایت نیز آرایه را سطر به سطر در فایل می نویسیم.


Joomla Translator

کد برنامه نوشته شده در NetBeans و همچنین فایل jar برنامه پیوست شده است.

————– بروز رسانی:
۱- پشتیبانی از کدینگ UTF8 و دکمه کلمه قبلی

نمایش اطلاعات بصورت صفحه بندی شده در دروپال

وقتی مجله، روزنامه یا کتابی می خوانید،اطلاعات موجود بصورت قطعه های هم اندازه به نام صفحه تقسیم شده اند. در دروپال روشی برای واکشی اطلاعات از دیتابیس د نمایش آنها در قطعه های کوچک به نام صفحه (pages) وجود دارد که به این امر صفحه بندی (paging) گفته می شود.
متاسفانه صفحه بندی فقط در سطح کد صورت می گیرد و برای این کار می بایست خود کد بخش مورد نظر را بنویسید.
صفحه بندی را با مثالی توضیح می دهیم.
در مثال زیر قصد بر آن است که لیست تمامی مطالب را بصورت جدولی نمایش دهیم.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
// The whole process is the same as creating a regular table in Drupal, but with a few
// minor changes which we'll make note of when we get to them.
// We start with headers for the table columns.
$headers = array(
t('Node ID'),
t('Type'),
t('Title'),
);
// Create a place to store the rows when we process the query in a few moments.
// This is just like making a table in Drupal.
$rows = array();
// SQL to get all the nodes in the {node} table. Nothing special needs to be done
// to this query in this example. You can even throw in an ORDER BY clause to
// pre-sort the data.
$sql = "SELECT nid, type, title FROM {node}";
// Number of records (or nodes, in our case) to show per page.
$count = 12;
// Now, this is where paging will differ from a regular table. We use pager_query() instead of db_query().
// Note that there are serious differences between pager_query() and db_query(). Please make sure you
// are aware of them.
$query = pager_query($sql, $count);
// Process the query...
while ($record = db_fetch_object($query)) {
$rows[] = array(
$record->nid,
$record->type,
$record->title,
);
}
// Make the table...
$output = theme('table', $headers, $rows);
// Return the output with the pager attached to it. The pager
// is the box underneath the table that allows people to jump
// to the next page.
return $output . theme('pager', $count);
?>


  • سطر های 6 تا 10 نام ستون های جدول را مشخص خواهند کرد.

  • سطر 19 همان گوئری است که می خواهیم از دستابیس بگیریم، که در اینجا تمامی سطر های موجود در جدول node می باشد.

  • سطر 22 مشخص کننده این است که چه تعداد از سطر های دیتابیس در هر صفحه نمایش داده شود.

  • در سطر 27 با استفاده از تابع pager_query کوئری خود را اجزا می کنید، دقت داشته باشید که دیگر از دستور db_query برای اجرای کوئری استفاده نمی کنیم.

  • در سطر های 30 تا 36 مقدار بازگشتی کوئری را بصورت آرایه ای دو بعدی تبدیل می کنید که دی آن هر عضو بعنوان یک سطر بوده و اعضای داخلی هر عضو ستون های هر سطر را مشخص می کند.

  • در سطر 39 با استفاده از تم جدول دروپال آرایه دو بعدی ایجاد شده و اطلاعات نام ستون ها یک جدول ایجاد می کنیم.

  • در آخر نیز علاوه بر جدول تولید شده، تم صفحه بندی را نیز بر میگردانیم، تم صفحه بندی همان لینک های پایین صفحه را برای چرخش بین صفحات ایجاد می کنید.

  • در سطر 39 با استفاده از تم جدول دروپال آرایه دو بعدی ایجاد شده و اطلاعات نام ستون ها یک جدول ایجاد می کنیم.در سطر 39 با استفاده از تم جدول دروپال آرایه دو بعدی ایجاد شده و اطلاعات نام ستون ها یک جدول ایجاد می کنیم.

  • در آخر نیز علاوه بر جدول تولید شده، تم صفحه بندی را نیز بر میگردانیم، تم صفحه بندی همان لینک های پایین صفحه را برای چرخش بین صفحات ایجاد می کنید.ر آخر نیز علاوه بر جدول تولید شده، تم صفحه بندی را نیز بر میگردانیم، تم صفحه بندی همان لینک های پایین صفحه را برای چرخش بین صفحات ایجاد می کنید.

خردی در مورد کلاس Calendar در جاوا

امروز یکی از دوستان سوال جالبی در مورد بدست آوردن یک تاریخ مشخص در جاوا کرد که گفتن آن در اینجا خالی از لطف نیست، برای بدست آوردن تاریخ امروز در جاوا براحتی می توانیم یک شی از کلاس Date ساخت و از آن استفاده کرد. ولی اگر شما بخواهید تاریخ آخرین روز ماه جاری را بدست بیاورید کار چگونه است؟
راهی که امروز ما بکار بردیم این گونه بود که از کلاس Calendar شی ساخته و ماه را یک واحد افزایش و روز ماه را صفر قرار می دهیم، خب روز صفر در ماه وجود ندارد در نتیجه تاریخ یک روز قبل را نمایش می دهد که همان روز آخر ماه جاری است.

1
2
3
4
5
Calendar temp = Calendar.getInstance();
temp.set(temp.MONTH, temp.get(temp.MONTH)+1);
temp.set(temp.DAY_OF_MONTH, 0);
int lastMonthDay = temp.get(temp.DAY_OF_MONTH);

صفحه پیش فرض هنگام ایجاد تب جدید در فایرفاکس

در نسخه جدید فایرفاکس هنگام ایجاد تب جدید صفحه پیش فرضی لود می شود که چند آدرس پربازدید شما را نمایش می دهد. ولی می توان این صفحه پیش فرض راتغییر داد تا هنگام باز کردن تب جدید آدرس دیگری لود بشود.


Firefox newTab



  1. در بخش آدرس بار عبارت about:config را وارد کنید.

  2. در صفحه ظاهر شده عبارت browser.newtabpage.enabled را جست جو کنید.
    • اگر مقدار این متغییر را false قرار دهید، در تب ها جدید صفحه ای لود نشده و صفحه سفید نمایش داده می شود.

  3. در صفحه ظاهر شده عبارت browser.newtab.url را جست جو کنید.

    • در صورتی که مقدار این متغییر را تغییر دهید، هنگام ایجاد تب جدید آدرسی که شما وارد کرده اید لود خواهد شد. برای بازگرداندن به حالت اول نیز مقدار آن را برابر about:newtab قرار دهید.





Firefox newTab

پی نوشت: اگر شما هم مثل یکی از دوستام کامپیوتر رو دادین دست دادش کوچیکتون و اومدین دیدین وقتی تب باز می کنین یه جا دیگه میره خیلی راحت مرحله 1 و 3 رو انجام بدین :) و مرحله 2 مال شما نیست.
اگر بعد این مراحل دوباره صفحه پیش‌فرض‌تون عوض میشه، سری به بخش افزونه‌های فایرفاکس بزنید و افزونه‌های ناخواسته رو حذف کنید

بروزرسانی - فایرفاکس نسخه 41 و بالاتر

اگر از فایرفاکس 41 به بعد استفاده میکنید و با این مشکل مواجه هستید، روش بالا دیگر برای شما کاربردی نیست، زیرا فایرفاکس در نسخه‌های جدید خود این ویژگی را غیر فعال کرده است. برایر رفع این مشکل در فایرفامس 41 و بالاتر:


  • افزونه New Tab Override را دانلود و نصب کنید

  • به بخش افزونه‌های فایرفاکس رفته(منوی Tools گزینه Add-ons) و روی دکمه Preferences مربوط به افزونه New Tab Override کلیک کنید

  • در صفحه باز شده در انتهای صفحه میتوانید آدرس پیشفرض تب‌های جدید در فایرفاکس را عوض کنید.

    Firefox new tab

Firebug برترین ابزار بررسی بخش های صفحات وب

به جرات می توان گفت طراحی وب بدون استفاده از ابزار های بررسی المنت (Inspect Element) سخت ترین کار شما خواهد بود، این ابزار های این امکان را می دهند که جزئیات بخش های مختلف صفحه وب را مشاهده کنید، آنها را ویرایش کنید، بخش های جدید خود را ایجاد کنید، نتایج کد های CSS و JavaScript را آنن مشاهده کنید و در صورتی که از کار خود راضی بودید در نهایت آنها را بصورت فایل در بیاورید.
فرض کنید می خواهید قالبی را که برای وبلاگ خود انتخاب کرده اید تغییر داده و مطابق میل خود کنید، راحتترین راه برای این کار استفاده از ابزارهای بررسی است، شما می توانید براحتی بخش های مختلف را دست کاری کنید بدون اینکه نگران خرابی باشید، زیرا تمام تغییرات شما ظاهری بوده و در اصل فایل ها تغییری ایجاد نمی شود. یکی از مشهورترین این نرم افزار های Firebug است که می توان آن را بروی اکثر مرورگرها نصب کرد، البته امروزه اکثر مرورگر های خود ابزار بررسی خود را دارند ولی داشتن ابزاری واحد روی مرورگر های مختلف توانایی شما را بالا می برد.


firefox add-ons search

در زیر نحوه نصب آن در فایرفاکس و توضیحی کوتاه برای استفاده از آن را بیان می کنیم.
در Firefox از منوی Tools گزینه Add-ons را انتخاب کنید و در نوار جست جوی سمت راست عبارت Firebug را وارد کنید.

firefox add-ons search

در لیست افزونه های نمایش داده شده Firebug را پیدا کنید (آیکون این افزونه عکس یک کفش دوزک است) و روی Install کلیک کنید. براحتی Firebug دانلود و نصب می شود.

firefox add-ons search

فایرفاکس را بسته و دوباره اجرا کنید، یکی از قدرتمندترین ابزار های طراحی وب را در اختیار دارید.
برای شروع به کار در صفحه کلیک راست کنید و گزینه Inspect Element with Firebug را انتخاب کنید، در زیر صفحه مرورگر بخشی ظاهر می شود که پنجره اصلی است.

firefox add-ons search

بخش های مختلف این کادر را با هم بررسی می کنیم.

firefox add-ons search

بخش ۱: کد اصلی صفحه وب در این بخش قابل نمایش است، می توانید محتوا یا تگ های صفحه را ویراش کنید یا آنها را کم و زیاد کنید.
بخش ۲: در این بخش استایل ها و کد های CSS صفحه را نمایش می دهد، با انتخاب هر یک از تگ های صفحه در بخش ۱ تمامی استایل و کدهای CSS مربوط به آن تگ در این بخش نمایش داده می شوند، می توانید مقدار آنها را تغییر دهید یا کد های جدید به آن بیافزایید.
بخش ۳: اگر دنبال متن یا ویژگی خاصی در صفحه هستید، در این بخش آن را جست جو کنید.
بخش ۴: در این نوار بخش های مختلف Firebug که بصورت پیش فرض بخش HTML قرار دارد. در بخش CSS می توانید محتوای فایل های سی اس اس مربوط به صفحه را مشاهده کنید و در بخش Script محتوای فایل های جاوا اسکریپت نمایش داده می شود. همچنین در بخش Console نیز می توانید کدهای جاوااسکریپت خود را نوشته و اجرا کنید.
بخش ۵: این بخش سلسله مراتب تگی که انتخاب کردیم را نمایش می دهد، برای مثال اگر روی تگ body کلیک کرده در این بخش دو تگ html و body نمایش داده می شود.

با اجرای یک مثال ساده نحوه کار را نمایش می دهیم.
در تصویر زیر می خواهیم رنگ و اندازه متن مشخص شده را تغییر دهیم، برای این کار در بخش شماره ۴ بروی علامت اشاره گر موس کلیل کنید، بکمک این ابزار می توانید المنت مورد نظر خود را انتخاب کرده و کد آن را بررسی کنید.

firefox add-ons search

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

firefox add-ons search

در بخش ۲ کد CSS مربوطه را مشاهده می کنید، و همانطور که در بخش ۱ میبینید اسم کلاس مربوط به این تگ meta می باشد، پس برای تغییر در این ظاهر این تک می توانید کد های موجود در این کلاس را ویرایش کنیم. در تصویر زیر نمای بزرگتری از بخش ۲ را مشاهده می کنید.

firefox add-ons search

همانطور که در تصویر مشاهده می کنیم و انتظارش را نیز داشتیم در بخش ۲ کد کلاس meta نمایش داده شده است. در جلوی نام کلاس متا همانطور که در تصویر مشاهده می کنید عبارت style.css?h (line 426) نوشته شده است به این معنی که کد این کلاسد در فایل style.css و در سطر ۴۲۶ نوشته شده است و برای تغییر در فایل می بایست به آنجا مراجعه کنید. خب همانطور که مشاهده می کنید اندازه متن در این کلاس(font-size) برابر با ۱۳ می باشد ،برای بزرگتر کردن آن کافی است اندازه را افزایش دهیم. ولی کدی برای رنگ متن در این کلاس نوشته نشده است برای مثال رنگ متن را قرمز (#F00) قرار می دهیم. یعنی کد color:#f00; را یا این کلاس می افزاییم وهمانطور که در زیر مشاهده می کنید رنگ و اندازه متن در کادر مورد نظر ما تغییر کرده است.
ولی همواره دقت داشته باشید تغییراتی که اعمال می کنید صرفا جهت مشاهده است و برای اینکه واقعا تغییرات اعمال شوند باید همین تغییرات خود را به فایل ها منتقل کنید.

firefox add-ons search

البته خود می دانم که توصیف نوشتاری برای استفاده از این ابزار گنگ بوده و براحتی قابل فهم نیست ولی نوشتن آن نیز خالی از لطف نبود، اگر فرصتی بود مثالی پیچیده تر از نحوه کار با فایرباگ بصورت ویدئویی تهیه می کنم.

احراز هویت دو مرحله ای در گوگل

چند وقت پیش گوگل سرویس جدید لاگین خود را موسوم به 2-step verification معرفی کرد. این سرویس در واقع لایه ی دومی به تشخیص حساب کاربری شما هنگام ورود اضافه می کند تا اطمینان حاصل شود که خود شما در حال ورود هستید، نه یک ماشین، نه یک دوست و …
اگر شما این سرویس را فعال کنید، هر بار که می خواهید وارد اکانت گوگل خود شوید، پس از گذر از مرحله اول و همیشگی یعنی همان نام کاربری و پسورد گوگل کد تاییدی به تلفن همراه شما ارسال می کند (بصورت پیام کوتاه یا تماس تلفنی) و شما با وارد کردن کد دریافتی وارد حساب کاربری خود می شوید،بسیار واضح است که حتی اگر شخصی رمزعبور شما را نیز در دست داشته باشد بدون تلفن همراه شما نمی تواند وارد شود.
حال این سوال پیش می آید که چرا باید وقتی از کامپیوتر شخصی خود برای ورود استفاده می کنید هر بار باید کد شناسایی وارد کنید، جواب اینجاست که مجبور نیستید، در اولین ورود خود با کامپیوتر شخصی خود می توانید گزینه Trust this computer را انتخاب کنید و تا ۳۰ روز می توانید براحتی با کامپیوتر خود بدون وارد کردن کد وارد شوید، البته دقت داشته باشید که این عملیات برای یک مرورگر است و اگر با مرورگر دیگری وارد شوید می بایست کد شناسایی را وارد کنید.
حال بسراغ فعال سازی این سرویس برویم در گوشه سمت راست روی تصویر خود کلیک به بخش Account بروید


Google Accounts

از منوی سمت چپ گزینه Security را انتخاب کنید. برای فعال سازی در بخش 2-step verification روی Edit کلیک کنید، سپس می بایست پسورد خود را بار دیگر وارد کنید تا اطمینان حاصل شود که خود شما در حال انجام تغییرات هستید.پس از آن روی دکمه ی Start Setup کلیک کنید تا وارد بخش فعال سازی سرویس شوید. در صفحه حاضر می بایست شماره تلفن همراه خود را وارد نموده و نوع اطلاع رسانی کد شناسایی را مشخص کنید که بصورت پیش فرض روی Text message (SMS) می باشد، در صورت تمایل می توانید آن را روی Voice Call قرار دهید که در این صورت کد شناسایی طی یک تماس به شما گفته می شود.

2-step verification
شناسایی دو مرحله ای بصورت پیش فرض غیر فعال است
2-step verification setup
مرحله اول فعال سازی

پس از وارد کردن شماره تلفن خود با کلید روی Send Code کد شناسایی برای شما ارسال می شود و در مرحله بعد می بایست کد شناسایی را وارد کنید و روی Verify کلید کنید. در مرحله بعد شما نی توانید کامپیوتری با آن این سرویس را فعال می کنید به کامپیوترهای مورد اطمینان خود اضافه کنید، تا بمدت ۳۰ روز هنگام استفاده از این کامپیوتر نیاز به ارسال کد شناسایی نباشد. دقت داشته باشید که در صورتی که از جایی غیر از کامپیوتر یا تبلت و یا دیگر وسایل شخصی خود وارد این بخش نشده اید گزینه را انتخاب نکنید.

2-step verification
مرحله دوم وارد کردن کد شناسایی ارسالی
2-step verification setup
مرحله سوم افزودن به لیست کامپیوترهای مورد اطمینان

ور در نهایت در مرحله چهارم با کلید روی Confirm فعال سازی سرویس اتمام می یابد.حال اگر نگاهی دوباره به بخش Security حساب خود بیاندازی می بینیم که سرویس فعال شده است.

2-step verification
بخش امنیت حساب کاربری

کار تمام است.
اگر شما از نرم افزار های چت یا نرم افزار های میل خوان همانند GTalk یا OutLook استفاده می کنید، می بایست رمز عبور دیگری به آنها بدهید زیرا دیگر رمز شما برای سرویس هایی غیر سرویس های ارائه شده در وب معتبر نمی باشد، برای اینکه رمز جدیدی برای هریک از برنامه های خود ایجاد کنید در بخش امنیت حساب خود جلوی Authorizing applications and sites روی Edit کلیک کرده و در انتهای صفحه در بخش Application-specific passwords نام برنامه را وارد کرده و Generate Password را فشار دهید.

2-step verification
ایجاد پسورد اختصاصی برای برنامه ها

حال رمز عبور در کادری زرد رنگ نمایش داده می شود،آنرا در برنامه خود وارد کنید سپس Done را بفشارید. برای هر برنامه می بایست یه رمز جدید ایجاد و استفاده کنید. دقت داشته باشید که رمز یکبار نمایش داده می شود و پس از فشردن Done دیگر رمز را نمی توانید ببینید، پس حتما گزینه ذخیره رمز عبور را در برنامه خود انتخاب کنید.

2-step verification
پسورد ایجاد شده برای برنامه

ادغام فایل های صوتی در ترمینال

یکی از دستورات ترمینال در یونیکس دستور cat می باشد که وظیفه نمایش، کپی و ادغام فایل ها را بر عهده دارد.
با این دستور شما می توانید چندین فایل را با هم ادغام کنید و فایلی جدید بسازید. فایل های صوتی را نیز مثل بقیه فایل ها می توان با این دستور ادغام کرد. اگر شما اهل گوش گردن کتاب های گویا هستید حتما تا به حال متوجه زیاد بودن فایل های یک کتاب شده اید و شاید دوست داشته باشید که برخی ازین فایل ها ادغام کنید.
می توانید براحتی با این دستور فایل های خود را به یک فایل واحد تبدیل کنید. نحوه کار را با مثالی تشریح می کنیم:
قصد داریم سه فایل زیر را ادغام کنیم

1
2
3
first.mp3
second.mp3
third.mp3

برای این کار دستور زیر را اجرا می کنیم:

1
cat first.mp3 second.mp3 third.mp3 > final.mp3

دقت داشته باشید که ترتیب نوشتن فایل ها همان ترتیبی است که می خواهیم آنها را ادغام کنیم. فایل final.mp3 نیز فایل نهایی ما خواهد بود.

HTML Image borders

در بسیاری از مواقع ایجاد یک حاشیه مناسب برای عکس ها در صفحات وب لازم و جذاب مینماید. شما برا ایجاد حاشیه های مختلف برای تصاویر خود نیاز به استفاده از css دارید. برای استفاده از css در کافیست کد های css خود را در صفت style درون تگ img بنویسید. در این جا انواع حاشیه های موجود را معرفی کرده و مثالی از هر کدام را مشاهده خواهیم کرد.
در زیر مثال هایی از نمونه های مختلف حاشیه عکس با استفاده از css آمده است:

حاشیه مکعبی: (Solid Border)
ساده ترین و معمول ترین نوع حاشیه که از خطوط صاف تشکیل شده است.

1
2
<img style="border:1px solid black;" src="/files/photo.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />


Milford Sound in New Zealand

حاشیه نقطه ای: (Dotted Border)
حاشیه ای که با استفاده از نقاط پشت سر هم ساخته می شود.

1
2
<img style="border:2px dotted #545565;" src="http://www.quackit.com/pix/milford_sound/milford_sound_t.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />


Milford Sound in New Zealand

حاشیه شیاری: (Grooved Border)

1
2
<img style="border:6px groove #545565;" src="http://www.quackit.com/pix/milford_sound/milford_sound_t.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />

Milford Sound in New Zealand

حاشیه دوبل: (Double Border)
حاشیه دوبل در واقع دو حاشیه ساده با فاصله مشخص از یکدیگر میباشد.

1
2
<img style="border:6px double #545565;" src="http://www.quackit.com/pix/milford_sound/milford_sound_t.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />


Milford Sound in New Zealand

حاشیه بیرون آمده: (Outset Border)
این حاشیه حس بیرون آمدگی تصویر از زمینه را منتقل می کند.

1
2
<img style="border:6px outset #545565;" src="http://www.quackit.com/pix/milford_sound/milford_sound_t.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />


Milford Sound in New Zealand

حاشیه تو رفته: (Inset Border)
این حاشیه حس تو رفتگی تصویر را منتقل می کند.

1
2
<img style="border:6px inset #545565;" src="http://www.quackit.com/pix/milford_sound/milford_sound_t.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />


Milford Sound in New Zealand

حاشیه لبه دار: (Ridged Border)
حاشیه ای همانند شیار یا لبه

1
2
<img style="border:6px ridge #545565;" src="http://www.quackit.com/pix/milford_sound/milford_sound_t.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />


Milford Sound in New Zealand

حاشیه با خط تیره: (Dashed Border)
حاشیه ای که با استفاده از خط تیره ساخته می شود.

1
2
<img style="border:6px dashed #545565;" src="http://www.quackit.com/pix/milford_sound/milford_sound_t.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />


Milford Sound in New Zealand

حاشیه ترکیبی: (Mixed Border)
این نوع حاشیه ها در واقع ترکیبی انواع دیگر هستند که شما می توانید براحتی هر ضلع حاشیه را به نوعی مجزا در بیاورید.

1
2
<img style="border-width:10px;border-color:#545565;border-style:dotted dashed solid double;" src="http://www.quackit.com/pix/milford_sound/milford_sound_t.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />


Milford Sound in New Zealand

اگر به گوشه های تمامی حاشیه دقت کنید متوجه می شوید که تمامی آنها تیز هستند. با استفاده از صفت border-radius در css می توان گوشه های حاشیه ها را از حالت تیزی در آورد و آنها به اندازه دلخواه خم کرد. به مثال زیر دقت کنید.

1
2
<img style="border:1px solid black;border-radius:1em;" src="/files/photo.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />

Milford Sound in New Zealand

خم کردن حاشیه ها:
در مثال بالا چهار گوشه حاشیه را به یک اندازه خم شده اند،در css این امکان نیز وجود دارد که هر گوشه را بصورت مستقل از بقیه خم شوند، برای این کار باید از چهار دستور زیر استفاده کرد، که به ترتیب برای گوشه بالا راست، گوشه بالا چپ، گوشه پایین راست و گوشه پایین چپ می باشند:

1
2
3
4
5
border-top-left-radius:2em;
border-top-right-radius:2em;
border-bottom-right-radius:2em;
border-bottom-left-radius:2em;

به مثال توجه کنید:

1
2
<img style="border:1px solid black;border-top-left-radius: 1em;border-top-right-radius: 0px;border-bottom-right-radius: 50px;border-bottom-left-radius:2em;" src="/files/photo.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />

Milford Sound in New Zealand

نکاتی درباره پست های گوگل پلاس

برخی وقت ها پیش می آید که لازم است بخشی از نوشته خود را پر رنگ کنید یا آن را بصورت خم بنویسید تا خواننده به آن توجه ویژه داشته باشد. در هنگام پست گذاری در گوگل پلاس نیز این امکان وجود دارد که بخشی از متن پست خود را پر رنگ، خم یا دارای خط میانی (Strike through) کنید. بسادگی و با استفاده از روش های زیر میتوانید از این امکان استفاده کنید.

  1. پر رنگ کردن:(Bold)
    فقط کافیست متن مورد نظر را بین دو ستاره بیاندازیم. همانند زیر:
    این متن پر رنگ است!

  2. خم:(Italic)
    متن مورد نظر خود را میان دو زیر خط (Under line) محصور کنید. همانند زیر:
    ـاین متن خمیده است!ـ

  3. دارای خط میانی:(Strike through)
    متن مورد نظر خود را میان دو خط تیره محصور کنید. همانند زیر:
    -Strike through-