Все потоки
Поиск
Написать публикацию
Обновить
1087.24

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Порог рейтинга
Уровень сложности

Программирование в таблицах — новая концепция записи условных (и не только) конструкций

Время на прочтение8 мин
Количество просмотров6K
Не так давно, в процессе поиска в сети альтернативных подходов к программированию я наткнулся на очень интересное видео. Это 40-минутная презентация с интригующим названием «No Ifs, Ands, or Buts. Uncovering the Simplicity of Conditionals». Автор презентации Джонатан Эдвардс (Jonathan Edwards) рассказывает о новой концепции записи условных конструкций при помощи созданных им схематических таблиц (schematic tables).

Эта тема должна быть интересна всем, кто хоть немного интересуется программированием. Если у вас нет в распоряжении лишних сорока минут или вы не можете посмотреть видео по какой-либо другой причине, предлагаю ознакомиться с моим кратким пересказом презентации Джонатана.
Читать дальше →

Январский рейтинг языков программирования

Время на прочтение2 мин
Количество просмотров15K
Голландская компания TIOBE представила очередной рейтинг языков программирования. Рейтинг строится по данным популярных поисковых систем о количестве разработчиков и компаний, использующих язык, а также о количестве обучающих курсов по этому языку.

Итак, что же нового в январском рейтинге? В первую очередь это появление в нём языка Go. И не просто появление — он стал языком 2009 года по версии TIOBE. Популярность Go выросла на 1,25% с момента его появления в ноябре 2009-го и на сегодня он занимает 13-ую строчку рейтинга.

Следом за Go по скорости популяризации идёт Objective-C от Apple, отставший всего на сотую долю процента. Objective-C существует уже давно, но вернул свою популярность благодаря iPhone.

Интересен также рост популярности PHP, который опустил С++ и Visual Basic на строчку ниже. Помимо языков от Google и Apple в 2009 высокого уровня достигли C# от Microsoft и ActionScript от Adobe. Что касается Java, то он по прежнему остался на первой строчке, хотя его популярность продолжает падать.
Итак, сам рейтинг

CPrompt — интерпретатор языка си

Время на прочтение3 мин
Количество просмотров7K
С июня 2009 года я занимаюсь разработкой интерпретатора Си. (я уже упоминал об этом в статье о вызовах функций).
Сейчас уже реализовано достаточно много конструкций: циклы, выбор, вычисление выражений, вызовы функций (как объявленных пользователем, так и стандартных), инклуды и другое.
интересно?

За что я люблю программирование

Время на прочтение3 мин
Количество просмотров10K
Когда я был маленьким, я очень любил писать программы. Интерес был вызван, скорее, обидой. Почему это компьютер умнее меня? И игрой. Игрой, заставить его, компьютер, делать то что я хочу. Ты нажимаешь кнопку, а он говорит что не так, ты правишь ошибку, а он говорит что опять не так… И вот оно запустилось. А счастья нет. Ты начинаешь разбираться… искать… Ты чувствуешь себя строителем мира, так мне тогда казалось. Мне казалось что я создаю свою вселенную… Свой маленький мир…

Читать дальше →

Задачи для курсовых

Время на прочтение2 мин
Количество просмотров4.5K
На хабре часто возникают топики, в которых студенты CS специальностей просят помочь им с выбором тем курсовых и дипломных работ. Это не удивительно, так как обычно темы, которые предлагают научные руководители интересны только им самим, и получается ситуация, когда студент выполняет работу, но не видит в ней смысл. Мне кажется, что это очень ужасно, когда человек не заинтересован в своей работе.

Было бы намного лучше, если бы студент понимал, что он делает нужную вещь, за которую много людей будут ему благодарны. Один из способов достичь этого — участие в популярных open source проектах, связанных с его специальностью. Хорошими кандидатами являются проекты по созданию компиляторов/интерпретаторов языков программирования, так как это наукоемкие проекты (алгоритмы вывода типов, PEG, монады, теория типов...) и объективно полезные проекты (если язык достаточно популярен).

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

Scala. Введение

Время на прочтение12 мин
Количество просмотров89K
Привет хабралюди.

Не так давно я заинтересовался одним из многочисленных ныне языков под JVM — Scala. Причин тому много, основная — всё нарастающее со временем чувство неудобства при работе с cpp-подобными языками. Взгляд мой попеременно падал на Ruby, Groovy, Python, но все они оставляли впечатление инструментов, не совсем подходящих для моего обычного круга рабочих задач (Python-таки хорош, но у нетипизированных языков есть свои ограничения). Scala же, напротив, показалась вполне годным языком. Так как поиск по хабру никаких статей о ней не выловил (было несколько, но мягко говоря не вводных), я решил написать маленький обзор и поделиться им с массами.
По возможности коротко о кажется главном

Hello World! как ему следует быть на C в Linux

Время на прочтение3 мин
Количество просмотров52K
Очень многие начинающие программисты думают, что знают, как написать Hello World. Естественно, с этого примера ведь и начинается большинство учебников.
А давайте посмотрим, как это делается.
Обычно в учебнике по C эта программа выглядит примерно так:
#include <stdio.h>
void main()
{
    printf("Hello world\n");
}

Читать дальше

классический TCP сервер

Время на прочтение4 мин
Количество просмотров46K
мой первый TCP Сервер был создан пару лет назад. Основой создания послужила книга Р.Стивенсона «Unix — Профессиональное программирование.» Есть несколько подходов к созданию TCP-серверов. В данном посте хочется рассказать про классический TCP сервер.

Читать дальше →

Место для D

Время на прочтение6 мин
Количество просмотров3.4K
На хабре уже публиковался перевод статьи The Case For D за авторством Андрея Александреску. Перевод, к сожалению, был сделан на скорую руку, без посторонней помощи и советов, что не могло не отразиться на его качестве. Позднее был коллективно создан более качественный и, главное, верный перевод, который мы и хотим показать. Старый перевод будет удалён, чтобы не создавать путаницы.

Андрей Александреску — Место для D [ссылка на pdf]
(статья посвящена D — «системному языку высокого уровня», одним из разработчиков которого является сам Александреску)

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

Участники: Volfram, naryl, karbin — перевод; maxter — грамматика и орфография; eldar, digited, Nekuromento, karbin, RISC — технические вопросы. ( Они будут рады ответить на любые вопросы, если им предоставить такую возможность ;) )

Читать дальше →

Как сплагиатить удобную утилиту для показа зарядки ноутбука?

Время на прочтение4 мин
Количество просмотров2.3K
Всё началось с того что я увидел утилиту от IBM/Lenovo для показа заряда батареи ноутбука в непривычном месте — в таскбаре/супербаре, но не в виде значка, а как панель(аналогичные используются для управления проигрывателями iTunes, WMP, Zune):



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

Именно так я решил написать своё решение. Писать будем на C++. Я писал в Visual Studio 2010, можно использовать предыдущие версии. Главное — наличие установленного Windows SDK(ставится отдельно от студии, доступен бесплатно, скачать можно например тут)

Вот что у меня получилось:

Моя панелька
Читать дальше →

Google Go = Python и C++

Время на прочтение1 мин
Количество просмотров11K
Google только что объявил выпуск нового языка с открытым исходным кодом
под названием Go. Компания говорит что, Go эксперементальный язык и
он объединяет производительность и безопасность компилируемых языков(как С++)
со скорость разработки динамических языков (как Python).
Читать дальше →

Видеоматериал с семинара RSUG: Smalltalk в России

Время на прочтение1 мин
Количество просмотров849
22 октября новоорганизованная группа RSUG (Russian Smalltalk User Group) провела первую встречу-семинар. Целью данной встречи являлось знакомство и освещение текущего состояния рынка.

Мы бы хотели поблагодарить учебный центр Avalon за предоставленную площадку и техническую поддержку. На сегодняшний день доступен видеоматериал с прошедшего семинара.

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

Если вы мало знакомы со Smalltalk, то рассказ Бориса Беркгаута вам должен понравится. Он в простой и доступной форме демонстрирует основную «магию» языка.

Анонс: Smalltalk в России. (Санкт-Петербург, 22 октября)

Время на прочтение1 мин
Количество просмотров636
Сообщество российских Smalltalker-ов (RSUG) приглашает всех желающих
на свой первый семинар RSUG'09.
Семинар пройдет в городе Санкт-Петербург, 22 октября, в 18.30 в учебном центре
«Авалон» (Схема проезда)

Есди вы хотите прийти и принять участие в семинар
зарегистрируйтесь, пожалуйста, на www.rsug.ru.
Регистрация необязательна, но она поможет нам оценить
предполагаемое число участников и подготовиться должным образом.

Будут следующие доклады:
1. Знакомство с Smalltalk
2. Smalltalk в промышленном проектировании
3. Smalltalk в распределённых бизнес-приложениях
4. Smalltalk в распределённых системах реального времени
5. LiveCoding

Контакты:
www.rsug.ru
groups.google.com/group/sugr

Ближайшие события

IntelliJ IDEA Atlassian Connector — плагин для удобной работы с Jira

Время на прочтение2 мин
Количество просмотров7.3K
На самом деле, заголовок звучит немного неверно, так как данный плагин позволяет работать не только с Jira, но и с остальными продуктами Atlassian (Bamboo, Crucible, FishEye). Но сейчас мне бы хотелось сделать акцент именно на Jira.
С Jira я плотно столкнулся на работе и не могу сказать, что работать с ней такое уж большое удовольствие. А на днях мне рассказали о такой интересной вещи как Mylyn, и его работе с Assembla через Eclipse, о чем я так же скоро собираюсь написать. И мне стало интересно, а есть ли что то подобное и для пары Jira + Inellij IDEA. Оказалось, что есть. Итак, поехали.
Читать дальше →

My escape(html)

Время на прочтение4 мин
Количество просмотров1.4K
Цель поста — покритикуйте.

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

Замечание. В моём блоге в базе всегда хранится никак не обработанный оригинал пользовательского ввода. Задача функции — сделать из этого ввода html, пригодный для отображения. В простейшем случае функция может вызываться во время отображении контента (в шаблоне или view). Для улучшения производительности можно завести отдельное поле в базе, которое будет результатом работы функции экранирования, и будет обновляться во время обновления контента.

Итак, философия функци:
Читать дальше →

Язык — отражение образа мыслей его автора

Время на прочтение2 мин
Количество просмотров1.7K
Цитата из книги «Learning Perl, 5th edition»:
In fact, a big part of learning Perl is actually learning how Larry thinks. Therefore, once you can think like Larry does, you know what Perl should do. But while you’re learning, you’ll probably need to look into the documentation.

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

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

Perl


«There's more than one way to do it.»
«Simple things should be simple, and hard things should be possible»
«Perl is a mess and that's good because the problem space is also a mess.»
«We will encourage you to develop the three great virtues of a programmer: laziness, impatience, and hubris.»
«Perl is designed to let you program naturally. Whatever you think natural means.»
«Perl is unique, not just among scripting languages, but among computer languages in general. It's the only computer language consciously and explicitly designed to be postmodern. All other computer languages are still stuck in the modern era to some degree.»
Larry Wall

«Perl Makes You Happy!»
Tim Bunce

Python


Beautiful is better than ugly.
Explicit is better than implicit.
Читать дальше →

Язык Nemerle

Время на прочтение1 мин
Количество просмотров2.3K
Влад Чистяков, один из активных разработчиков языка Nemerle, начал цикл статей о нем. В отличии от существующих статей, которые ориентированы на опытных программистов, этот цикл подходит как для начинающих программистов, так и для опытных, но не знакомых с платформой .NET.

Введение от автора:

На данную работу меня вдохновила книга Кернигана и Ричи – «Язык С». Много лет назад я учился программировать по этой книге. Мне очень понравилась концепция изложения использованная в этой книге. В этой книге, вместо того чтобы взять одну тему и разобрать ее по косточкам, попутно заостряя внимание на мелких деталях, давался минимум, необходимый человеку, чтобы начать программировать на «C», а затем приоткрывался аспект за аспектом. Причем изложение давалось не на абстрактных примерах, которыми так увлекаются проповедники функционального программирования, а на примерах простых, но все же из этой жизни. Понимая, что прыгнуть выше Кернигана и Ричи очень тяжело, я решил не соревноваться с ними в креативности, а просто повторить их методологию, но с расчетом на Nemerle.

Язык Nemerle

Magento, подписка на новости во время чекаута

Время на прочтение6 мин
Количество просмотров1.8K
Оу, оказывается здесь даже есть целый один пост про разработку под Magento. Мне тоже есть что сказать. Интересно, будет ли это кому-нибудь интересно…

Итак, задача — добавить галочку «Получать новости» к одному из шагов чекаута (checkout — «проход через кассу»).


Читать дальше →

Processing 1.0 и почти закон всемирного тяготения

Время на прочтение5 мин
Количество просмотров2.7K
О Processing я слышал давно, но посмотреть что это из себя представляет никак не доходили руки. И вот у меня появилась идея сделать свой мирок с гравитацией и силами(есть точки и вокруг них летают частицы). В дальнейшем можно это как-то красиво обыграть и сделать крутой скринсейвер. Прототип решено было изготовить при помощи виновника торжества, а именно Processing 1.0.7.
Читать дальше →

Президент России подписал указ об утверждении Дня программиста

Время на прочтение1 мин
Количество просмотров786
Указ, который, который уже неоднократно упоминался на Хабре, вступает в силу.
Отныне 13 сентября официальный День программиста! (12 сентября — в високосные годы)
С наступающим профессиональным праздником, коллеги!!!
Читать дальше →

Вклад авторов