Рубрика «Программирование» - 845

Visual Studio 2015 позволит создавать ПО для большего числа платформ - 1

Следующая версия Visual Studio 2015 будет работать на бóльшем количестве платформ, чем когда-либо раньше.

Несколько дней назад были оглашены официальные наименования следующих версий интегрированной среды разработки и фреймворка — это Visual Studio 2015 и .NET 2015. Стали известны и планы Microsoft превратить Visual Studio в по-настоящему кроссплатформенный инструмент.

Кроме существующей поддержки Xamarin и приложений HTML5/Cordova, в Visual Studio 2015 появится ещё и поддержка C++, компилятора Clang и инфраструктуры LLVM. Таким образом, в перспективе на Visual Studio можно будет писать приложения для Android и iOS!
Читать полностью »

Эта статья — перевод второй части из серии блог-постов, приуроченных к предстоящему релизу первой стабильной версии языка Rust. Перевод первой части можно прочитать здесь.

Замечания к переводу прошу слать в личку.


Много важного несёт с собой предстоящий релиз Rust 1.0, но самым главным в нём являются наши усилия по обеспечению стабильности, аналогичные нашей постоянной ориентации на безопасность.

Начиная с версии 1.0, мы перейдём на шестинедельный цикл релизов и к набору «каналов». Канал стабильных релизов обеспечит безболезненные обновления, а канал ночных сборок предоставит первопроходцам доступ к тому функционалу, над которым в данным момент ведётся работа.

Читать полностью »

Содержание

Браузер – крайне враждебная программная среда

Дуглас Крокфорд, «Язык программирования JavaScript» (видеолекция)

Следующая часть книги расскажет о веб-браузерах. Без них не было бы JavaScript. А если бы и был, никто бы не обратил на него внимания.

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

Это и благословление и проклятие. С одной стороны, здорово не иметь контролирующего центра, чтобы технология развивалась различными сторонами, иногда сотрудничающими, иногда конкурирующими. С другой – бессистемное развитие языка привело к тому, что результат не является ярким примером внутренней согласованности. Некоторые части привносят путаницу и беспорядок.
Читать полностью »

Содержание

То, что проверяет и определяет смысл выражений в языке программирования, является в свою очередь просто программой.

Хэл Абельсон и Жеральд Сасман, «Структура и интерпретация компьютерных программ».

Когда учение спросил учителя о природе цикла Данных и Контроля, Юань-Ма ответил: «Подумай о компиляторе, компилирующем самого себя».

Мастер Юань-Ма, «Книга программирования»

Создать свой язык программирования удивительно легко (пока вы не ставите запредельных целей) и довольно поучительно.

Главное, что я хочу продемонстрировать в этой главе – в построении языка нет никакой магии. Мне часто казалось, что некоторые человеческие изобретения настолько сложны и заумны, что мне их никогда не понять. Однако после небольшого самообразования и ковыряния такие штуки часто оказываются довольно обыденными.

Мы построим язык программирования Egg (Яйцо). Он будет небольшим, простым, но достаточно мощным для выражения любых расчётов. Он также будет осуществлять простые абстракции, основанные на функциях.
Читать полностью »

Содержание

Начинающий программист пишет программы так, как муравьи строят муравейник – по кусочку, без размышления над общей структурой. Его программы как песок. Они могут недолго простоять, но вырастая, они разваливаются.

Поняв проблему, программист тратит много времени на размышления о структуре. Его программы получаются жёстко структурированными, как каменные изваяния. Они тверды, но когда их нужно менять, над ними приходится совершать насилие.

Мастер-программист знает, когда нужна структура, а когда нужно оставить вещи в простом виде. Его программы словно глина – твёрдые, но податливые.

Мастер Юан-Ма, Книга программирования

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

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

Следующие забавные и интересные компьютерные (а по сути — человеческие) ошибки когда-то имели место и оставили свой след в мифологии информационных технологий.

Паук смерти

Эта уже старая (примерно 8 лет давности) история прекрасно иллюстрирует, как легко можно всё испортить. Джош Брекмэн работал в компании, которая получила крупный заказ на разработку системы управления содержимым для сайта государственной структуры. CMS была нужна для того, чтобы работники могли редактировать контент на сайте. У заказчика уже был крупный сайт, поэтому для переноса старого контента потребовалось какое-то время. Через несколько месяцев новый сайт был готов к запуску.

Всё прошло успешно, и веб-сайт работал без каких-либо проблем. Но через шесть суток весь контент полностью исчез. Остались только стандартные сообщения о пустоте баз данных, призывающие добавить контент на только что созданный сайт. Результат расследования показал, что всё содержимое было удалено с одного IP-адреса.

Злостным хакером оказался не кто-то из-за океана — из Китая, России, Индии или ещё какого-нибудь известного своими недружелюбными хакерами государства. Это был googlebot.com. Нет, компания Google не занимается и занималась взломом сайтов госаппарата для того, чтобы вот так глупо нахулиганить. Как выяснилось позже, участия человека не было в принципе. Вот, что произошло на самом деле:
Читать полностью »

В предыдущей статье мы на основе общих друзей ВКонтакте строили граф, а сегодня поговорим о том, как получить список друзей, друзей друзей и так далее. Предполагается, что вы уже прочли предыдущую статью, и я не буду описывать все заново. Под хабракатом большие картинки и много текста.
Читать полностью »

Бывают такие ситуации, при которых лучше написать категорию к классу, чем использовать наследование. Так же иногда существует потребность использовать оригинальный метод класса внутри категории, как если бы мы вызвали super при наследовании. О такой возможности иногда любят спрашивать на собеседованиях и почему-то уверены, что этого нельзя сделать. Google так же умалчивает о такой возможности. Кому интересно — добро пожаловать под кат.
Читать полностью »

Из дневника призера первой Всероссийской олимпиады по программированию для школьников 1989 года - 1
(из личного архива Даниэля Алиевского: «Второй слева — Илья Жильцов, светлая ему память. Я стою за ним, моя голова третья слева»)

(про саму олимпиаду Первая Всероссийская олимпиада школьников по программированию (информатике) 1989 года)

По моей просьбе Даниэль (http://algart.net) поделился воспоминаниями:

«Мы, т.е. свердловская „команда“ из 2 человек — первые два места с областной олимпиады, Максим Стацюк и я — вылетели в Красноярск ночью с 18 на 19 марта 1989 года. Рано утром мы наконец добрались до гостиницы. В гостиницах до той поры я никогда не был, только читал про них в книжках, и впечатление от советской гостиницы получилось довольно тяжелое. Но жить можно было. Даже был туалет и душ в номере, а вообще номер был рассчитан на двоих. Не так плохо, по советским временам! (Позже, на Всесоюзной, я понял, что бывает и хуже.)

Первый день был потрачен на сон (4 часа) и, конечно же, на карты, в которые мы резались со Стацюком и ребятами из других городов до полтретьего ночи. 3.40 — все же отбой.

Выспаться, впрочем, не получилось, поскольку с 9 утра, после завтрака, следовало снова заняться делом, а именно картами. Ну а после 3 дня мы все пошли по магазинам. Красноярск — большой город, интересный для новичков. С семи вечера и до 0.30 — снова карты, пока нас не разогнала наша руководительница, которая и привезла нас с Максимом из Свердловска. Кстати, очень милая девушка, звали, если не ошибаюсь, Виктория Викторовна.
Читать полностью »

Haxe: конвертируем исходный код - 1
Haxe — очень удобный и практичный язык, но маленькое сообщество и, как результат, небольшое количество библиотек заставляют меня немало времени тратить на подготовку «заголовочных файлов» для интеграции open source библиотек в haxe. Немного об этом языке и о путях преобразования исходного кода на разных языках мне бы и хотелось рассказать ниже.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js