Posts By Kiri11

Расписание Open Source

Когда вчера меня опять 4 человека спросили в аське, к какой нам паре, я решил написать предельно простую программу, которая отвечала бы на вопросы по расписанию (примерно в том же стиле, как я ответил бы в аську). Пока что только для группы ПМИ-22.

Итак, качайте:

Расписание 0.2

Source code

TODO:

  • сделать значок приложения;
  • заменить говносвитч на функцию, которая будет определять, числитель или знаменатель;
  • сделать инет-страничку с подобным функционалом или даже аськобота;
  • перенести на Symbian, JavaME, iOS и Android.

Буду рад сообщениям об ошибках или идеям новых фич.

PS. Кто хочет помочь в разработке, пишите.

История одного байта

Мне не хватало байта. Всего одного. Да, да. Того самого, что из восьми бит состоит. Что? Нет, я не псих, хотя одному богу известно, сколь тонкой была граница, отделявшая меня от этого состояния. Но все по порядку.
Я программер. Но не просто программер. Я принадлежу к касте, которую иногда называют эйсиэмпишниками. Вы знаете, что это такое? Я объясню, если потерпите. Мне никак не обойтись без специфики, иначе вы не сможете понять дальнейшее.

Мы решаем задачи на acmp.ru, но вы не подумайте, что все просто. На этом сайте рейтинг по длине кода, и тысячи кододрочеров упихивают настоящие шедевры в пару сотен знаков. Это на все про все. Переменные, там то да се… Представили, да? Например, циклы зачастую пустые, а весь сок в самом заголовке. Все переменные непременно должны быть по одной букве. Вы проникаетесь потихоньку? Коды таких игрушек вылизываются так, что вам и не снилось, исходники переписываются далеко не один раз. Мне мало просто решить задачу. Я должен впихнуть ее в эти чертовы байты и стать первым! Ограничение по переменным, по размеру кода в целом, по размеру каждой процедуры и по числу вызовов. Вы думаете это все? 😉 H-е-ет, дорогие мои. Существуют еще десятки способов укоротить код, но рассказывать я их не буду, это личное.

Любой средней руки программер, поставь его в подобные условия, застрелится на второй день. Вообще, по моему убеждению, парни на acmp.ru имеют стальные нервы и неукротимую волю к победе. Мы редко общаемся с обычными программерами — нам, в общем, не о чем разговаривать. И не потому, что мы снобы или гордецы. Совсем необязательно. Нам трудно представить себе программирование, когда код не ограничен по объему. Что-то непонятно? Напиши комментарий. Захотел – написал еще пару функций с говорящими названиями. Это как разные планеты, и я надеюсь, вы поняли, почему.

Это как красивый белый океанский круизер в бескрайних океанских просторах, плыви куда хочешь. А вы попробуйте на нем в финских шхерах порулить. 😉 Или вдевать нитку в иголку среди ночи. Причем, черную нитку.

Жизнь — дерьмовая штука

По крайней мере, так считают многие «взрослые» люди, с которыми мне довелось общаться. Они постоянно жалуются на свою работу, неудовлетворительные отношения и раздолбаев-детей, которые никак не хотят становиться такими, какими хотят их видеть родители. Жизнь для этих людей — это бесконечная карусель разочарований, неприятностей и несбывшихся надежд. Они встают рано утром с больной головой, заливают в рот пару литров кофе и едут на работу в состоянии, которому позавидовали бы самые отъявленные зомби. Они ненавидят свою работу и считают, что их занятия бессмысленны и никому не нужны. Но, не смотря на это, они продолжают делать эту работу, день за днём, год за годом. Они продираются сквозь собственную жизнь, надеясь, что всласть поживут потом, когда отработают 10-20-30 лет. Так вот, это всё херня. Когда вам будет пятьдесят, вы настолько устанете от такой жизни, что единственным вашим желанием будет лечь и сдохнуть. Когда вы выйдете на пенсию, вы не поедете в Африку охотиться на львов, потому что солнце плохо сказывается на вашем давлении. Вы также не поедете на Северный полюс, потому что у вас артрит, и холод — не лучшее для него лекарство. Южный полюс отпадает ещё и потому, что вы недолюбливаете пингвинов, что неудивительно, учитывая ваш 30-летний стаж работы сисадмином. Так что же вам остаётся? Поездки на дачу и вечера в уютной компании телевизора, вот что. Прожив 30 лет в постоянной борьбе с самим собой, у вас просто не останется сил на то, чтобы оторвать задницу от дивана.

А теперь подумайте об этом. Вы действительно хотите для себя такой жизни? Если вы не из тех странных людей, которые наслаждаются своим горем и ничтожностью, то ответ, скорее всего, будет «Нет». Но в таком случае, позвольте спросить: какого хрена? Почему вы продолжаете нарезать круги по одному и тому же маршруту, который в итоге приведёт вас к деградации и саморазрушению? Чего вы ждёте? Чёртову волшебную фею, которая принесёт вам эликсир счастья? Знака свыше? Тогда поздравляю: тот факт, что вы сейчас читаете этот текст, и является таким знаком. Усатый бог наконец-то выделил минутку в своём плотном графике, чтобы взглянуть на вашу никчёмную жизнь. И знаете что? Ему ни разу не нравится то, что он видит. Да что уж там, ему кажется, что вы просто эпический идиот, который продолжает мучить сам себя и не делает ровным счётом ничего для того, чтобы что-то изменить в своей жизни.

Потому что это именно то, в чём заключается жизнь — изменение. Посмотрите вокруг: всё меняется. Деревья вырастают, люди рождаются и умирают, взрываются атомные электростанции… Так почему же вы застряли в бесконечном цикле? Потому что изменение — штука непростая. Гораздо проще сидеть в своей зоне комфорта и обвинять во всём обстоятельства и четырёхмерных ящериц. Однако вы должны понять одну очень простую штуку: за всё надо платить. И в данном случае ценой будет ваша собственная жизнь. Если вы спустите её в унитаз, второго шанса уже не будет. Вы не респавнитесь на ближайшем кладбище и не попадёте в какой-то там загробный рай, где вас будут ждать блондинки с четвёртым размером и бесконечные запасы пива. На самом деле, загробный мир — это всё та же идея «жизни на пенсии», доведённая до маразма. С тем только отличием, что здесь «выход на пенсию» означает смерть, а это, по словам очевидцев, не очень-то весёленькая штука.

Так зачем я тут распинаюсь? Жизнь — дерьмовая штука, и она будет такой же дерьмовой после того, как вы умрёте. Ну может чуть-чуть более дерьмовой, если вы были действительно хорошим парнем. Она не зависит от вас, и, как бы вы не пыжились, вам не изменить саму жизнь. Дети в Африке всё так же будут голодать, а продажные чиновники — покупать яхты на ваши деньги. Всё, что вы можете изменить — это своё отношение к жизни, и понять, что же на самом деле для вас важно: изо дня в день впахивать на нелюбимой работе с призрачной перспективой абстрактной «пенсии», или же что-то другое. Вы можете хотя бы попытаться изменить ход своего маленького кусочка жизни и сделать его немного лучше. Я не призываю вас прямо сейчас встать из-за стола, напиться до беспамятства и проснуться в тундре в обнимку с медведем. Всё, что вам нужно сделать — это взглянуть на свою жизнь глазами другого человека. Без дураков, просто взять и посмотреть, будто это не вы, а сосед дядя Паша. Если у вас возникло ощущение: «Блин, вот же ж идиот-то!», поздравляю. Всё, что вам осталось сделать — это начать потихоньку вносить мелкие изменения.

Выключить комп и лечь спать в 11 вечера для начала.

Сломанный телефон

Клемент Валла провел эксперимент: случайные люди за 2 цента должны были повторить проведенную от руки линию предыдущего человека.

Кроме красивых картинок, это ещё и отличная демонстрация, как умножаются ошибки при передаче информации  (например, при распространении слухов), особенно если в цепочке присутствуют тролли.

Участников находили через сервис Mechanical Turk.

Люди при передаче «знания» играют большую роль. Чаще — негативную. Учитель, рассказывающий об «теме икс», примешивает к материалу значительную часть индивидуальности. Немного иначе понимает, немного иначе интерпретирует, немного иначе рассказывает. Может быть, делает это даже лучше первоисточника. Но чаще всего – значительно хуже. Иначе. Не так, как первоисточник, который он пытается сымитировать.

Терминалы воруют ваши деньги

На терминалах QIWI обнаружили троян. Вмешиваясь в работу процесса maratl.exe, запущенного в операционной системе терминала Windows, он может подменять номер счета, на который пользователь осуществил платеж.

Заражение терминала может происходить через USB-флешку. Как только такая флешка подключается к терминалу (например, обслуживающим персоналом), происходит автозапуск бэкдора BackDoor.Pushnik, представляющего собой вредоносную программу в виде исполняемого файла, созданного в среде Delphi (!!!). В дальнейшем BackDoor.Pushnik получает с сервера первого уровня конфигурационную информацию, в которой присутствует адрес управляющего сервера второго уровня. С него, в свою очередь, исходит задача загрузить исполняемый файл (троянскую программу Trojan.PWS.OSMP) с третьего сервера.

Чуваки из «Доктор Веба» обещали почистить, но сами знаете…

Итак, мои рекомендации юзерам терминалов:

  1. никогда не выкидывайте чек до поступления бабла на счет
  2. в случае чего качайте права
  3. после поступления денег чек лучше мелко порвать или сжечь
  4. уничтожайте всех дельфистов в зоне досягаемости
  5. ???
  6. PROFIT!

    Обзор SSD OCZ Vertex 2

    Некоторое время назад скопились лишние деньги. Куда их потратить, понятно сразу.

    Конечно, в железо! Но в какое?

    Первоначальный отбор прошли:

    • Intel Core i5-2400
    • Nvidia GTX460
    • какой-нить SSD

    Для проца надо и мать менять, неохота.

    Видюшка? Dead Space 2 и так идет, а больше ни в чего не играю.

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

    После досконального изучения вопроса, был выбран OCZ Vertex 2 аж на 90Гб. Многовато, но я решил не мелочиться.

    Vertex 2 имеет в своей основе контроллер SandForce SF-1200. Согласно спецификациям производителя, максимальная скорость чтения данного SSD составляет 285 Мб/с, записи — 275 Мб/с. Предварительные тесты показали, что контроллеры SandForce в целом действительно обладают более высокой производительностью, чем изделие Indilinx. Тогда как стандартный подход к увеличению скорости I/O операций с мелкими файлами предполагает простое наращивание кэш-памяти, здесь сами заложенные SandForce алгоритмы работы чипов обеспечивают новый уровень быстродействия. Как вы увидите в дальнейшем, он действительно способен существенно превзойти все существовавшие ранее решения, особенно когда речь заходит о нелинейных операциях с файлами.

    Далее в обзоре будет ответ на вопрос:

    Что же все-таки дает SSD и стоит ли его покупать??!

    Как ничего не забывать

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

    0. Сначала я все запоминал. В школе это работало. Дел было мало и я даже почти не пользовался дневником.

    1. Потом дел стало больше и стек памяти стал переполняться. Такие моменты довольно неприятны и я стал записывать. Листки, блокноты и тетрадки терялись и забывались. Стало еще хуже: если раньше я просто не мог запомнить, что нужно сделать, теперь я не мог вспомнить, куда я это записал.

    2. Следующий этап: заметки на телефоне. Это было значительно лучше. Хотя телефон тоже можно забыть, он может разрядиться, да и текста на нем особо не попишешь (гребаный Т9). А после случайного удаления важного файла я перешел к следующему этапу.

    3. Evernote. Те же заметки, только в облаке. Можно зайти с любого устройства, главное знать логин-пароль.

    4. Текущий этап. Недавно наткнулся на программу Wunderlist. Поверьте, это офигенная прога. Каждый, кто хоть изредка что-то забывает, должен установить её. Очень простой и удобный интерфейс. Ничего лишнего, но все необходимое присутствует. Есть даже русский язык! Жаль, что из мобильных приложений пока только iOS и Андроид. Зато есть веб-приложение (можно им и обойтись).

    5. Следующий этап: избавиться от Wunderlist. Выполнять задачи сразу, а не записывать их. То немногое, что приходится откладывать, запоминать железно. Натренировать чувство времени и выкинуть часы.

    Что нас ждет в 2011?

    В 2011 будет два основный тренда: это мобильность и облака. В общем-то они взаимосвязаны.

    Че еще за мобильность?

    • Это еще большее увеличение доли смартфонов, в основном на Android и iOS;
    • Это гигантский вал планшетов, которые начнут вытеснять нетбуки (тоже Android и iOS). А ноутбуки продолжат вытеснять персоналки.
    • Это скачок 3G и Wi-Fi трафика с мобильный устройств => обязательная оптимизация всего веба под тач-интерфейс.

    Итак, интернет становится все быстрее и дешевле, а типичный американец покупает айпад не потому, что не хватает денег на нормальный ноут, а потому что у него уже есть парочка.  А то че? У всех есть, а у меня айпада нету, че я хуже чтоли, бля? Ниче не хуже! Вот, да и стоит всего $499.

    А когда у тебя несколько разных устройств, хочется не зависеть от одного конкретного. Начал читать книгу на компе, потом в дороге продолжил на телефоне с того же места; добавил заметку, и она синхронизировалась на всех устройствах; прошел в Crysis 2 уровень, но мама с компа согнала — не беда, доиграем на планшете (с того же места, естественно). Это не фантастика, это облака.

    Че еще за облака?

    Точнее облачные сервисы. Это когда данные хранятся не на локальном компьютере, а на сервере («в облаке»). Также и вычисления могут производится в облаке. В предельном случае вообще все что нужно — это браузер.

    У всех есть почта. Но кто использует Outlook? Большинство просто заходят на сайт своего мейл-провайдера, не устанавливая никаких дополнительных программ. Это — простейший пример облака.

    Гугл разрабатывает Chrome OS, в которой браузер — чуть ли не единственное приложение во всей системе. Остальное — веб. Только представьте: включаете комп, вводите свой гугловский аккаунт — и все приложения, все закладки, история, почта… Вообще все — открывается и уже синхронизировано. На любом компе. На любом ноутбуке. Просто и быстро.

    Но пока это не совсем так, я лучше пробегусь по уже существующим и активно развивающимся облачным сервисам.

    Че еще за сервисы?

    Dropbox

    Самое известное облачное хранилище данных. Действует как интернет-флешка: загрузил файлы — они там хранятся, можно качнуть самому или послать ссылку другу.  Если стоит клиент, он автоматически синхронизирует свою папку. Кстати говоря, я уже давно активно использую дропбокс: почти все, что можно скачать с этого сайта, размещено именно там.

    Кстати рекомендую особо важные файлы хранить именно в облаке — вероятность поломки серверных винчестеров в RAID-массиве дропбокса на порядок меньше, чем вероятность поломки обычного домашнего жесткого диска.

    • Больше не придется посылать самому себе файл по почте.
    • Больше не придется разделять архивы на куски по 10Мб, чтобы mail.ru соизволил их загрузить.
    • Больше не придется расстраиваться из-за забытой флешки с лабой.
    • Больше не придется мучиться с файлообменниками, чтобы разместить в интернете крупный файл.
    • Больше не придется плакать над потерянным файлом со всеми паролями, который был в единственном экземпляре на внезапно отказавшем жестком диске.

    Особенности:

    • дают два гига (по моей ссылке — 2.25Gb).
    • можно даже не ставить клиент, но в веб-интерфейс нельзя закинуть файл более 300Мб.
    • можно выбрать только одну папку для синхронизации.
    • можно скопировать ссылку на файл и даже укоротить её.
    • есть клиенты под Win, Mac и Linux.
    • есть клиенты под iOS, Android и Blackberry.

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

    Sugarsync

    Отличия от Дропбокса:

    • дают пять гигов (по моей ссылке — 5.5Gb). Значительно больше, чем дропбокс.
    • веб-интерфейс принимает файлы только до 100Мб.
    • можно синхронизировать любые папки
    • можно грузить файлы по почте.
    • можно совместно работать над файлами.
    • есть поддержка потокового медиа.
    • нет клиента под Linux.
    • зато есть под WinMobile и Symbian!
    • грузит быстрее (судя по отзывам).

    В общем, Dropbox более популярен и стабилен, но Sugarsync по многим параметрам выигрывает.

    Решать вам, но одно я могу сказать точно: если облако в основном используется для заметок, то тут лучше подойдет Evernote.

    Че еще за Evernote?

    Если кратко — лучший сервис для хранения текстовых документов.

    Особенности:

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

    Мне больше нечего сказать, тут надо просто пробовать.

    Решать вам, но одно я могу сказать точно: если Evernote в основном используется для того, чтобы хранить в нем список дел, то тут лучше подойдет Wunderlist.

    Че еще за Wunderlist?

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

    Теперь об игрушках.

    В этом разделе я расскажу про систему OnLive. Это революционная система для игр в облаке. Вся графика обрабатывается на сервере, а в компьютер передается только итоговая картинка!

    То есть неважно, насколько мощный у тебя комп: пойдут любые игры, лишь бы был достаточно толстый интернет-канал (просят как минимум 3Мб/с).

    • не нужно устанавливать, настраивать и ждать пока запустится игра — всё почти мгновенно.
    • можно платить только за время игры (аренда).
    • новинки доступны сразу после выхода.

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

    А в чем подвох?

    В том, что сервера Onlive есть пока только в Америке и Канаде. До рашки такое доберется не скоро. Если быть точным, то когда рак на горе свистнет.

    Кстати в самом начале (про мобильность) я тоже говорил про нормальные страны, подразумевая, в первую очередь, Европу и США.

    Книжки по C# с исходниками

    По шарпу много книжек, лично мне нравится, как Petzold пишет.

    Вот его книжица про шарп с WinForms (77.28MB).

    Есть еще WPF.
    Он более легкий, удобный, функциональный (на мой взгляд), да и более современный в конце-концов.
    Вот его книжица про шарп с WPF (12.67MB).

    Книги я рекомендую читать так:

    Сначала читаем первые 44 страницы из книги по WinForms (до 62 в файле), а потом уже переходим на WPF. Предупреждаю, что код в книге кривой, смотрим приложенные файлы.

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

    Да, WinForms сложнее, но зато про них знает препод.

    HTML5

    Когда заходит разговор про инновации в инете, принято изрекать с умным видом:

    бла-бла-бла эйчтээмэлпять бла-бла-бла…

    Ну правильно, «вебдваноль» повторять уже всех задолбало, надо же о чем-то поговорить. Что же в нем такого классного?

    Вообще-то много чего, чаще всего упоминают:

    • Много новых красивостей, включая тени, анимацию, закругленные углы и 3D;
    • Новые теги, такие как <audio> и <video> позволяющие обойтись без всяких флешей;
    • Возможность браузеров быть средой для настоящих, серьёзных, приложений.

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

    Вообще говоря, название HTML5 не совсем верно, потому что HTML уже отошел от версионности. Просто существует набор функций, которые могут поддерживать браузеры. О состоянии на данный момент можно узнать тут наглядно или тут подробно.

    Как обычно, IE отстает (ну ладно, девятый уже почти догоняет), а Хром впереди планеты всей.

    Чтобы не быть голословным, сделал красивую штуковину на HTML5 специально для вас (никакого Flash, исходники честно стырены у Юры Вишневского).

    Вот еще списочек интересного в инете на HTML5:

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