Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Io programming language

Ненормальное программирование *ООП *Smalltalk *
По факту защиты мной диплома образовалось некоторое свободное время и я таки решил собраться и написать про эту чудесную штучку.
Мы в последнее время видим всплеск интереса ко всяким языкам очень высокого уровня, с анонимными функциями, каррингом, мапом/фолдом, метапрограммированием и прочим блэкджэком. Слава богу, я считаю.
Задачи усложняются и если люди применяют относительно низкоуровневые средства разработки зачастую наступает ситуация, когда набор абстракций оказывается мал в рамках решаемой задачи, примерно так появляется «спагетти» и велосипеды. Хорошего мало. Хотя умалять роль низкоуровневого программирования не хочется совершенно, по понятным причинам.

Совсем недавно, в 2002 году, бравый американец Стив Декорте понял, что ему как-то все вокруг не нравится. Ну то есть нравится, но как-то по частям. Нравится Smalltalk своей Ъ-ООП природой, нравится Lisp своей системой метапрограммирования и общей мегаизвратностью, нравится Self своими прототипами, нравится Lua, потому что маленькая и клево встраивается куда угодно. А вот что бы все и сразу — что-то не то. Погоревал бравый американец, да и наколбасил свой собственный язык программирования — Io.

Io


Io это маленький, полностью объектно-ориентированный язык программирования с динамической типизацией и развитой системой метапрограммирования, анонимными функциями и вытекающими отсюда плюшками. Кроме того, Io невероятно прост, как в синтаксисе, так и внутри. Существуют всего две сущности: объекты и сообщения. На этом базисе построено все остальное. Вообще весь язык следует дзенскому духу минимализма и простоты.
В Io нет понятия класс, только объект. Объект может быть склонирован и изменен, таким образом мы получаем другой объект (Это и есть прототипы). Все типы данных, значения и прочая — объекты.

Ну что, поехали.
Читать дальше →
Всего голосов 109: ↑109 и ↓0 +109
Просмотры 6.9K
Комментарии 136

Io Language: Синтаксис

Ненормальное программирование *Lisp *Smalltalk *

В продолжение серии статей про Io, хотелось бы отдельно остановиться на синтаксисе языка.
В двух словах синтаксис Io можно описать так: простой, но странный. Многих удивит такой подход, но, спешу заверить, как и в Lisp, синтаксис неудобен только при взгляде со стороны. С эстетической точки зрения можно отдельно выделить тот факт, что многие прогаммы на Io внешне кажутся излишне разреженными, на экране остается много «лишнего», незаполненного полезным кодом места, это ощущение меня не покидает довольно давно, я пока не придумал, как полностью избавиться от этого вывиха мозга, я просто придумал для себя некоторые правила оформления кода, при соблюдении которых эффект значительно сморщивается:
  • Длина строки не должна превышать 80 символов (Привет, text mode!)
  • Между клонированием объекта и описанием тела нового должна быть пустая строка
  • Методы и свойства группируются
  • Без лишней необходимости скобки на новую строку не переносятся


Ну что, поехали. Вынос мозга №2.
Читать дальше →
Всего голосов 50: ↑45 и ↓5 +40
Просмотры 3.2K
Комментарии 17

Io Language: Объектная система

Ненормальное программирование *

Введение


Продолжая писать про io, совершенно необходимо остановиться отдельно на устройстве объектной системы этого чудесатого езычка. Главная проблема в том, что даже если вы «знаете» ООП, вполне может сложиться ситуация, что вы просто не поймете, как оно устроено в io. Сейчас под ООП почему-то подразумевается модель Java, чаще всего. C++ нельзя назвать объектно-ориентированным языком, потому что он язык поддерживающий парадигму ООП, но это не его основная парадигма. Java больше подходит под гордое звание Ъ-ООП языка, но вот беда, ООП диктуемое Java-like языками довольно извращено. Изначально принципы ООП зарождались в Smalltalk'е и там все выглядело несколько иначе, объекты общались друг с другом не посредством вызова методов, а посредством передачи друг другу сообщений, мне до сих пор странно, почему же от этой модели ушли, ведь такое построение позволяет ввести прозрачную параллельность в язык без костылей. Посмотрите на нынешние круто параллелящиеся языки, тот же Erlang например, там все сделано через сообщения. Опять же нагородили огородов из RPC, COM и прочего dbus'а. А ведь как все хорошо начиналось.
Читать дальше →
Всего голосов 46: ↑43 и ↓3 +40
Просмотры 1.7K
Комментарии 72

Io Language: Система сообщений

Ненормальное программирование *
Сегодня продолжим цикл статей, начатый достопочтенным semka. Поговорим о сообщениях.

В Ио нет вызовов функций, но есть посылка сообщений. У сообщения могут быть аргументы (почти как аргументы функции), но аргументы сообщений не выполняются перед посылкой.
Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 1.7K
Комментарии 20

Мифические тормоза диска на Xen

Блог компании TrueVDS
Часто при обсуждении различных способов виртуализации, сторонники Virtuozzo (обычно, хостеры на OpenVZ) вспоминают про услышенное когда-то и где-то утверждение типа «Xen тормозит при работе с диском». Заблуждение это имеет корни, связанные с радикально отличающимися механизмами кэширования диска у виртуальных машин Xen и контейнеров Виртуоззо. Как следствие, сильно отличаются при различных условиях характеристики производительности дисковой системы. Но заблуждение оседает в сознании крепко и надолго.

Чтобы закрыть тему «тормозов диска у Xen» и показать с цифрами, что тормозов нет, вот результаты unixbench, bonnie++ и упаковки исходников линуксовского ядра на одной и той же машине, на одном и том же разделе диска.
Читать дальше →
Всего голосов 22: ↑16 и ↓6 +10
Просмотры 2.5K
Комментарии 33

TV?

IT-компании
The Wall Street Journal видимо решил отойти от своих стандартных тем и углубиться в расследования, так или иначе связанные с крупнейшими IT-корпорациями мира. Вот и сейчас, WSJ вновь поднимает достаточно интересную тему — собирается ли Google вторгаться в мир кабельного телевидения?

Для тех, кто внимательно следит за новостями вокруг корпорации добра, эта новость однозначно не является сюрпризом — слухи о том, что Google готовит что-то для сет-топ-боксов ходят по интернету давно. Тем не менее, еще ни одно издание, вроде Wall Street Journal с источниками, которым можно доверять ни опровергло, ни подтвердило ни один из них. До сегодняшнего дня.
Читать дальше →
Всего голосов 13: ↑6 и ↓7 -1
Просмотры 164
Комментарии 5

Google I/O 2011: Android Honeycomb 3.1, Ice Cream Sandwich и другие ШОКИРУЮЩИЕ новости

Разработка под Android *


Android Honeycomb 3.1

Сегодня на конференции Google I/O 2011 была представлено обновление версии Android для планшетников. Одними из ключевых нововведений являются:

* виджеты теперь поддерживают скроллинг — как пример, виджет для Google Mail
* Устройства теперь могут являться usb-хостами: подключение XBox 360 джойстика, импорт фотографий с камеры
* Google TV теперь на 3.1 и поддержка рынка приложений на TV
* обновление станет доступно для Xoom Verizon сегодня, а для других устройств в течение нескольких недель

p.s. топик обновляется

Фотографии и др.
Всего голосов 107: ↑91 и ↓16 +75
Просмотры 650
Комментарии 150

Идея реализации пакета I/O в Java

Java *

Совершенство достигается не тогда, когда уже нечего прибавить,
а когда уже ничего нельзя отнять.
Антуан де Сент-Экзюпери, Ветер, песок и звезды, 1939

Часто приходится проектировать и разрабатывать пакеты ввода/вывода для приложений на Java. С одной стороны есть java.io, которого бывает более чем достаточно. Однако, на практике редко удается обойтись набором стандартных классов и интерфейсов.

В статье, приводится практический пример идеи для реализации пакетов ввода/вывода на платформе Java.

Читать дальше →
Всего голосов 21: ↑15 и ↓6 +9
Просмотры 5.7K
Комментарии 49

Google выпустила приложение Google I/O 2012

Разработка веб-сайтов *
image

На официальном магазине приложений от Google, Play Маркет, появилось приложение Google I/O. Данное приложение приурочено к скорому началу ежегодной конференции от Google, которая ориентируется, в основном, на веб-разработчиков.

Приложение позволяет просматривать план мероприятий и отмечать понравившиеся, просматривать подробную информацию о выступлении (например, биографию спикера, фотографии и профиль в Google+), получать напоминания о предстоящих выступлениях, синхронизировать календарь с датами выступлений, стримить видео выступлений для Android Honeycomb+ и многое другое.
Читать дальше →
Всего голосов 29: ↑24 и ↓5 +19
Просмотры 1.2K
Комментарии 20

Профилирование нагрузки на файловую систему с помощью iostat и gnuplot — заметки дилетанта

Настройка Linux *Системное администрирование *
Tutorial
Зачастую работа «в поле» требует сбора и анализа информации на сайте заказчика в условиях наличия крайне скудного списка утилит. В частности собрать информацию об использовании системы ввода-вывода в течении дня.

В статье я попробую показать, как располагая только iostat и gnuplot можно попробовать провести анализ системы и какие выводы можно сделать.

Я не претендую на доскональное владение предметом и точное использование терминов. Более того, я постараюсь говорить «обычным» языком и не бросаться терминами.

Все описанное ниже есть плод опыта, ошибок, гугления, курения манов и прочая
Читать дальше →
Всего голосов 47: ↑43 и ↓4 +39
Просмотры 83K
Комментарии 10

AWS: Новые скорости EBS и тесты производительности

Блог компании EPAM Amazon Web Services *
Привет! image

В конце прошлого года я провёл небольшой тест производительности дисков на Амазоне и написал по этому поводу статью. Совсем недавно Amazon Web Services анонсировали новые возможности в EBS с гарантированным количеством IOPS — 4000. Я решил написать не просто новость, а продолжить тесты с этими дисками и рассказать об этом сообществу.
image
Подробности под катом
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 5.6K
Комментарии 11

Siemens SGold: I/O сниффер

C *Реверс-инжиниринг *
Сниффер — специальная программа для анализа и перехвата сетевого трафика, передачи данных через интерфейсы
и многого другого. В данном случае мы будем мониторить операции (чтение и запись) с портами ввода-вывода
на примере телефона линейки Siemens SGold и я постараюсь объяснить, как это всё работает.

image

Читать дальше →
Всего голосов 33: ↑33 и ↓0 +33
Просмотры 13K
Комментарии 8

3D-печать ляжет в основу дата-центров будущего

Блог компании ua-hosting.company IT-инфраструктура *CAD/CAM *Дизайн
Nike использует 3D-принтеры для производства футбольных бутс. Врачи – для протезирования. Компании Ford и GM – для создания прототипов тормозных колодок, рычагов и прочих запчастей. Этот новый вид промышленного оборудования способен воспроизвести любой материальный объект, по крайней мере, теоретически может.

Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 9.7K
Комментарии 1

Темная сторона protobuf

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

К сожалению, на одном из проектов мне пришлось вплотную столкнуться с некоторыми особенностями, которые никак не упоминаются в рекламной документации, однако сильно влияют на технические характеристики проекта.
Читать дальше →
Всего голосов 29: ↑25 и ↓4 +21
Просмотры 76K
Комментарии 52

Особенности протокола в IO-играх

Я пиарюсь
Допустим, вы хотите создать IO-игру. Что-то похожее на agar.io, slither.io и тысячи их.

Что такое IO -игры
Такое название закрепилось за браузерными, клиент-серверными многопользовательскими играми в реальном времени.

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

Родоначальником жанра является agar.io

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

Сейчас я так не думаю.
Расскажу почему
Всего голосов 34: ↑27 и ↓7 +20
Просмотры 14K
Комментарии 75

Как эффективнее читать данные с диска (при условии, что у вас .Net)

Блог компании Технологический Центр Дойче Банка Тестирование IT-систем *Программирование *.NET *Разработка под Windows *


Привет, Хабр! Некоторое время назад меня заинтересовал вопрос: как эффективнее всего читать данные с диска (при условии, что у вас .Net)? Задача чтения кучи файлов встречается во множестве программ, которые при самом старте начинают вычитывать конфигурации, некоторые самостоятельно подгружают модули и т.д.

В интернете я не нашел подобных сравнений (если не считать тюнинга под определенные конфигурации).
Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Просмотры 11K
Комментарии 18

Яндекс.Станция. Как мы создавали первое устройство с Алисой

Блог компании Яндекс Поисковые технологии *Гаджеты Искусственный интеллект Голосовые интерфейсы


Несколько минут назад на конференции YaC 2018 мы впервые рассказали о Яндекс.Станции. Это первое мультимедийное устройство с Алисой, которое воспроизводит музыку и фильмы, рассказывает детям сказки, помогает в повседневных делах, а также поддерживает навыки от сторонних разработчиков.

Может показаться, что для создания подобных устройств достаточно взять голосового помощника, добавить к нему простой микрофон из смартфона и спрятать всё это в корпусе недорогой аудиоколонки. На практике перед разработчиками подобных систем стоят серьёзные технологические проблемы, о решении которых в Станции мы и расскажем сегодня читателям Хабра. Вы также узнаете, что именно представляет собой технологическая платформа Yandex.IO, на основе которой и создано устройство.
Читать дальше →
Всего голосов 184: ↑168 и ↓16 +152
Просмотры 92K
Комментарии 598

SciPy, ввод и вывод в MATLAB

Python *Математика *Matlab *
Tutorial

SciPy (произносится как сай пай) — это пакет прикладных математических процедур, основанный на расширении Numpy Python. С SciPy интерактивный сеанс Python превращается в такую же полноценную среду обработки данных и прототипирования сложных систем, как MATLAB, IDL, Octave, R-Lab и SciLab. В этом посте я хотел бы рассказать о возможностях пакета ввода/вывода scipy.io, который позволяет работать с файлами данных Octave и MATLAB.

Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 4.9K
Комментарии 2

Типичные ошибки при логгировании

Высокая производительность *Java *Совершенный код *.NET *Kotlin *
Recovery mode
Перевод

Привет, Хабр!


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


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

Читать дальше →
Всего голосов 15: ↑13 и ↓2 +11
Просмотры 8K
Комментарии 22

Последние изменения в IO-стеке Linux с точки зрения DBA

Блог компании Конференции Олега Бунина (Онтико) Высокая производительность *Настройка Linux *PostgreSQL *Администрирование баз данных *
Главные вопросы работы с базой данных связаны с особенностями устройства операционной системы, на которой работает база. Сейчас Linux — основная операционная система для баз данных. Solaris, Microsoft и даже HPUX все еще применяются в энтерпрайзе, но первое место им больше никогда не занять, даже вместе взятым. Linux уверенно завоевывает позиции, потому что open source баз данных все больше. Поэтому вопрос взаимодействия БД с ОС, очевидно, о базах данных в Linux. На это накладывается вечная проблема БД — производительность IO. Хорошо, что в Linux последние годы идет капитальный ремонт IO-стека и есть надежда на просветление.


Илья Космодемьянский (hydrobiont) работает в компании Data Egret, которая занимается консалтингом и поддержкой PostgreSQL, и про взаимодействие ОС и баз данных знает многое. В докладе на HighLoad++ Илья рассказал о взаимодействии IO и БД на примере PostgreSQL, но и показал, как с IO работают другие БД. Рассмотрел стек Linux IO, что нового и хорошего в нем появилось и почему все не так, как было пару лет назад. В качестве полезной памятки — контрольный список настроек PostgreSQL и Linux для максимальной производительности подсистемы IO в новых ядрах.
Всего голосов 48: ↑43 и ↓5 +38
Просмотры 17K
Комментарии 9
1