Архив за 28 апреля 2013

Привет всем.

Начну с того, что на днях пришла рассылка по Delphi и RAD Studio XE4, в которой Delphi декларируется как мультиплатформенное средство для быстрой разработки для компьютеров, ноутбуков, планшетов и мобильных устройств, включая MAC, iPhone, iPAD, также у Embarcadero есть планы сделать поддержку мобильной платформы Android.

Delphi и FreePascal — это Паскаль сегодня. Один из моих любимейших языков программирования. Язык прошёл долгий путь от “игрушки для учёных” до мощнейшего универсального средства разработки, на котором сделаны великолепные проекты, например, Total Commander.

Построенное на здравых решениях, ядро языка Паскаль легко поддалось усовершенствованию и умощнению и пригодно для широчайшего класса практических задач. В России Delphi особенно популярен и всё ещё широко используется. Однако развитие языка идёт по принципу наращивания возможностей, и постепенно Delphi становится всё более громоздким, догоняя по сложности таких монстров как PL/1, C++ и Ada. С большой вероятностью мы можем предположить, что проще язык становиться не будет, ибо нужно поддерживать совместимость с накопившейся базой исходников и т.д. В конце концов такая стратегия развития неизбежно приведёт к трудностям, когда сложность уже невозможно будет контролировать.

В то же время есть язык программирования, получившийся за несколько десятилетий практического преподавания и решения различных задач путём методического и последовательного уточнения Паскаля. Это Оберон — самый красивый из всех минималистичных языков, о котором мало кто слышал. Я смело утверждаю: Паскаль сегодня — это не только Дельфи (полученный методом наращивания), но и Оберон-2 / Компонентный Паскаль (полученные методом отбрасывания, пересмотра и уточнения целесообразности тех или иных средств). Благодаря тому, что над автором языка не довлела необходимость совместимости, он особенно на эту тему и не парился. И получившийся в итоге язык — цельный, компактный, мощный, кроссплатформенный в широком смысле (включая не только современные платформы, но и Amiga, и даже Atari). На Компонентном Паскале я успешно разработал мидлет для Java micro edition, не предвижу трудностей и в разработке для Android. Кроме одной: отсутствие инфраструктуры, да и вообще о таком использовании Оберонов мало кто знает.

Оберон-2 и Компонентный Паскаль — мультипарадигменные языки для системного и прикладного программирования, они модульные, компонентные и объектно-ориентированные. Разработанные на диалектах Оберона операционные системы, компиляторы и другие программы — часто сами по себе произведения искусства. Они красивы, неординарны, компактны и достойны всяческих похвал. Оберон популярен в академической среде как способ записи алгоритмов (пришёл на смену Фортрану) и как минимальный язык для исследований (посмотрите, например, сколько вышло публикаций по Оберону на сайте издательства SpringerLink. Он идеально подходит для обучения программированию. В России есть проект Информатика-21, популяризующий применение Оберона для подготовки будущих программистов, ибо, помимо своих технических достоинств, Оберон даёт хорошее понимание технологий программирования и не зависит от коммерческих интересов крупных корпораций. Посмотрите чего наваяла моя малолетняя племянница после недели разговоров со мной о программировании. Благодаря простоте языка энтузиасты разработали много компиляторов Оберон-диалектов для различных платформ.

Вирт всегда считал правильным конструировать процессоры под языки, а не наоборот. Но, несмотря на это, Оберон-программы хорошо конвертируются в Си, Java, работают как на нативе, так и на .NET/JVM. Разрабатывается компилятор GPCP для LLVM. Мне принадлежит идея ZXDev — среды разработки на Обероне-2 для восьмибитного процессора Z80 и компьютера ZX Spectrum. Самая новая ревизия виртовского Оберона называется Oberon-07. Он ещё меньше по размеру, чем Оберон-2, и адаптирован для ARM-процессоров и архитектур большой разрядности. Вот такое направление развития Паскаля. Малоизвестное широким массам программистов, но красивое как произведение искусства. Уже более семи лет я активно применяю Оберон-технологии с пользой для своей деятельности, и программировать на чём-то другом уже мало хочется.
Читать полностью »

Хотелось бы тоже написать о своем опыте обучения в Японии, а именно в Киотском Университете. Сразу оговорюсь, что обучение не было связано с IT, происходило это 8 лет назад, но возможно кому-то пригодиться мой опыт. Это будет вводная статья о этапе подготовки документов и прохождения отбора. Надеюсь тот, кто ездил по этой программе недавно, сможет дополнить более свежей информацией. Раньше уже был пост от об учебе в Aizu от cherepaha, так что часть информации будет пересекаться.

Как все начиналось.

Земля остыла, вымерли динозавры и в один солнечный весенний вечер, решил я посетить презентацию программ обучения в различных зарубежных странах. Организовывалось это представителями различных посольств и происходило все в Петербурге. Так я узнал о стипендии Monbukagakusho и программе стажер-исследователь поддерживаемой правительством Японии (Ministry of Education, Culture, Sports, Science and Technology). Всегда была мечта уехать в далекую экзотическую страну, также хотелось просто попробовать подать документы на обучение за границей. Я решил попробовать.
Читать полностью »

Существует ли связь между астмой и шизофренией?
Диабет и биполярное расстройство личности — могут ли они иметь что-то общее?
Сможет ли выявить столь нетривиальные связи анализ базы данных по почти всем пациентам США?
Зачем анализировали 1 500 000 историй болезней? Что это дало?
Читать полностью »

Основной цикл в Javascript

Все мы слышали про ajax и node.js. Они прочно обосновались уже не просто в словарном запасе, но и в наборе инструментов веб-разработчика. Ajax — асинхронное подтягивание данных с сервера на страницу, node — фреймворк с асинхронным IO. Но как в таком однопоточном языке, как Javascript, реализуется та самая асинхронность?

Вы, наверное, уже догадались из заголовка, речь пойдет об основном цикле («main loop»).
Читать полностью »

Доброго времени суток всем хаброжителям.
В этой статье я расскажу о том, что можно получить, если заразить нескольких студентов-айтишников с Урала крутой идеей о чемпионате международного уровня.
image

Всё началось жарким летним днём где-то в июле 2012. На кухне местной ИТ-компании сидели несколько студентов и Леонид ВолковЧитать полностью »

Наверное, про Event Sourcing слышал каждый, кто хоть раз пересекался с темой CQRS и DDD. Это подход хранения данных, при котором вместо конечного результата храниться череда записей о событиях происшедших с некоторой сущностью. На сайте Мартина Фаулера есть подробное описание, а мы же остановимся на фундаменте, основных «печенюшках», а также проблемах в его применении.
Читать полностью »

Равенство parseInt("042") === 42 (как и другие ему подобные) станет верным в Firefox следующей версии (Firefox 21) и в более новых, хотя прежде Firefox действовал по образу и подобию языка Си, считая восьмеричными числа, запись которых начиналася нулём — так что вызов parseInt("042") давал тогда значение 34.

Обсуждение в мозилловской багзиллеЧитать полностью »

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

Несмотря на то, что динамическая адаптация видеопотока уже сравнительно «старая» технология, существует множество мелких подробностей о том, как добиться лучшего результата. Чтобы и на серверной стороне попроще и подешевле, и чтобы такое видео было совместимо с как можно большим количеством клиентов (Web, iOS, Android, ну и не забываем про Smart TV).

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

Компания Apacer представила флэш-накопители AH552, оснащенные интерфейсом USB 3.0. По словам производителя, используемый в них двухканальный контроллер обеспечивает высокие скоростные показатели. В режиме чтения устройство может похвастать скоростью до 180 МБ/с. Во всяком случае, именно такое значение указано в сообщении, разосланном по электронной почте. На сайте производителя приведено значение 110 МБ/с. В режиме записи скорость достигает 70 МБ/с. Эти показатели близки к показателям Читать полностью »

Намедни наткнулся на замечательное высказывание талантливого боксера и невероятно сильного человека Роя Джонса. Он сказал: “Нужно работать так, словно таланта у тебя вообще нет”. Эти слова невероятно глубоко запали мне в душу. Я перечитал фразу раз двадцать и с каждым новым прочтением все больше понимал — “Да! Точно! Это именно то, чего мне не хватало.”

Это высказывание подходит пожалуй к любой профессиональной деятельности, начиная от спортсменов заканчивая любыми представителями около-творческих профессий, где в той или иной форме требуется проявление таланта. Для меня программирование — искусное ремесло, которое требует от творителя неимоверной остроты ума, таланта и трудолюбия. Именно о талантливой составляющей в программировании я бы хотел порассуждать.
Читать полностью »