Как стать автором
Обновить
20
0
Юрий Сыровецкий @cblp

говорящий с машинами

Отправить сообщение

О компиляторах и интерпретаторах

Время на прочтение2 мин
Количество просмотров68K

Если ты всегда мечтал написать свой язык программирования — добро пожаловать. Здесь ты наверняка найдёшь для себя что-нибудь интересное.

GitHub-юзер yawnt собрал чудесную подборку ссылок для любителей драконов, языков и прочих вкусных внутренностей. А знающие камрады в комментариях наверняка поделятся с тобой и другими яствами.

Пишет yawnt следующее:

С каждым днём мне всё интереснее тема компиляторов, интерпретаторов и дизайна языков программирования в целом. И я решил поделиться с народом ссылками на собранные мной материалы (большую часть мне самому ещё предстоит прочитать :<). Надеюсь, кому-нибудь они окажутся полезными.

Я не включил (и не собираюсь) в список ссылки на официальную документацию, т. к. считаю очевидным, что первым делом следует смотреть именно туда ;P.
Итак, куча интересных ссылок
Всего голосов 116: ↑109 и ↓7+102
Комментарии55

Игры для программистов

Время на прочтение3 мин
Количество просмотров134K
Должен признаться, что я плохой программист. Я не люблю настраивать Maven и писать конфигурации для Spring Framework. Я не знаю в деталях, как работает JVM (да и в общих чертах представляю это себе довольно смутно). Я плохо понимаю паттерны проектирования, а любая новая технология вводит меня в уныние. И тем не менее, я люблю программировать.

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

Минуточку внимания.

Я не стану говорить о Robot Battle и тому подобных вещах. Вот не стану и всё. Возможно, я странный человек, но мне не нравится иметь дело с чем-то, хоть отдалённо напоминающим реальную физику. Интересующиеся могут почитать об этой игре здесь, а статья немного о другом.

Так о чём же статья?
Всего голосов 120: ↑102 и ↓18+84
Комментарии89

Геометрические фигуры на CSS

Время на прочтение4 мин
Количество просмотров954K
Отличная подборка, как нарисовать различные геометрические фигуры одним элементом HTML.

Квадрат



#square {
	width: 100px;
	height: 100px;
	background: red;
}

Читать дальше →
Всего голосов 352: ↑328 и ↓24+304
Комментарии103

12 инструментов, о которых необходимо знать каждому программисту, работающему с Big Data

Время на прочтение5 мин
Количество просмотров35K
Проектируете ли вы систему для анализа Big Data или просто пытаетесь собирать и обрабатывать данные своих мобильных приложений, вам никак не обойтись без качественных инструментов для аналитики. Хорошей новостью является то, что в данный момент множество компаний выпускают на рынок инструменты, учитывающие потребности разработчиков и соответствующие их навыкам.
Читать дальше →
Всего голосов 57: ↑47 и ↓10+37
Комментарии6

RealTimeBoard — новый способ совместной работы

Время на прочтение1 мин
Количество просмотров90K
Совсем недавно открыл для себя новый интересный и крайне полезный сервис для совместной работы российский проект RealtimeBoard – бесконечные виртуальные доски, на которых можно работать с любым визуальным контентом (прикреплять картинки, рисовать схемы и графики, создавать коллажи и пр.) индивидуально или с командой.
На данном этапе сервис находится в открытом бета-тестировании, но это нисколько не мешает работать с ним уже сейчас и решать широкий круг задач.
image

Какие же задачи можно решать с помощью RealTimeBoard ?
Читать дальше →
Всего голосов 69: ↑56 и ↓13+43
Комментарии76

Оптимальные опции для x86 GCC

Время на прочтение4 мин
Количество просмотров56K
      Распространено мнение, что GCC отстает по производительности от других компиляторов. В этой статье мы постараемся разобраться, какие базовые оптимизации GCC компилятора стоит применить для достижения приемлемой производительности.

Читать дальше →
Всего голосов 89: ↑85 и ↓4+81
Комментарии53

Как написать сценарий продающего видеоролика-трейлера

Время на прочтение4 мин
Количество просмотров46K


Всем привет!

Если вы собрались самостоятельно делать рекламный видеоролик-трейлер для своей программы или сервиса — этот пост подскажет вам один из возможных путей создания продающего сценария.

Информация в данной статье является экстрактом нашего опыта, накопленного за несколько лет производства рекламных видеороликов в Alconost. Мы видим сценарии продающего видео именно так и надеемся, что эти знания могут быть полезны и вам.

Итак, вам нужен сценарий для ролика-трейлера, который за пару минут рассказал бы зрителю о продукте, при этом не утомил и в итоге помог принять правильное решение — скачать пробную версию, зарегистрироваться в системе, заполнить форму предварительного заказа (нужное подчеркнуть).

Читать дальше →
Всего голосов 9: ↑6 и ↓3+3
Комментарии1

Управление памятью в C++

Время на прочтение6 мин
Количество просмотров151K
Работа с динамической памятью зачастую является узким местом во многих алгоритмах, если не применять специальные ухищрения.

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

Читать дальше →
Всего голосов 76: ↑65 и ↓11+54
Комментарии53

Заблуждения программистов об именах

Время на прочтение3 мин
Количество просмотров88K
Две недели назад на Хабре публиковался перевод «Заблуждения программистов о времени», который по своей структуре и стилю основан на этом классическом тексте Патрика Макензи, опубликованном два года назад. Поскольку заметка о времени была крайне благоприятно воспринята аудиторией, то, очевидно, имеет смысл перевести и исходную статью об именах и фамилиях.

Джон Грэхем-Камминг (John Graham-Cumming) сегодня жаловался в своём блоге, что компьютерная система, с которой он работал, не приняла его фамилию из-за недопустимых символов. Конечно, там нет недопустимых символов, потому что любой способ, как человек представляет себя, — по определению — является подходящим идентификатором. Джон выразил сильную досаду насчёт данной ситуации, и он имеет полное право, потому что имя — суть нашей индивидуальности, практически по определению.
Читать дальше →
Всего голосов 94: ↑78 и ↓16+62
Комментарии223

Заглавные и строчные буквы

Время на прочтение3 мин
Количество просмотров47K
Я собрал здесь некоторые не очень очевидные факты о заглавных и строчных буквах, с которыми может столкнуться программист в работе. Многие из вас переводили строки во «все заглавные» (uppercase), «все строчные» (lowercase), «первую заглавную, а остальные строчные» (titlecase). Ещё более популярна операция сравнения без учёта регистра. В мировом масштабе такие операции могут быть весьма нетривиальны. Пост построен в виде «сборника заблуждений» с контрпримерами.

1. Если я переведу строку в uppercase или lowercase, число Unicode-символов не изменится.

Нет. В тексте могут попасться строчные лигатуры, которым не соответствует один символ в верхнем регистре. Например, при переводе в uppercase: fi (U+FB00) -> FI (U+0046, U+0049)

2. Лигатуры — изврат, ими никто не пользуется. Если их не учитывать, то я прав.

Нет. Некоторым буквам с диакритикой нет точного соответствия в другом регистре, поэтому приходится использовать комбинированный символ. Скажем, в языке африкаанс есть буква ʼn (U+0149). В верхнем регистре ей соответствует комбинация из двух символов: ʼN (U+02BC, U+004E). Если вам попадётся транслитерация арабского текста, вы можете столкнуться с (U+1E96), которой в верхнем регистре также нет односимвольного соответствия, поэтому придётся заменять на (U+0048, U+0331). В ваханском языке есть буква (U+01F0) с аналогичной проблемой. Вы можете возразить, что это экзотика, однако на африкаанс в википедии 23000 статей.

3. Ну хорошо, но давайте считать комбинированный символ (с участием modifying или combining code points) одним символом. Тогда длина всё же сохранится.

Нет. Есть, например, в немецком языке буква «эсцет» ß (U+00DF). При переводе в верхний регистр, она превращается в два символа SS (U+0053, U+0053).
Читать дальше →
Всего голосов 171: ↑169 и ↓2+167
Комментарии66

Заблуждения программистов относительно времени

Время на прочтение3 мин
Количество просмотров90K
За последние пару лет я потратил много времени на дебаггинг чужих тестов. Это была интересная работа, иногда расстраивающая, но всегда поучительная. Кто-то может подумать, что в тестах нет багов, но конечно баги есть везде, и тесты не исключение.

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

На самом деле, я повидал так много заблуждений, которые оставляют след в чужих (и моих собственных) программах, что посчитал полезным составить список самых частых проблем.
Читать дальше →
Всего голосов 241: ↑218 и ↓23+195
Комментарии216

Вебинары по QML и QtQuick: создание интерфейса пользователя

Время на прочтение1 мин
Количество просмотров12K
Данный эпизод серии вебинаров по QML и QtQuick посвящен базовым средствам по созданию пользовательских интерфейсов.

Кирилл Кринкин, руководитель лаборатории FRUCT Open Source & Linux Lab, расскажет про основные типы графических элементов. Посмотрев видео, вы узнаете, как с помощью QML можно работать с цветами, градиентами, графическими файлами и текстовыми элементами — возможности каждого элемента сперва описываются короткой теоретической частью, после чего демонстрируются на практике.

В вебинаре речь также пойдёт об организации элементов на форме. На приведенных примерах будет продемонстрирована работа с якорями (anchors) и отступами (margins) для позиционирования и выравнивания элементов. В теоретической части будут описаны возможности и правила (ограничения) при использовании якорей и отступов.

Смотрите вебинар под катом
Всего голосов 18: ↑18 и ↓0+18
Комментарии3

Перестаньте писать классы

Время на прочтение9 мин
Количество просмотров186K
Фото Джэка Дидриха из профиля на G+ Признак того, что объект не должен быть классом — если в нём всего 2 метода, и один из них — инициализация, __init__. Каждый раз видя это, подумайте: «наверное, мне нужна просто одна функция».

Каждый раз когда из написанного класса вы создаёте всего один экземпляр, используете только раз и тут же выбрасываете, следует думать: «ой, надо бы это отрефакторить! Можно сделать проще, намного проще!»

Перевод доклада Джэка Дидриха, одного из ключевых разработчиков языка Питон. Доклад прозвучал 9 марта 2012 на конференции PyCon US.
Читать дальше →
Всего голосов 234: ↑206 и ↓28+178
Комментарии148

Функциональное программирование для землян — функции

Время на прочтение5 мин
Количество просмотров9.1K


В статье про Python пользователь Xronos попросил рассказать о функциональном программировании (ФП). Поскольку я одно время довольно плотно занимался с Lisp, я хотел бы немножко рассказать об этом. Сразу хочу сказать, что о чистом ФП речь не идет. Я расскажу о более простых и более применимых приемах на примере языка Python.

Читать дальше →
Всего голосов 67: ↑67 и ↓0+67
Комментарии26

Функциональное программирование для землян — списки

Время на прочтение6 мин
Количество просмотров10K
Продолжаю свое небольшое введение в функциональное программирование. На этот раз речь пойдет о списках и методах их обработки в функциональном стиле.

Читать дальше →
Всего голосов 53: ↑52 и ↓1+51
Комментарии42

Пользовательский интерфейс на базе Twitter Bootstrap для начинающих

Время на прочтение6 мин
Количество просмотров61K

Аннотация


В статье я попробую рассказать о том, как на базе Twitter Bootstrap можно очень легко реализовать приятный пользовательский интерфейс небольшого (одностраничного) web-приложения, владея лишь базовыми знаниями html. Сразу предупреждаю, специалистам будет не интересно, речь пойдет о базовом стандартном функционале.

beginners only!
Всего голосов 111: ↑79 и ↓32+47
Комментарии38

Codeception — тестирование по-новому

Время на прочтение4 мин
Количество просмотров87K
PHP очень популярный язык программирования, но тестирование в нем, это скорее прерогатива экспертов, а не жизненная необходимость. Неужели это от того, что PHP-разработчики поголовно быдло-кодеры? Я считаю, что нет. Скорее всё от того, что системы тестирования порой излишне усложнены. А тесты, наоборот, должны были предельно просты: легко читаться, писаться, отлаживаться, и конечно же, быстро выполняться. Мое виденье того как это можно воплотить в PHP вылилось в проект под названием Codeception.

С ним тесты для ваших веб-приложений могут выглядеть так:
<?php
$I = new TestGuy($scenario);
$I->wantTo('create new blog post');
$I->amOnPage('/blog/posts');
$I->click('Create new post');
$I->fillField('Title','Codeception, a new way of testing!');
$I->fillField('Text','Codeception is new PHP full-stack testing framework.');
$I->click('Send');
$I->see('Congratulations, your post is successfully created!');


Согласитесь, такой тест понятен без дополнительных комментариев.
А теперь самое интересное: этот код без всяких изменений может быть выполнен как функциональный тест в фреймворках symfony, Symfony2,Zend Framework, а также в браузерном эмуляторе Goutte и даже через Selenium. Таким образом, вам предлагается единый интерфейс для написания функциональных тестов практически для любого сайта.
Читать дальше →
Всего голосов 75: ↑70 и ↓5+65
Комментарии68

Пробелы в InDesign и как я их ставлю

Время на прочтение3 мин
Количество просмотров60K
Если в докомпьютерную эпоху набор текста и подготовка оригинал-макета были отдельной профессией, то ныне любой человек, установивший верстальную программу (или даже Word) способен готовить документы к печати.

В компьютерную эпоху пробелы, как самая несодержательная часть текста, часто обходят должным вниманием при подготовке изданий. Зачастую в документе присутствуют всего два вида пробелов: обыкновенный и неразрывный (в Word'е фиксированной ширины, в InDesign'е — нет). Между тем, пробелов существует около двух десятков, и некоторые из них очень пригождаются в русской типографике.

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

Неразрывный пробел ничем не отличается по ширине и растяжению от обычного пробела, но не может быть заменён переводом строки. Неразрывные пробелы необходимо ставить после почти всех однобуквенных слов (а, в, и, к, о, с, у, я) и до «б» и «ж», иногда после двухбуквенных слов в начале предложения, между числом и единицами измерений (100 грамм, 5 м), между частями названия (InDesign 5.5).

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

Какие именно символы надо ставить
Всего голосов 40: ↑37 и ↓3+34
Комментарии31

Преподавательская практика

Время на прочтение5 мин
Количество просмотров6.6K
Так сложилось, что я на волонтерских началах захотел преподавать информатику в техническом лицее недалеко от своей работы.

Директриса долго отпинывалась, да и я со своим характером не сахар. Но тем не менее в сентябре мне вручили журнал 7а класса по предмету «Вводный курс информатики и программирования».

Ребята очень активные и веселые. Класс дружный, но при этом абсолютно отсутствует стадный инстинкт и иерархия как таковая.

Практически сразу я понял, что стандартный подход лекция-контрольная не будет здесь работать — это примут 2-3 человека, а остальные просто забьют на уроки. Пятерки для них не важны, а меня все равно заставят поставить нужные для медалей оценки, окончательно подкосив авторитет как учителя.

Как понимаете, мотивировать такой коллектив очень сложно, и я решил что нужно их заинтересовать.

Читать дальше →
Всего голосов 212: ↑199 и ↓13+186
Комментарии153

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность