faces
Category Archives: Lifestream
Nasser Torabzade 2015-06-05 22:45:45
Nasser Torabzade 2015-06-05 22:41:31
Dirimart gallery, Is
.
.
Colors
Artist Ai Weiwei’s “
“Sadness” by Merve O
.
Fresh Air
نمیدانم گفته بودم یا نه که من معتاد رادیو ام. این طور بگویم که من صبحها که موبایل را از زیر بالشتم در میاورم، اول رادیواش- رادیوی ملی عمومی – را به کار میاندازم و بعد میروم اینستگرام و بعد بلد میشوم در را باز میکنم که سگ برود بشاشد و بعد موبایل را به اسپیکر وصل میکنم که صدای رادیو از بلندگو پخش شود و بعد حالا ایمیل و بقیه مخلفات را نگاه میکنم. کلا خیلی پر رنگ است.
یک برنامه ای دارد این رادیو ملی آمریکا به اسم «هوای تازه» که در آن خانم تری گروس هر روز با یک نفر مصاحبه میکند. این یک نفر میتواند نویسنده، نوازنده، دانشمند، هنرپیشه، سیاستمدار…هر کسی باشد. فکر می کنم این از اولین برنامههایی بود که من در آمریکا شروع به دنبال کردنش کردم. دنبال کردنش به این معنا که هر روز باید (و این باید خیلی جدی است) به پادکستش گوش کنم. شاید این عجیب باشد، اما من احساس میکنم این برنامه مرا آرام کرده است*. یعنی مرا تبدیل به آدمی کرده که وقتی میخواند، یا به چیزی گوش میدهد یا فیلمی را میبیند مکث میکند و راجع به آنها فکر میکند. این آدم در زندگی من بعد از مهاجرت خیلی تاثیرگذار بوده.
(یک بار در تویتر نوشتم که یک جایی بیاید مرا استخدام کند که بشینم مصاحبههای این آدم را ترجمه کنم. بهترین کلاس روزنامهنگاری است. یک بار دیگر هم نوشتم که اگر یک روز یک کتاب بنویسم فقط برای این است که تری گروس با من مصاحبه کند. بنابراین باید کتاب خیلی خوبی باشد. )
حالا اینهمه آسمان و ریسمان بافتم که بگویم این تری گروس خیلی آدم بیسر و صدایی است و تقریبا هیچ کس در مورد زندگی خصوصی اش چیزی نمیداند. (یا نمیدانست.) این هفته مارک مارون- که یک کمدین و آدم رادیویی و تلوزیونی دیگری است- با او مصاحبه مفصلی کرده. تا همین حالا که اینها را مینویسم خودم سه بار به این مصاحبه گوش کردم. (انگار تری گروس همان رودگولیت دوران ده سالگی شده که اگر روزنامه یک خط در موردش مینوشت، ده بار میخواندم.)
همین. این برنامه برای من آنقدر هیجانانگیز بود که در موردش بنویسم.
* یک جایی مارون به تری گروس میگوید که آدم با شنیدن صدای او میخواهد آدم بهتری شود. من این حرفش را از ته دل میفهمم.
-یک چیزی که در مصاحبههای تری گروس برای من از همه قویتر است، تاکید بر موضوع و شخص مصاحبه شونده است نه دانستههای خودش. مصاحبهکنندههای خوب کم نداریم. اما خیلی وقتها آنها تاکید کار را میبرند بر روی آنچه خودشان میدانند یا شخصیت خودشان و از مصاحبه شونده در خصوص آن سوال میکنند. اتفاقی که من در هیچ کدام از مصاحبههای گروس آن را ندیدم. تاکید همیشه بر کار و یا شخص مصاحبه شونده بوده. همیشه.
تصادفی لو رفت: سرویس وایفای جدید مایکروسافت برای میلیونها کاربر بدون هیچ زحمتی
پس از اینکه گوگل از سرویس اینترنت بیسیم خود پردهبرداری کرد؛ گویا نوبت به شرکت نرمافزاری مایکروسافت رسیده است که یک سرویس وایفای فارغ از مکان برای کاربران سراسر جهان ارائه دهد. منابع خبری نزدیک مایکروسافت اعلام کردند این شرکت نرمافزاری در حال توسعه یک سرویس فارغ از پلتفرم برای دسترسی به اینترنتی وایفای بدون هیچ زحمتی (hassle-free) است. سایت این سرویس جدید به نام Microsoft WiFi، اولین بار در توییتر کاربری به نام WalkingCat مشاهده شده است. این کاربر سابقه لو دادن اپلیکیشن OneClip را نیز دارد. در حال حاضر این سایت پاک و طرح گرافیکی «Coming Soon» جایگزیناش شده است. منابع خبری مانند سایت VentureBeat ضمن اینکه میگویند ۱۰ میلیون کاربر در ۱۳۰ کشور میتوانند عضو این سرویس باشند، نقل میکنند یک نماینده مایکروسافت نیز این خبر را تایید کرده و میگوید: «میتوانم تایید کنم در حال کار روی یک سرویس جدید به نام Microsoft WiFi هستیم که امکان استفاده از وایفای را بدون زحمت برای میلیونها کاربر فراهم میکند. ما مشتاقانه منتظر ارائه جزئیات بیشتری درباره این سرویس هستیم.» برخی از سایتها نیز از ارائه تصادفی پیشنمایش این سرویس در یک کنفرانس محلی مایکروسافت خبر میدهند و اینکه شروع ماجرا از آنجا بوده است.
این سرویس برای اپلیکیشنهای سیستمعاملهای iOS، اندروید، ویندوز و OS X فعال خواهد بود و توسط هاتاسپاتهای بزرگ مستقر در فضا ارائه میشود. احتمالاً رایگان نیست و کاربران باید حق عضویت در سرویس Skype Wi-Fi را بپردازند و سازمانهای بزرگ نیاز به استفاده از Microsoft Office 365 داشته باشند. همچنین، کاربران میتوانند به طور مستقیم از سرویس وایفای ارائه شده توسط مایکروسافت استفاده کنند. ظاهراً کاربران باید یک حق عضویت پایه بپردازند و بعد برای هر دقیقه استفاده از این سرویس، مبلغی را شارژ کنند.
به گزارش سایت بیزینساینسایدر سرویس وایفای جدید، نسخه بهروزشدهای از همان سرویس Skype Wi-Fi است که به کاربران اجازه میدهد به هاتاسپاتهای کافیشاپها، رستورانها، فرودگاهها، هتلها و ایستگاههای قطار و مترو وصل شوند و با لاگین کردن در سایت microsoftwifi.com؛ از این سرویس استفاده کنند. برای مثال، هاتاسپاتهای معروف Boingo، Xfinity Wi-Fi و Gowex در امریکا و اکسسپوینتهای BT و The Cloud در انگلیس امکان استفاده از این سرویس را میدهند.
هنوز جزئیات زیادی درباره این سرویس منتشر نشده است و احتمالاً به زودی به طور رسمی توسط مایکروسافت معرفی خواهد شد. از هماکنون میتوان حدسهایی درباره چرایی راهاندازی چنین سرویسی توسط مایکروسافت زد. قبلاً در یک پزشک مقالهای به نام «مایکروسافت گوگل جدید است؛ گوگل مایکروسافت قدیمی است» کار کردیم و اشارههایی به تغییر جنس کسبوکار مایکروسافت در دوره جدید مدیرعاملی ساتیا نادلا داشتیم. مایکروسافت جدید شدیداً دوست دارد سرویسمحور باشد و همانند گوگل از تبلیغات آنلاین بهره ببرد. مرتباً سرویسهای خودش را رایگان و اوپنسورس میکند و دوست دارد تعداد کاربران بیشتری جذب کند. حتا در حرکتی غیرمنتظره در تاریخ این شرکت؛ برای دیگر سکوهای نرمافزاری نیز سرویس و اپلیکیشن ارائه میدهد. نکته ظریف این قضیه اینجا است که لازمه و نیازمندی استفاده کاربران از این همه سرویس و نرمافزار و اپلیکیشن، آنلاین بودن است. مایکروسافت هم مانند گوگل نیاز دارد کاربرانش همیشه و در همه کجا به اینترنت وصل باشند تا به اهداف پشت پرده خود یا همان کسب درآمد غیرمستقیم برسند. کاربر آفلاین هیچ سودی برای این شرکتها ندارد. بنابراین، تعجبی ندارد که یک شرکت غول نرمافزاری به سراغ ارائه سرویس وایفای برود.
خواندن این پستها را هم به شما توصیه میکنیم:
Understanding Less Guards and Loops
The developers’ desire to bring features from programming to CSS led to creation of CSS preprocessors. They allow us to define variables and create functions just as we do so in JavaScript; but even more important, we can make our code more flexible by using conditional and iterating blocks.
Such blocks can be created using Less, but the syntax for their use is quite different from the traditional if..else and for patterns. In contrast to Sass and Stylus, Less tries to stick as close as it can to the original CSS. Therefore, to construct conditionals and loops, it uses syntax borrowed from media queries. This can be a bit confusing at first, but once we learn how it works, we will see that it’s just another way to say the same thing.
Less Mixin Guards
Less calls its conditional statements mixin guards. To construct a conditional block, we need to use mixins in conjunction with guards. Let’s demonstrate the main scheme with an example:
.theme (@mode) when (@mode = "dark") {
background-color: darkblue;
}
.theme (@mode) when (@mode = "light") {
background-color: lightblue;
}
div {
width: 50px;
height: 50px;
.theme("light");
}
Here, we have a mixin with one parameter .theme(@mode). We check if that parameter matches with a specific condition. Only once the parameter passes the test will the code inside the mixin be executed. For each separate condition, we need to repeat the name of the mixin along with its parameter(s). In our case, we have two conditions. As we can see, to substitute the if keyword, used in many other programming languages, Less uses guards. A guard is created by the when keyword followed by a specific condition. To understand it more easily let’s see how the above block would looks like in JavaScript:
function theme(mode){
if (mode == "dark"){
element.style.backgroundColor = "darkblue";
} else if (mode == "light"){
element.style.backgroundColor = "lightblue";
}
}
So, a mixin guard is just a function with nested if..else statement(s). Although it’s created in a different manner.
In our div example, we use the mixin guard with “light” passed as parameter – .theme("light"). And when the code is compiled by Less, we get the following output:
div {
width: 50px;
height: 50px;
background-color: lightblue;
}
See the Pen Less Guards and Loops Example 1 by SitePoint (@SitePoint) on CodePen.
Cool! But what if we have a shared style, which we want to apply in both cases. For example, when the theme is set to “light”, along with the light blue background color, we want to add an orange border too. To do so, we need to add a mixin without a guard, after our conditions:
.theme (@mode) when (@mode = "dark") {
background-color: darkblue;
}
.theme (@mode) when (@mode = "light") {
background-color: lightblue;
}
.theme (@mode) {
border: thick solid orange;
}
div {
width: 50px;
height: 50px;
.theme("light");
}
Now, we can see that the style from the last block of our mixin guard is added in the compiled code:
div {
width: 50px;
height: 50px;
background-color: lightblue;
border: thick solid orange;
}
If we change the theme’s mode to “dark”, the style for the border will still remains.
See the Pen Less Guards and Loops Example 2 by SitePoint (@SitePoint) on CodePen.
OK. Let’s take a look at another slightly different variant. This time we want to add a default style, which will be applied when neither the first condition, nor the second one is met. To do so, we add a mixin with a special type of guard – instead of a regular condition we use the default() function.
.theme (@mode) when (@mode = "dark") {
background-color: darkblue;
}
.theme (@mode) when (@mode = "light") {
background-color: lightblue;
}
.theme (@mode) when (default()) {
background-color: @mode;
}
div {
width: 50px;
height: 50px;
.theme(red);
}
This variant is equivalent to the final else in an JavaScript’s if..else block:
function theme(mode){
if (mode == "dark"){
element.style.backgroundColor = "darkblue";
} else if (mode == "light"){
element.style.backgroundColor = "lightblue";
} else {
element.style.border = mode;
}
}
We use red as parameter and it doesn’t match neither with “light” nor with “dark”. Therefore, the background color is set to red in the compiled code:
div {
width: 50px;
height: 50px;
background-color: red;
}
See the Pen Less Guards and Loops Example 3 by SitePoint (@SitePoint) on CodePen.
Less also allows us to use logical operators with guards. So, if we need to negate a condition, we can do so by using the not keyword, like so:
.theme(@mode) when not (@mode = "dark"), (@mode = "light") {
background-color: @mode;
}
Here, we use the OR operator too, which in Less is emulated by a comma. The code for this guard have exactly the same effect as the default() function.
Less Loops
Less defines a loop in a similar way to mixin guards. First, we create a mixin with a counter parameter, and a guard with our condition. Then, we put the code, which we want to be generated, inside the mixin. The last thing we need is a way to increment/decrement the counter value. We use the fact that a mixin can call itself and we add the same mixin as nested function. As an effect of this, our mixin will loop and iterate as long as the condition set in the guard is matched. Let’s make things clearer with the following example:
.make-variants(@i:1) when (@i =< 3) {
.variant-@{i} {
width: @i * 40px;
height: @i * 20px;
background-color: orange;
margin-bottom: 10px;
}
.make-variants(@i + 1); // increment function
}
.make-variants();
We have a counter parameter set to 1 (@i:1) and a condition (@i =) which will return true until the counter value is equal or lesser than 3. Inside the mixin, we put the code we want to be generated on each iteration. And finally, to make the iteration possible, we add the mixin itself as a nested function, which will increment the counter value by one (@i + 1).
The above code block is similar to the following for loop in JavaScript:
for (i = 1; i <=3 ; i++) {
...
}
When the code is compiled, the style block from the mixin is repeated three times as expected, and thus three different classes are output:
.variant-1 {
width: 40px;
height: 20px;
background-color: orange;
margin-bottom: 10px;
}
.variant-2 {
width: 80px;
height: 40px;
background-color: orange;
margin-bottom: 10px;
}
.variant-3 {
width: 120px;
height: 60px;
background-color: orange;
margin-bottom: 10px;
}
See the Pen Less Guards and Loops Example 4 by SitePoint (@SitePoint) on CodePen.
Note that the place where you put the increment function matters. If you put it above the styles then the order in compiled code will be reversed – .variant-3 will be output first, and so on.
Summary
As we can see, Less’ variants of if..else and for blocks aren’t so confusing as they may look at first glance. Once we grasp how they work, we can easily use them to make our CSS more flexible and reusable.
This Week’s HTML5 and Browser Technology News (Issue 191)
|
دانلود آهنگ پوچ













Weekly
