Pull to refresh

КакЗдоровоЧтоНеПеревеласьНаРусиСмекалка. ру

Social networks and communities
Логотип КакЗдоровоЧтоВсеМыЗдесьСегодняСобрались.руСоциальная сеть компании «КМ Онлайн» обрела свое очередное воплощение. Та самая сеть, которая долгое время неплохо себя чувствовала под названием Classmates.km.ru (как все копируя название сайта-прародителя Classmates.com), а потом недолго и бесславно пожившая под прозвищем Odnoklassniki.km.ru (проиграв судебный спор об интеллектуальной собственности Одноклассникам.ru), теперь получила имя, которое может быть признано самым длинным доменным именем в рунете — КакЗдоровоЧтоВсеМыЗдесьСегодняСобрались.ру. Это достижение «КМ Онлайн» хочет внести в «Книгу рекордов Гиннеса».
Читать дальше →
Total votes 70: ↑43 and ↓27 +16
Views 645
Comments 69

Нужно ли ТЗ сайту? (часть 1)

Lumber room
Кабы схемку, аль чертеж, мы б затеяли вертеж...
(Тит Кузьмич и Фрол Фомич)


image

Нужно ли ТЗ сайту? Сегодня это один из самых спорных вопросов веб-разработки.

Разумеется, вопрос решается сам собой, когда речь идет о таком сайте, беглый осмотр которого может занять час-полтора, а количество обслуживающих его модулей не пересчитать по пальцам рук. Разработчики таких ресурсов прекрасно знают цену «схемкам» и «чертежам», и знают, что действительно «правильным» ТЗ становится только в финале проекта.

Но если сайт, в техническом плане, вполне обыкновенный, и объем не слишком… Как здесь быть?
Читать дальше →
Total votes 11: ↑4 and ↓7 -3
Views 1.7K
Comments 4

А почему на самом деле я пользуюсь линуксами?

Configuring Linux *
Sandbox
Не удержалась написать, прочитав мнение хабравчанина redlaber на эту тему.

Сразу скажу, что пишу этот пост не инвайта ради (хотя буду рада таковому), но для того, чтобы поделиться своим, сильно отличающимся от redlaber мнением. И даже не только по этой причине, но и потому, что такое мнение почему-то я почти ни где не встречаю, а оно ведь должно быть если и не единственным правильным, то на мой взгляд очень близким к эталонному.
Читать дальше →
Total votes 54: ↑28 and ↓26 +2
Views 2.8K
Comments 105

Введение во фреймворки (Часть 1)

IT systems testing *
Translation
Автоматизированное тестирование
Автоматизированное тестирование (АТ) наиболее эффективно, когда реализовано с помощью фреймворка. Несмотря на то, что в АТ термин фреймворк зачастую используется для описания совокупности объектов, которая формирует инструмент модульного тестированиия, эта статья будет в основном сфокусирована на фреймворках другого рода. Мы обсудим типы фреймворков, которые могут быть определены как совокупность абстрактных понятий, процессов, процедур и сред, с помощью которой автоматические тесты проектируются, создаются и реализуется. Кроме того, это определение фреймворка включает в себя физические объекты, используемые для создания тестов и их реализации, а также для организации логического взаимодействия между компонентами.
Автоматизированное тестирование (и, следовательно, фреймворки) развивалось годами, формируясь и усложняясь с каждой новой фазой эволюции. Эти фазы могут быть описаны в терминах трех поколений, каждое из которых обладает набором недостатков и преимуществ, благодаря которым каждое из них остается актуальным, несмотря на новые разработки. Представленные ниже понятия обычно используются для автоматизации функционального тестирования, но в некоторых случаях их можно применить и для решения задач модульного тестирования.
Читать дальше →
Total votes 17: ↑10 and ↓7 +3
Views 22K
Comments 0

Введение во фреймворки (Часть 2)

IT systems testing *
Translation
Тестирование
Часть 1

Второе поколение фреймворков

Это поколение является промежуточным уровнем фреймворков автоматизированного тестирования, среди них могут быть и достаточно простые фреймворки, а могут быть и достаточно хорошо спроектированные. Подобные фреймворки должны рассматриваться в случае, когда поддержка автотестов является важным фактором. Хорошее понимание этого поколения фреймворков является важным, так как на концепциях фреймворков этого уровня основываются фреймворки третьего поколения.
К фреймворкам второго поколения относятся фреймворки ориентированные на данных и фреймворки использующие функциональную декомпозицию. Большинство фреймворков этого уровня являются гибридами и используют оба подхода, но так как возможно использование только одного из них, то эти подходы будут рассмотрены независимо друг от друга.
Читать дальше →
Total votes 8: ↑4 and ↓4 0
Views 12K
Comments 3

Путь JavaScript модуля

Website development *JavaScript *


На момент написания этой статьи в JavaScript еще не существовало официальной модульной системы и все эмулировали модули как могли.

Модули или подобные структуры это неотъемлемая часть любого взрослого языка программирования. Просто иначе никак. Модули позволяют ограничить область видимости, позволяют реиспользовать части приложения, делают приложение более структурированным, отделяют ресурсы от шума и вообще делают код нагляднее.

Вот в JavaScript своя атмосфера — в языке нет официальных модулей, более того все файлы лежат удаленно, один поток приложения. Приходится постоянно решать какие-то странные проблемы с загрузкой, хитро паковать модули в один файлы, чтобы ускорить время загрузки. Бывает, что нужно воевать с двойными стандартами, адаптировать модули другого формата.

Дело в том, что раньше не думали, что на JavaScript можно делать огромные проекты, а не просто «пропатчить DOM», поэтому о модулях не думали. Да и вообще не думали о будущем. И тут Внезапно будущее нагрянуло! Все вроде-бы уже есть, а модули в JavaScript, мягко говоря, запаздывают. Поэтому разработчикам приходится крутиться и выдумывать какие-то эмуляторы модульности.

Думаю многие из вас читали прекрасную статью Addy Osmani Writing Modular JavaScript With AMD, CommonJS & ES Harmony, которая стала одной из глав его книги Learning JavaScript Design Patterns в этой статье рассказывается про «современные» JavaScript модули или же читали достаточно старую статью JavaScript Module Pattern: In-Depth 2010 года про «старые» модули.

Я не буду переводить эти статьи и не буду делать из них солянку. В своей статья я хочу рассказать о моем модульном пути. О том как я проделал путь от «старых» модулей к «новым» и что использую сейчас и почему.
Читать дальше →
Total votes 188: ↑185 and ↓3 +182
Views 119K
Comments 71

10 советов по борьбе с патентными троллями

«Лаборатория Касперского» corporate blog
Доброе утро, Хабр! Нет, сегодня не про вирусы, и даже не про антивирусы. Сегодня про троллей. Патентных. Как вы, возможно, уже слышали, недавно мы («Лаборатория Касперского») задавили еще одного из них — Lodsys. Битва была во всех смыслах эпической: мало того, что само разбирательство длилось аж полтора года, а количество ответчиков превышало 50 штук, так еще и до финиша мы добрались в полном одиночестве, заставив гадину бежать с поля боя, трусливо поджав патенты. Так вот, учитывая, что это была далеко не первая (и не последняя) схватка, можно смело говорить о том, что у нас накопился внушительный опыт в борьбе с патентными троллями разных мастей, размеров и степени наглости. И таким опытом очень хочется поделиться с вами.

Поэтому представляем вашему вниманию 10 основных рекомендаций, которые сформировались во время борьбы с патентными троллями разных стран. Да, у всех есть национальные особенности, но в целом шаблон их действий достаточно однотипен, а приёмчики укладываются в стандарт с небольшими отклонениями. Так что в той или иной степени советы будут полезны любой затролленной компании, не обязательно крупной и не обязательно российской. Вот разве что пост получился немаленький, но мы постарались рассказать обо всем максимально интересно и по существу. Итак…

Читать дальше →
Total votes 94: ↑90 and ↓4 +86
Views 37K
Comments 40

Гипотеза Бёрча — Свиннертон-Дайера

Mathematics *
Эта примечательная гипотеза связывает поведение функции L там, где в настоящее время неизвестно, определена ли она, и порядок группы Ш, про которую неизвестно, конечна ли она!
J.T.Tate, The arithmetic of elliptic curves, Inventiones mathematicae 23 (1974)
Оригинал
This remarkable conjecture relates the behaviour of a function L at a point where it is not at present known to be defined to the order of a group Ш which is not known to be finite!
(Краткая справка насчёт актуальности цитаты 40-летней давности: после Уайлса и Ко таки стало известно, что функцию L можно определить на всей комплексной плоскости. Конечность группы Ш в общем случае остаётся неизвестной.)
Остаётся обсудить возможность ошибки. В качестве предосторожности против внутренних ошибок компьютера можно прогнать все вычисления дважды или делать проверки внутри программы. Более того, компьютеры — в отличие от людей — устроены так, что их ошибки обычно чересчур велики, чтобы их не заметить. Мы уверены, что в наших результатах нет подобных ошибок. С другой стороны, при кодировании замысловатой схемы вычислений в компьютерную программу неизбежны программистские ошибки. Большинство из них обнаруживаются ещё до основных запусков, из-за того, что программа виснет или выдаёт нелепые результаты. Но программа, которую считается работающей, всё ещё может содержать логические ошибки, проявляющиеся при редких стечениях обстоятельств: и действительно, большинство компьютеров подвержено аномалиям, из-за которых те иногда ведут себя не так, как должны по спецификациям. В сущности, наша программа для этапа (ii) оказалась неточной и пропустила очень небольшое количество эквивалентностей, которые должна была найти.

По этим причинам мы считаем, что не стоит автоматически доверять результатам, полученным на компьютере. В некоторых случаях их можно проверить за счёт свойств, которые по существу не были задействованы в вычислениях и которые вряд ли пережили бы возможную ошибку. (Например, таблицу значений гладкой функции, полученную без использования интерполяции, можно проверить вычислением разностей соседних значений.) Но если подобные проверки недоступны, не стоит полностью доверять результатам, пока они не были независимо подтверждены другим программистом на другом компьютере. Мы не думаем, что это задаёт чрезмерный стандарт во время, когда компьютеры становятся столь широко доступны; и мы уверены, что низкие стандарты уже привели к публикации и вере в неверные результаты.

B.J.Birch and H.P.F.Swinnerton-Dyer, Notes on elliptic curves. I, Journal für die reine und angewandte Mathematik 212 (1963)
Оригинал
It remains to discuss the question of error. One can take precautions against machine errors either by running all the calculations twice or by checks included in the program. Moreover, machines — unlike human beings — are so designed that the errors they make are usually too gross to be overlooked. We are satisfied that there are in our results no undetected errors of this sort. On the other hand, in translating an elaborate scheme of calculation into a machine program one is bound to make mistakes. Most of these are found before the program is used for production runs; they show up because the program grinds to a halt or produces ridiculous results. But a program which is believed to work may still contain logical errors which only have an effect in rare circumstances: and indeed most computers have anomalies which cause them occasionally not to behave in the way that their specifications suggest. In fact, our program for stage (ii) was imperfect in that a very few equivalences were missed by the machine.

For these reasons we believe that results obtained from a computer should not be automatically trusted. In some cases they can be checked because they have properties which were not essentially used in the course of the calculation and which would be unlikely to survive if an error had been made. (For example, if a table of a smooth function has been calculated without the use of interpolation, it can be checked by differencing.) But if checks of this sort are not available, results should not be fully trusted until they have been independently reproduced by a different programmer using a different machine. We do not think this sets an unreasonable standard, now that computers are becoming so widely available; and we are satisfied that lower standards have already led to a number of untrue results being published and believed.


Под катом не будет формулировки гипотезы; знающие выражения вроде «Euler product» и «holomorphic continuation» (и в смысле языка, и в смысле обозначаемых понятий) могут прочитать пятистраничный pdf с сайта института Клэя. Под катом — некоторая попытка пояснить, на каком направлении развития математической мысли вообще находится гипотеза Бёрча — Свиннертон-Дайера. А также — как можно досчитать до больших чисел вроде тех, что показаны на КДПВ, менее чем за секунду.
Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Views 16K
Comments 8