"Today I Learned" - обмен на съвети и трикове


33
Бонжур, колеги
 
Темата която пускам е вдъхновена от един субредит, където постерите споделят интересна информация на която са се натъкнали. Хрумна ми, че всеки от нас от време на време се натъква на някакви "диаманти" - полезен хак, експертно инфо, дълбоко прозрение което избистря сложната теория. Уви, моментите на просветление са редки и обикновено са предшествани от дълго ровене в търсачки и форуми, безкрайни чатове, дебъгване и скубане на коса.
 
Предлагам да оптимизираме процеса в стил cloud computing - който открие нещо готино, може да го споделя тук, и всички ще черпим от взаимния си опит. Единственото изискване е да постваме неща, свързани с материала в академията и приложимо в това което правим.
 
Ето моят стартов принос
 
[Web Services] Kак да дебъгваме API-то и клиента едновременно
 
Използваме менюто за startup project: Solution Explorer -> десен цък на Solution -> Properties, избираме Multiple Startup Projects и нацъкваме на Api и Client проектите "Start". Така дебъгерът ще пуска и двата едновременно, и ще можем да стъпваме последователно през кода на заявките и сървърната логика, за да разберем какво се е объркало.
 
 

в Други от staafl (5770 точки)


Отговори



2

Днес научих, че при задаване на релативен път към картинка в HTML ил CSS файл, за да се върнем една папка назад пишем ../ (точно две точки, наклонена черта). 

 Например, ако стиловете ни са в папка styles, а картинките в папка imgs. Двете папки са в главния проект една до друга и от стиловете не можем директно да реферираме картинките. За целта трябва да се върнем една папка назад(или да ползваме абсолютен път, което е излишно.)


от ivan.mihov1 (4988 точки)


0
Ползването на абсолютен път е ... абе много лоша практика. Не знаеш къде ще ти качат сайта да се хоства, и почти сигурно нещата ще се оплескат ако имаш абсолютна адресация. Да не говорим ,че може някъде по пътя да се окаже че нямаш достатъчно пермишъни да ходиш... А за точката и двете точки - това е наследство от DOS. Там всяка директория (освен корена, главната директория) има 2 служебни записа - '.' и '..'. Единия сочи самата директория, другия - родителя й. Така можеш да кажеш "del ." което означава "изтрий всичко дет е в текущата директория, или "cd .." което значи "отиди в директорията-родител на текущата". Можеш да ползваш колкото пъти е необходимо ".." за да се "качиш нагоре по йерархията" на дървото. Примерно "../../../" означава "родителя на родителя на родителя на мястото, на което съм в момента". Май че и при линукс нещата са същите, само дето наклонената черта е на другата страна ...

от JulianG (5316 точки)

0
Какъв тип адресация препоръчваш?

от SStoyanov1 (1324 точки)



6

 Поредната приятна изненада от IE, и то версия 11! Ако имате fieldset със legend, и на fieldset-a сложите border-radius, няма да ви огрее. За да се заоблят ъгълчетата трябва на legend да се даде inline-block. 

 


от ivan.mihov1 (4988 точки)


2

Днес научих как да махна двойния intellisense във Visual Studio 2013 с Web Workbench и работа с Less /при мен зареждаше и двата intellisense-а за CSS и накрая трябваше да си пиша всичко ръчно/.
Процедурата е следната:
Във Visual Studio отивате на  Tools и след това Options.
В лявата част изибирате Web Workbench.
В дясната част намирате CSS Extensions и сетвате Show intellisense for CSS extensions на false.
Това реши проблема при мен, който се изразяваше в това, че  като пиша ми дава два списъка с предложения и с Enter никога не избираше това предложение, което аз си мислех, че избирамsmiley
 


от etcet (304 точки)


1
Аз работя по принцип със Sublime Text - доста lightweight и могат да се ползват доста плъгини. Та, вчера се научих как да ползвам emmet - плъгин, който съкращава писането на код, и за CSS. Доста е готин тоя плъгин, така че ви го препоръчвам - вместо да пишеш тагове, пишеш, примерно ul>li*4>a и цъкаш таб и ти вади списък с 4 айтема, в които има 4 линка. Същото и при CSS - пишеш w100 и ти пише width:100px; .
http://emmet.io/ - тествайте го, работи и в Brackets, примерно.

от cerealBoxx (504 точки)


3

Здравейте колеги, влизам аз тази сутрин в конзолата на браузъра, пускам вътре да видя една функция какво връща и нищо, правя тест - нещо съвсем семпло което трябва да работи задължително и му казвам:
var a = 5; console.log(a);
и то ми връща: а (не 5, тоест какво искаш повече,  'а' си е 'а' :) )
Какво се оказа, преди това имах update на Adobe Flash (само това, нищо друго не е извършвано на OS), и изглежда Flash-a е свързан и блокира нещо към browser Engine-a, тествани Chrome i Mozilla , на Windows 7. Няма смисъл да си играете с проверки и настройки в Developer Tools и Firebug, и да изгубите време, не помага, просто рестартирате компютъра и всичко работи обратно нормално, дано ви помогне in case.
 


от tsonko_genov (708 точки)


4
Днес научих един доста интересен начин за итериране на масив в js, като в същото време извършвам и действия върху членовете на масива. Парсване към int в конкретния случай:
var arr = ['1','2','3','4']; arr.forEach(function(v,i,a){a[i]=+v});

от stoianpp (415 точки)


1

 За колегите ползващи SublimeText за JavaScript:

Плъгинът JavaScript Beautify подрежда кода всеки път, щом сейвате. Дори няма нужда да маркирате кода предварително, а просто да сейвате


от ivan.mihov1 (4988 точки)


1

Днес съм задълбал по темата "Примитивни типове и променливи" и ми беше много чудно как точно изглеждат отрицателните числа под формата на битове. Бях чувал, че има един старши бит, който определя знака, но нещо не ми се връзваше. Например не става ясно каква е разликата между sbyte number=0x80; и sbyte number=0x00; (т.е. между 1000 0000 и 0000 0000).

Почнах да си играя да принтирам някакви числа в шеснайсетичен вид с Console.Write("{0:X}",number); да видя как изглеждат и се учудих да видя, че например sbyte number = -1; всъщност е 0xFF(т.е. 1111 1111), а sbyte number = -128; e 0x80 (т.е. 1000 0000). Изпринтирах си няколко поредни отрицателни числа да се опитам да схвана логиката как се получават в двуична система и установих, че отрицателните числа всъщност са инвертирани положителни, ама не баш. Нещо се разминават с едно. Най-накрая намерих следната статийка в уикипедия: Signed number representations и там е обяснено, че съвременните компютри използват нещо което се нарича Two's complement.

Оказва се, че слуха, който бях чул, как се образуват отрицателните числа в компютрите е доста старичък и метода Signed magnitude вече не се ползва. Извода е сверявайте си източниците до колко са актуални :)

Сега ще си направя малка почивка и след това ще се опитам да разнища float и double :)




1

Здравей,

Ето тук бях опитал да обясня как се репрезентират дробните числа в стандарта IEEE 754, който доколкото знам е най-широкоизползваният в момента.


от georgiwe (720 точки)

1

Виж в C# 2 курса имаше една тема за Бройни системи, и там точно мисля има в задачите да се направи алгоритъм за представяне на float число.

  Вземаш в началото цялата и дробната част, според това дали числото е между 0 и 1 или не нормализираш мантисата наляво или надясно и после се смята експонентата.


от ivan.mihov1 (4988 точки)