Решением по делу N 7-7729/15 от 06.08.2015 Московский городской суд признал ООО «Мэйл.Ру» блогером и подтвердил законность наложения штрафа.
Все помнят нововведения в законодательстве о блогерах, 3000 посетителей в день и обязанностях следить за контентом, размещаемым пользователями сайтов.
Было очень весело, все уверяли друг друга в том, что статья про блогеров не будет работать. А тем временем блогеров начали ловить и штрафовать.
Читать полностью »
Рубрика «Программирование» - 746
Суд признал «Мэйл.Ру» Блогером
2016-02-09 в 22:22, admin, рубрики: блогеры, Веб-разработка, мэйл.ру, Программирование, разработка, суды, метки: мэйл.руКортежи в языках программирования. Часть 1
2016-02-09 в 10:54, admin, рубрики: C, c++, D, Go, Rust, swift, tuples, кортежи, Программирование, языки программирования, метки: tuples, кортежи Сейчас во многих языках программирования существует такая конструкция, как кортежи (tuples). Где-то кортежи в той или иной мере встроены в язык, иногда — опять же в той или иной мере — реализуются средствами библиотек. C++, C#, D, Python, Ruby, Go, Rust, Swift (а также Erlang, F#, Groovy, Haskell, Lisp, OCaml и многие другие)…
Что же такое кортеж? В Википедии дается достаточно точное определение: кортеж — упорядоченный набор фиксированной длины. Определение хоть и точное, но для нас пока бесполезное, и вот почему: задумывается ли большинство программистов, зачем понадобилась эта сущность? В программировании существует множество структур данных, как фиксированной, так и переменной длины; они позволяют хранить различные значения — как однитипные, так и разных типов. Всевозможные массивы, ассоциативные массивы, списки, структуры… зачем еще и кортежи? А в языках со слабой типизацией — и тем более, разница между кортежами и списками/векторами совсем размытая… ну нельзя добавлять в кортеж элементы, ну и что с того? Это может ввести в некоторое заблуждение. Поэтому стоит копнуть глубже и разобраться, зачем же на самом деле нужны кортежи, чем они отличаются от других языковых конструкций, и как сформировать идеальный синтаксис и семантику кортежей в идеальном (или близком к идеальному) языке программирования.
В первой части мы рассмотрим кортежи и кортежеподобные конструкции в распространенных и не очень языках программирования. Во второй части я попытаюсь обобщить и расширить и предложить наиболее универсальный синтаксис и семантику кортежей.
Читать полностью »
Программное обеспечение спец ЭВМ. «Яуза-6», «Темп», «Руза»
2016-02-09 в 8:47, admin, рубрики: Блог компании ua-hosting.company, кросс-системы, Программирование, Руза, Темп, ЭВМ военного назначения, Яуза-1, Яуза-6, метки: кросс-системы, Руза, Темп, ЭВМ военного назначения, Яуза-1, Яуза-6В середине прошлого века в СССР активно стали развиваться спецкомпьютеры (о некоторых из них). Возникла острая необходимость использования ЭВМ в военном деле, что одновременно сократило бы военные расходы и затраты, при этом увеличило бы точность и дальность поражения, повысило бы мощность средств уничтожения, увеличило бы скорость перемещения, автоматизировало бы операции управления оружием. Исходя из этого, шел поиск эффективных схемотехнических и конструкторских решений, которые бы выполняли поставленные задачи с минимизацией требований к материальным ресурсам. Такие ЭВМ, в отличии от универсальных, требовали высокой надежности при работе в различных механических и климатических условиях, минимизации их обьема, уменьшения потребляемой энергии, а главное огромнейших затрат интеллектуального труда. Внимательное отношение к составу команд при создании программ для решения задач в установленные сроки построения систем — было одним из основных требований.

В США в военных компьютерах использовались схемы универсальных компьютеров, что требовало повышения их скорости, объема памяти и надежности. В нашем отечестве в СЭВМ память для команд и память для чисел были независимы, что увеличивало производительность, исключало случайности, связанные с программами, например — появление вирусов. Спецкомпьютеры соответствовали структуре «Риск».
Читать полностью »
13 февраля в Красноярске состоится конференция разработчиков программного обеспечения Dev2Dev Just.Net
2016-02-09 в 8:14, admin, рубрики: .net, ASP.NET, azure, dev2dev, mvc, Блог компании Microsoft, Программирование, разработкаЭто уже второй (первый можно найти здесь) «гостевой пост» от команды энтузиастов сообщества Dev2Dev. Они продолжают радовать красноярское сообщество отличными конференциями. Ближайшая будет 13 февраля.

2016 год только наступил, а Красноярское IT Сообщество Dev2Dev устраивает первое событие. 13 февраля состоится конференция для разработчиков программного обеспечения Dev2Dev Just.Net. Все предыдущие наши события были ориентированы на широкий круг интересов и технологий. В этом году мы решили попробовать провести специализированную конференцию! Приходите, будет интересно. Вход свободный и бесплатный.
Концепция событий сообщества Dev2Dev проста: свободный вход, качественный контент и много общения для участников и спикеров. Событие — это в первую очередь фан, знакомства и накачка энергией. Сильные доклады и интересные спикеры делают это возможным, но само событие создают участники.
Читать полностью »
Передача сообщений между потоками. Классические блокирующие алгоритмы
2016-02-09 в 0:32, admin, рубрики: c++, D, высокая производительность, многопоточность, Программирование
Когда-то я вылез из песочницы с совочком в руке и постом о неблокирующих очередях и передаче данных между потоками. Тот пост был не столько об алгоритмах и их реализации, сколько об измерении быстродействия. Тогда же мне в комментариях задали совершенно резонный вопрос об обычных, блокирующих алгоритмах передачи — насколько они медленнее и вообще как выбрать оптимальный алгоритм под конкретную задачу.
Я конечно обещал и с энтузиазмом принялся за дело, даже получил забавные результаты, однако… какой-то изюминки не хватало, выходило скучно и плоско. В результате мой внутренний перфекционист обьединился с моим нескрываемым прокрастинатором и вдвоем они меня одолели, пост надолго осел в черновиках и даже совесть уже не вздрагивала при виде забытого заголовка.
Однако все меняется, появляются новые технологии, старые исчезают в архивах, и я вдруг решил что пришло время отдавать долги и сдерживать обещания. В качестве наказания мне пришлось все переписать с нуля, если скупой платит дважды, то ленивый дважды переделывает, так мне и надо.
Да, за КДПВ извиняюсь — оно конечно совсем из другой предметной области, но для иллюстрации взаимодействия между потоками подходит тем не менее идеально.
Читать полностью »
Набор в Санкт-Петербургский академический университет
2016-02-08 в 15:51, admin, рубрики: bioinformatics, computer science, software engineering, Алгоритмы, бакалавриат, биоинформатика, Блог компании СПБАУ, информатика, информатика в школе, магистратура, образование, Программирование, разработка, учебный процесс
Традиционно сообщаем об открытии набора на кафедру математических и информационных технологий. Мы довольно много писали о нашей кафедре в этом блоге, поэтому в этом посте я напишу обо всём тезисно.
Онлайн-курсы
Начну с конца: если вы не заканчиваете школу или бакалавриат в этом году, то вы всё равно можете поучиться в Академическом университете благодаря нашим (совместно с Computer Science центром) онлайн курсам! (Кстати, скоро появятся курсы по физике от наших коллег, следите за новостями!)
Бакалавриат
Более молодых читателей, которые в этом году заканчивают школу, мы приглашаем в наш бакалавриат. Он очень молодой, существует всего два года, и второй год подряд нам удаётся набрать самых сильных абитуриентов. С нашими замечательными второкурсниками из первого набора мы записали небольшой мотивирующий видеоролик о нашем бакалавриате.
Подробности о поступлении в бакалавриат
Магистратура
Тех, кто в этом году заканчивает бакалавриат или специалитет, мы приглашаем учиться к нам в магистратуру. На нашей кафедре есть три направления.
Читать полностью »
Вроде, все просто и ясно:
var module = require("./some_module.js");
module.f(); // запуск экспортируемой функции модуля
console.log(module.obj); // печать экспортируемого объекта модуля
module(); // запуск самого модуля
Что бы экспортировать что-то в самом модуле нужно прописать:
exports.f = function() { return 123; };
exports.obj = { name: "Foobar", age: 33 };
// или даже так, что вместе с предыдущими строчками
// в одном модуле не сработает!
module.exports = function() { return "I have not a name"; }
Почему не всегда работает?
Ответ на этот вопрос лежит в понимании работы функции require().Читать полностью »
Полноценный REST API для перфекционистов за 5 минут
2016-02-08 в 10:09, admin, рубрики: flask, mongodb, python, python eve, rest api, RESTful, werkzeug, Веб-разработка, Программирование, разработка мобильных приложенийПривет! Меня зовут Владимир, мне 28 лет и я наркоман наркоман. Мой наркотик – простота. На простоту я подсел из-за своего перфекционизма, которым меня наградили при рождении. Врачи говорят, что это взаимосвязано, мол перфекционизм — это стремление к совершенству, а простота позволяет подобраться к этому мифическому совершенству. Чем проще решение, тем меньше ошибок можно допустить, вот я и подсел. Я не стал с ними спорить и вместо того, что бы искать виновников моей истории, решил с этим жить и постараться повысить качество этой самой жизни.
Мир вокруг не идеален, сложную вещь сделать простой – невероятно сложно, поэтому всё чрезмерно усложнено. Людям нравиться чувствовать себя профессионалами, поэтому они оперируют сложными терминами, когда в этом нет необходимости, так они ощущают свою значимость и заполняют пустоту, которая образовалась из-за страха потерянного времени.
Читать полностью »
Добавляем рефлексию для перечислений (enum) в C++
2016-02-08 в 7:20, admin, рубрики: c++, c++11, enum, макросы, Программирование, рефлексияНедавно в нашем проекте возникла необходимость программно получать информацию о перечислениях (enum), например, имена констант в виде строк, а также общий список всех имеющихся в enum-е констант.
enum Suit { Spades, Hearts, Diamonds, Clubs };
Обычно решение данной задачи базируется на дублировании значений, например, внутри switch-а:
switch(value)
{
case Spades: return "Spades";
case Hearts: return "Hearts";
case Diamonds: return "Diamonds";
case Clubs: return "Clubs";
default: return ""
};
И возможно, для небольших перечислений такое решение действительно является приемлемым, однако если значений много, и особенно, если они время от времени меняются, то рано или поздно разработчик может забыть дописать или изменить соответствующие строки в switch. Сюда прибавляются и другие очевидные минусы, например сам факт необходимости дублирования значений уже вызывает у меня некоторое недовольство.
Поэтому я постарался найти путь, который вообще не требовал бы дублирования, но при этом полностью справлялся бы с поставленной задачей. Думаю, у меня получилось.
Далее в статье я опишу способ, позволяющий организовать рефлексию для enum-ов. Кому интересно — добро пожаловать под кат.
Читать полностью »
Как оформлять коммиты, чтобы потом не было больно
2016-02-08 в 7:15, admin, рубрики: Git, Блог компании Voximplant, Веб-разработка, Программирование, разработкаНесколько дней назад David Demaree, главный по Typekit в Adobe, издал крутую книжку "git для людей". Чтобы привлечь к ней внимание, он опубликовал выжимку самой, на мой взгляд, интересной главы — как оформлять коммиты чтобы и волки были целы, и овцы сыты, и писец не пришел. А я за эти выходные подготовил выжимку из выжимки — сокращенный и адаптированный перевод, чтобы можно было быстро прочитать и добавить в копилку своего опыта самое ценное.

