علل
استفاده بیش از حد از مفصل زانو که در بعضی مشاغل وجود دارد.
اختلال محوری مفصل زانو که باعث کشیدگی استخوان کشکک روی استخوان ران می شود، که این اختلال می تواند ناشی از عدم رشد استخوان یا عدم هماهنگی عضلات اطراف مفصل باشد
در افراد سالم ممکن است این اختلال در نتیجه سیر پیری ایجاد شود که باعث پارگی غضروف می شود.
توارث : بطوریکه در بعضی از خانواده ها احتمال بروز ساییدگی کشکک زانو زیاد است.
وزن زیاد
ضرباتی که در حین ورزش یا آسیب هایی که بدنبال ضربات زانو ایجاد می شوند (مانند شکستگی، دررفتگی، پارگی منیسک و رباط های زانو) می توانند در دراز مدت موجب ساییدگی کشکک شوند.
پیشگیری
انجام اقدامات زیر در پیشگیری از کندرومالاسی کشکک مفید و موثر است:
باید سعی کرد جلوی افزایش وزن گرفته شود.
قبل از هر فعالیت ورزشی باید حدود پنج دقیقه بدن را به اصطلاح گرم کرده و سپس نرمش های کششی را انجام داد.
هر ورزشی را که انجام می دهیم باید شدت و مدت آن را بتدریج افزایش داده و از تغییر ناگهانی شدت و مدت ورزش باید اجتناب کرد.
برای دویدن باید از کفش هایی استفاده کرد که کفی آن توانایی جذب ضربات و شوک های وارده را داشته باشد.
عضلات چهارسر ران خود را قوی نگه دارید.
سعی کنید کمتر دوزانو و چهارزانو بنشینید و در صورت امکان کمتر از توالت های سنتی استفاده کنید.
بهترین عمل آب درمانی است به این صورت که در قسمت کمعمق آب استخر راه رفته، به شرطی که زانوها در آب نشکند که به توصیه تمام پزشکان بهترین راه درمان و پیشگیری از کندرومالاسی است.
درمان ساییدگی کشکک زانو
داروهای ضد درد : استامینوفن یا داروهای ضد التهاب مانند ایبو پروفن
فیزیوتراپی: جهت افزایش قدرت عضلات اطراف مفصل زانو که باعث کاهش استرس مفصل زانو خواهد شد.
بانداژ استخوان کشکک : بانداژ محکم و چسبنده روی استخوان کشکک جهت اصلاح محور استخوان توصیه می شود که در بعضی از بیمارن اثرات مفیدی خواهد داشت
درمان قوز پشتی با چند حرکت ورزشی
گوژپشتی یا کیفوز که در ادبیات عامیانه به آن قوز میگویند، مشکلی نسبتا شایع میان نوجوانان و بهخصوص دختران و حتی در بزرگسالان بهشمار میرود. در این وضعیت افتادگی شانهها و کتفها، جلوآمدن سر، کاهش قدرت حرکت اندامهای فوقانی و در حالت شدیدتر، درد یا کاهش ظرفیت تنفسی اتفاق میافتد.
باید توجه داشت که در حالت طبیعی، ستون فقرات تحدب پشتی مختصری دارد و افزایش بیش از حد طبیعی این تحدب، بیماری محسوب میشود بنابراین در بسیاری مواقع و بهخصوص در افراد با وزن بالا، ظاهر شخص طبیعی دیده میشود ولی با بررسی دقیق، افزایش قوز پشتی مشخص خواهد بود.
گوژپشتی علل مختلفی دارد، گاهی به علت رشد غیرطبیعی مهرهها و همراه با درد و اختلال عصبی است و گاهی ثانویه به عفونتها و بیماریهای التهابی خاص، شکستگیها یا تومورها ایجاد میشود که در این موارد درمان مشکلتر است و حتی گاهی نیاز به جراحی خواهد بود. البته در بیشتر موارد، مهمترین عامل موثر در بروز گوژپشتی، وضعیت نامناسب بدن، بهخصوص بدنشستن است و در مواردی که علت گوژپشتی چنین موردی باشد، انجام چند تمرین ساده بسیار مفید و کمککننده خواهد بود.
1- در حالت سجده قرار بگیرید و دستها را پشت سر بگذارید و سپس گردن و تنه را تا حدی بالا بیاورید که با لگن در یک سطح قرار بگیرند. این ورزش ممکن است برای افراد بزرگسال و با وزن زیاد دشوار باشد. دقت کنید هنگام تمرین، هیچ دردی نباید وجود داشته باشد.
2- چانه را به
سمت عقب ببرید و 10 ثانیه نگه دارید.
3- گوشه اتاق
بایستید و دستها را به دیوارها تکیه دهید. سپس سعی کنید تنه خود را به سمت جلو
ببرید و این وضعیت را چند ثانیه حفظ کنید.
4- روی تشک سفتی بنشینید و 2 زیردستی در طرفین خود قرار دهید. سپس دستها را روی آنها بگذارید و سعی کنید تنه را به سمت بالا بکشید به طوری که باسن از زمین جدا شود. این حالت را به مدت 8 ثانیه حفظ کنید.
5- روی زمین دراز بکشید یا ایستاده به دیوار تکیه دهید. یک حوله رولشده در محلی که بیشترین قوس احساس میشود، قرار دهید. سپس بالاتنه را روی این رول به عقب ببرید.
6- این ورزش بهصورت نشسته روی صندلی یا ایستاده قابلانجام است؛ دستها را در امتداد شانه قرار و با استفاده از طنابهای لاستیکی، دستها را به عقب حرکت دهید.
7- دو وزنه در دو دست خود بگیرید (این
وزنه میتواند دو بطری هموزن باشد.) پاها را به اندازه عرض شانه باز کنید. دستها
آویزان در کنار بدن قرار بگیرد. شانهها را
به سمت بالا بکشید و چند ثانیه نگه دارید.
8- روی شکم
بخوابید و درحالی که دستها کنار بدن قرار دارد، هر دو کتف را به هم نزدیک کنید و
چند ثانیه نگهدارید. این ورزش را در حالت نشسته هم میتوانید انجام دهید.
اصلاح سبک زندگی برای رفع
گوژپشتی
برطرف کردن علت اصلی گوژپشتی و دقت در وضعیت نشستن و
اصلاح آن، نحوه ایستادن و حمل بار، بهخصوص کولهپشتی ضروری است. دقت کنیم
وضعیتی که کمترین فشار را روی ستون فقرات میآورد، با حفظ قوسهای طبیعی آن و با
استفاده از صندلی است که تمام قوسهای ستون فقرات را حمایت کند بنابراین دقت در
انتخاب صندلی به جلوگیری از ابتلا و درمان قوزپشتی کمک میکند.
نکته مهم دیگر اینکه هرچند درمان اصلی انحراف ستون
فقرات، تمرین و ورزشهای مناسب مشکل و با تشخیص پزشک است ولی در بسیاری موارد
استفاده از وسایل کمکی مانند انواع بریسها بسیار مفید و گاهی ضروری است. استفاده
از بریسها در افراد جوانتر معمولتر است ولی برای بزرگسالان نیز بریسهای مخصوصی
وجود دارد که به رفع انحراف ستون فقرات کمک میکند.
توجه داشته باشیم که دقت در انحراف ستون فقرات بسیار ضروری است زیرا درمان در مراحل اولیه راحتتر و معمولا انحراف قابلبرگشت است. با مزمن شدن و ایجاد عوارضی مثل بیرونزدگی دیسک، آرتروزهای شدید و... درمان بسیار مشکلتر و گاهی غیرممکن میشود. پس در صورت شک به انحراف از حالت طبیعی بهخصوص اگر همراه با علایم خاص مثل درد شدید، تب، سرعت پیشرفت بالا یا مثلا بعد از سقوط یا ضربه باشد یا در بیمارانی که سابقه مصرف طولانیمدت کورتونها دارند، مراجعه سریع به پزشک متخصص و بررسی دقیق با معاینه، آزمایش خون و گرافی و برنامهریزی برای اصلاح بسیار مهم است.
مدیریت اسلامی ( تعهد یا تخصص )
( 153)
امام علی (ع)در نامه خود به برخی از استاندارانش می فرمود: قلمهای خودرانازک بتراشیدو سطرها را به هم نزدیک کنید و زیادی کلمات را حذف کنید و در آوردن معانی صرفه جویی کنید و از زیاده روی بپرهیزید که اموال مسلمین تاب و تحمل زیاده روی را ندارد .( سایت احادیث از امام علی « ع » )
از شهید چمران پرسیدند ؛ تعهد بهتر است یا تخصص؟
گفت : می گویند تقوا از تخصص لازمتر است، آن را می پذیرم، اما می گویم آن کس که تخصص ندارد و کاری را می پذیرد بی تقواست.
با توجه به آنچه تاکنون آموخته وشنیده شده است ، « مدیریت اسلامی » بر چند پایه واصول استوار است....
.... براین اساس تصمیم گرفته شده مطالبی را که حجة الاسلام قرائتی تحت عنوان « 300 نکته در مدیریت اسلامی » تنظیم وتألیف نموده اند جهت استفاده هرچه بهتر بزرگواران به ترتیب در این وبلاگ درج نمایم. امید است مورد استفاده قرار گیرد. کریم عاملی
کیفیت کار
لِنَبْلُوَهُمْ أَیهُمْ أَحْسَنُ عَمَلاً (کهف، 7)
ما انسانها را میآزماییم تا مشخص شود، که کدامشان بهتر و نیکوتر عمل میکنند.
153.آنچه که باید در سازمان، در مورد عملکرد افراد، معیار و اصل باشد، کیفیت و بازدهی کار آنهاست، نه مقدار و کمّیت آن.
ادامه مطلب
درگیر شدن با سایتهای دیگر که چرا مطالب ما را کپی کردهاید نهایتا بجز فرسایش عصبی حاصل دیگری را به همراه ندارد.اساسا زمانیکه مطلبی را به صورت باز در اینترنت انتشار میدهید، قید کپی شدن یا نشدن آنرا باید زد. اما ...میتوان همین سایتها را تبدیل به تبلیغ کنندههای رایگان کار خود نمود که در ادامه نحوه انجام آن را در یک برنامه ASP.NET MVC بررسی خواهیم کرد:
الف) نیاز است ارائه تصاویر تحت کنترل برنامه باشند.
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
|
using System.IO; using System.Net.Mime; using System.Web.Mvc; namespace MvcWatermark.Controllers { public class HomeController : Controller { const int ADay = 86400; public ActionResult Index() { return View(); } [OutputCache(VaryByParam = "fileName" , Duration = ADay)] public ActionResult Image( string fileName) { fileName = Path.GetFileName(fileName); // تمیز سازی امنیتی است var rootPath = Server.MapPath( "~/App_Data/Images" ); var path = Path.Combine(rootPath, fileName); if (!System.IO.File.Exists(path)) { var notFoundImage = "notFound.png" ; path = Path.Combine(rootPath, notFoundImage); return File(path, MediaTypeNames.Image.Gif, notFoundImage); } return File(path, MediaTypeNames.Image.Gif, fileName); } } } |
در اینجا یک کنترلر را مشاهده میکنید که در اکشن متد Image آن، نام یک فایل دریافت شده و سپس این نام در پوشه App_Data/Images جستجو گردیده و نهایتا در مرورگر کاربر Flush میشود. از آنجائیکه الزامی ندارد fileName، واقعا یک fileName صحیح باشد، نیاز است توسط متد استاندارد Path.GetFileName این نام دریافتی اندکی تمیز شده و سپس مورد استفاده قرار گیرد. همچنین جهت کاهش بار سرور، از یک OutputCache به مدت یک روز نیز استفاده گردیده است.
نحوه استفاده از این اکشن متد نیز به نحو زیر است:
1
|
|
ب) آیا فراخوان تصویر ما را مستقیما در سایت خودش قرار داده است؟
1
2
3
4
5
6
7
8
9
|
private bool isEmbeddedIntoAnotherDomain { get { return this .HttpContext.Request.UrlReferrer != null && ! this .HttpContext.Request.Url.Host.Equals( this .HttpContext.Request.UrlReferrer.Host, StringComparison.InvariantCultureIgnoreCase); } } |
در ادامه توسط خاصیت سفارشی isEmbeddedIntoAnotherDomain درخواهیم یافت که درخواست رسیده، از دومین جاری صادر شده است یا خیر. اینکار توسط بررسی UrlReferrer ارسال شده توسط مرورگر صورت میگیرد. اگر Host این UrlReferrer با Host درخواست جاری یکی بود، یعنی تصویر از سایت خودمان فراخوانی شدهاست.
ج) افزودن خودکار Watermark در صورت کپی شدن در سایتی دیگر
1
2
3
4
5
6
|
private byte [] addWaterMark( string filePath, string text) { var image = new WebImage(filePath); image.AddTextWatermark(text); return image.GetBytes(); } |
کلاسی در فضای نام System.Web.Helpers وجود دارد به نام WebImage که کار افزودن Watermark را بسیار ساده کرده است. نمونهای از نحوه استفاده از آن را در متد فوق ملاحظه میکنید. اما ... پس از امتحان تصاویر مختلف ممکن است گاها با خطای زیر مواجه شویم:
1
|
A Graphics object cannot be created from an image that has an indexed pixel format. |
مشکل از اینجا است که تصاویر با فرمت ذیل برای انجام کار Watermark پشتیبانی نمیشوند:
1
2
3
4
5
6
7
|
PixelFormatUndefined PixelFormatDontCare PixelFormat1bppIndexed PixelFormat4bppIndexed PixelFormat8bppIndexed PixelFormat16bppGrayScale PixelFormat16bppARGB1555 |
اما میتوان تصویر دریافتی را ابتدا تبدیل به BMP کرد و سپس Watermark دار نمود:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
private byte [] addWaterMark( string filePath, string text) { using (var img = System.Drawing.Image.FromFile(filePath)) { using (var memStream = new MemoryStream()) { using (var bitmap = new Bitmap(img)) //avoid gdi+ errors { bitmap.Save(memStream, ImageFormat.Png); var webImage = new WebImage(memStream); webImage.AddTextWatermark(text, verticalAlign: "Top" , horizontalAlign: "Left" , fontColor: "Brown" ); return webImage.GetBytes(); } } } } |
در اینجا نمونه اصلاح شده متد addWaterMark فوق را بر اساس کار با تصاویر bmp و سپس تبدیل آنها به png، ملاحظه میکنید. به این ترتیب دیگر به خطای یاد شده بر نخواهیم خورد. در ادامه، قسمت آخر کار، اعمال این مراحل به اکشن متد Image است:
1
2
3
4
5
6
7
|
if (isEmbeddedIntoAnotherDomain) { var text = Url.Action(actionName: "Index" , controllerName: "Home" , routeValues: null , protocol: "http" ); var content = addWaterMark(path, text); return File(content, MediaTypeNames.Image.Gif, fileName); } return File(path, MediaTypeNames.Image.Gif, fileName |
بعد از مدت ها بلاخره فرصتی پیش اومد تا مجددا مقاله ای بنویسم. این بار قصد دارم با مقاله ای در خصوص CSS اما خارج از دنیای طراحی و ساخت آیتم های مختلف در خدمت شما باشم.
شاید تا به حال کمتر نام Combinator ها را در CSS شنیده باشید، اما مطمئنا به وفور از برخی از آن ها استفاده کرده اید. در واقع همانطور که از نام Combinator بر می آید، تنها یک ترکیب کننده است، ترکیب کننده ی چند گزینشگر ساده مثل Tag Selector و یا Class Selector که به عنوان تعیین کننده ی ارتباط بین دو آن ها ایفای نقش می کند. به طور کلی Combinator ها به چهار گروه مختلف تقسیم می شوند که در ادامه به بررسی هر کدام خواهیم پرداخت.
Descendant Selector
از این نوع گزینشگر یکی از پر کاربرد ترین نوع گزینشگر هایی است که بدون شک از آن استفاده کرده اید، کد html زیر را در نظر بگیرید:
1
2
3
4
5
6
7
8
9
|
< ul > < li >Item 1
|
و فرض کنید استایل زیر را به li ها نسبت داده ایم:
1
2
3
4
|
ul li { background-color : Red; } |
همانطور که واضح است کلیه ی li ها به رنگ قرمز در می آیند. این نوع گزینشگر تمام عناصر مورد نظر را در هر عمقی، صرف نظر از عنصر والد آن ها تحت تاثیر قرار می دهد، به همین دلیل به آن Descendant (نوادگان) گفته می شود. در واقع در اینجا ترکیبی از دو Tag Selector را داریم که حد واسط آن ها کاراکتر Space قرار گرفته است. درسته! Space در اینجا یک Combinator محسوب می شود.
حال فرض کنید بخواهیم تنها li های درون ul را انتخاب کنیم، بدیهی است که با Descendant Selector چنین کاری ممکن نیست، به این منظور لازم است از Child Selector استفاده کنیم.
Child Selector
Child Selector یا گزینشگر فرزندی امکان انتخاب فرزندان یک عنصر را در اختیار قرار می دهد، توجه داشته باشید که عناصر فرزند عناصری هستند که مستقیما داخل یک عنصر قرار دارند یا به عبارتی در عمق اول نسبت به عنصر والد خود قرار دارند. در مثال بالا Item 1 فرزند ul محسوب می شود، در حالی که Sub-item A، descendant عنصر ul به حساب می آید. با این تفاسیر برای انتخاب فرزندان از علامت > به عنوان Combinator استفاده می کنیم:
1
2
3
4
|
ul > li { background-color : Red; } |
Adjacent Sibling Selector
این نوع selector که شاید کاربردی کمتر از دو نوع قبل داشته باشد، برای انتخاب عنصر sibling (برادر) یک عنصر کاربرد دارد. در واقع sibling به دو عنصری گفته می شود که دارای parent های یکسان باشند و adjacent به معنی عنصری است که دقیقا بعدا از عنصر مورد نظر به عنوان sibling ظاهر می شود. برای درک بهتر مثال زیر را مشاهده بفرمایید:
1
2
3
|
< h2 >Heading
|
1
2
3
4
|
h 2 + p { background-color : Red; } |
دو تگ p به عنوان sibling های عنصر h2 شناخته می شوند، اما رنگ قرمز تنها به تگ p اول نسبت داده خواهد شد، به دلیل اینکه مستقیما پس از h2 قرار گرفته و به عبارتی adjacent محسوب می شود.
General Sibling Selector
این selector بر خلاف نوع قبل کلیه ی sibling های قرار گرفته پس از عنصر مورد نظر را تحت پوشش قرار می دهد و به همین دلیل از آن به عنوان General یاد می شود. Combinator مورد استفاده در این گزینشگر علامت ~ می باشد:
1
2
3
4
|
h 2 ~ p { background-color : Red; } |
با توضیحات داده شده در قسمت قبل فکر نمی کنم نیاز به بیان جزئیات بیشتری باشد، تنها نکته ی قابل ذکر این است که 3 selector ای که پیش تر توضیح داده شد از گزینشگر های موجود در CSS 2.1 بودند در حالی که این گزینشگر در نسخه ی سوم به CSS اضافه شد.