Home
Бесцельная трата времени...
 
[Most Recent Entries] [Calendar View] [Friends]

Below are the 20 most recent journal entries recorded in Дима's LiveJournal:

    [ << Previous 20 ]
    Wednesday, January 1st, 2020
    9:30 pm
    Барахолка
    Здесь список б/ушного инвентаря (в основном компьютерного) на продажу. Совсем хлам, который выбрасывать жалко, отдам даром.

    Read more... )
    Tuesday, February 9th, 2010
    9:11 pm
    В рамках подготовки к отъезду сложил в пакет 4 зарядки от всяких девайсов и зарядку для аккумуляторных батареек. Почему до сих пор не придумали стандарт на разъемы электропитания? Насколько меньше бабла пришлось бы тратить на эту херь.
    6:14 pm
    Мысли вслух
    Набрел тут на сайт правительства Норвегии: http://www.regjeringen.no/en.html.
    Интересно, почему они отказались от обычной практики размещать правительственный сайт в домене gov.<национальный домен>? Сделано ли это из соображений благозвучности?
    Thursday, January 28th, 2010
    7:31 pm
    Нашел пепяку во френдленте
    http://www.formspring.me/command0 - можно задавать аффтару вопросы и, возможно, получать ответы. При этом все-все-все публикуется и остается.
    6:56 pm
    Чего жутко не хватает в Python
    так это объектов с определенным временем жизни. Пожалуй, одна из самых ахуенных вещей в С++. Вместо этого приходится постоянно идти на заморочки вроде "зарегистрировать/убить все зарегистрированные". Интересно, возможно ли вообще такое в интерпретируемом GC-языке? Мне кажется, что возможно, но в subj не появится никогда.
    Tuesday, December 15th, 2009
    8:28 pm
    В рамках борьбы за урожай тишину компа прикупил сегодня новую железку - Scythe Quiet Drive - корпус для харда, который уменьшает шум и улучшает тепловыведение.
    Описание процесса )
    Еще вчера задумал прикупить себе флэш-диск. Сейчас у меня и система, и файлы хранятся на одном диске, из-за чего все порой тормозит. Особенно это заметно при работе в виртуалке - ворд грузится черт знает сколько. При этом процессора и памяти хоть отбавляй. Значит, надо что-то мутить с диском. Флэш-диски хороши тем, что у них задержка между запросом данных и началом чтения составляет доли миллисекунды, тогда как у обычно механического харда - порядка десятков миллисекунд. Следовательно, они хороши при большом количестве чтений из разных мест - идеальная вещь для хранения системы. В общем, надумал приобрести небольшой диск, гигов на 50-100, чисто для системы, а имеющуюся Барракуду на 500 гигов отдать чисто под данные. Хотел приобрести вот эту модель либо аналог на 64 гига. Однако после чтения обзоров желание поувяло. Как оказалось, имеющиеся сейчас "недорогие" флэш-диски (в пределах 10к) в основном являются дешевым дерьмом. В частности, у сабжа задержка записи превосходит механические диски в разы! Значит, обновления системы будут ставиться по полчаса. Ну его нах! Хорошие модели рвут обычные харды в клочья по всем показателям, но и стоят некисло - 15-20к и больше. Топовый Intel X25 160 Гб стоит больше 25к. Но он мегакрут. Но платить СТОЛЬКО за хард, сколь бы крут он ни был, я не собираюсь. В общем, пришлось задушить в себе желание прикупить новую игрушку - решил подождать где-нибудь полгодика, пока цены на флэш не упадут еще раза в два и мусор не сменится действительно достойными недорогими модельками. В качестве утешения прикупил вышеописанную игрушку.
    Sunday, December 6th, 2009
    7:48 pm
    Внезапно обнаружил у себя в Google Reader несколько рекомендаций подписаться на каналы по теме The Elder Scrolls. При том, что никогда раньше на такие каналы не подписывался. Хотя активно смотрел через Гуглохром сайты, посвященные Морровинду.
    А залез я туда, чтобы написать текстик для диплома относительно выдачи пользователю рекомендаций на основе его активности на сервисе. Что ж, у некоторых выдача рекомендаций уже вовсю работает.
    Friday, December 4th, 2009
    8:12 pm
    Мысли об ActionScript
    В последние дни довелось немного подевелопить на ActionScript'е (если кто не знает - так официально называется флэш). Как известно, языки бывают со статической и динамической типизацией. В таком случае ActionScript - это уродливый мутант, получившийся в результате их скрещивания.
    Похоже на Javascript, в котором переменные объявляются с типами:
    var n:Number.
    Да, типы бывают двух типов видов: запечатанные и динамические. Запечатанные - это примерно "как в С++" - имеют определение, в котором задан набор свойств, полей и методов. Все обращения к ним проверяются, и обращение к полю, не прописанному в определении, приводит к ошибке, равно как и попытка присвоить переменной значение не того типа. Динамические объекты создаются знакомой по Javascript нотацией { <свойство> : <значение> } и похожи на объекты из Javascript или Python, т.е. никакой статической проверки типов для них не производится. И все замечательно до тех пор, пока эти две системы не соприкасаются. А потом происходит нечто следующее:

    var n:Number;
    var o:Object = {};
    n = o.some_property

    Все. В этот момент весь контроль типов идет нахрен, и присвоить можно что угодно и куда угодно. То же самое с массивами:

    var a:Array = new Array(10);
    var n:Number = a[4];

    Смесь нетипизированных массивов и статической типизации - это что-то из времен C# 1.0, когда я еще даже не слышал про такой язык, а кодил на благодатном Borland Pascal. Правда, разработчики C# осознали свой фейл и во второй версии языка таки добавили Generics, а вот флэшеры как-то не слишком этим озаботились. Да, вообще обилие структур данных поражает. Кроме массивов, в языке есть еще тип словаря Dictionary, умеющий сравнивать объекты исключительно на идентичность. Все.
    В принципе, для языка рисования анимаций этого, может быть, достаточно. Печалит то, что на нем порой приходится реализовывать что-то более сложное. Ибо альтернативы нет. Ну есть еще брат-близнец Javascript, который изначально предназначался для мигающих кнопок и бегущих буковок. Конечно, с тех времен он оброс кучей библиотек, позволяющих делать прикольные сворачивающиеся окошки, ползунки и всплывающие подсказки, но то, что лежит в основе, саму основу языка иначе как убожеством назвать трудно.
    Было бы здорово, если бы это УГ сдохло и на смену ему пришел какой-нибудь вменяемый язык программирования. Вот только альтернативы на горизонте не видно. Ибо Javascript - это работает, а внедрить в браузеры что-то новое - это геморрой, каких свет не видывал. Ибо когда это новое появится, обязательно найдутся те, кто не захочет обновляться и предпочтет остаться с не поддерживающим его Исследователем-хер-знает-сколько-летней-давности.
    В общем, *script'ы меня угнетают. А писать на них угнетает еще больше. Но, видимо, на ближайшее время придется с этим смириться.
    P. S. Хотел четко и ясно написать про то, что ActionScript/JavaScript - говно, а получилось как-то уныло.
    Tuesday, November 24th, 2009
    11:46 am
    Было бы здорово в обязательном порядке снабжать машины девайсом, бьющим водителей током, если они удерживают бибикалку больше двух секунд.
    Wednesday, November 18th, 2009
    2:11 pm
    За окном разбирают собирают елку. Вроде только недавно был этот же снег и стояла елка.
    Wednesday, November 4th, 2009
    10:48 pm
    Апокалиптическое
    Тем временем черное пятно в левом верхнем углу монитора, пропавшее несколько дней назад, появилось снова и стремительно разрастается. Очень надеюсь, что обойдется без отправки моника в ремонт. 
    Thursday, October 29th, 2009
    11:03 pm
    Selenium. Автоматическое заполнение тестовой БД.
    Сегодня в рамках диплома написал автоматическое заполнение БД тестовыми данными через веб-интерфейс.
     Ситуация такая: забив целиком на проектирование приложения, я решил писать "от фичей", т.е. в каждый момент ставить в качестве задачи написание одной небольшой фичи и не делать больших заделов на будущее. В результате схема БД меняется достаточно часто, в основном в сторону добавления новых полей у имеющихся таблиц. Соответственно, при каждом обновлении схемы старые данные можно смело отправлять на помойку, а вмесо них вводить новые. Печально то, что это приходится делать вручную, т.е. вбивать текст, жать на кнопочки и т.п. Если бы приложение не зависело от внешних сервисов, то можно было бы просто написать Python-скрипт, заполняющий базу. Собственно, именно так и происходит у меня при тестировании бэкенда. Однако зависимость от внешних сервисов есть: OpenID. При авторизации через OpenID провайдер (Provider) и зависимая сторона (Relying Party, перевод из вики ну абсолютно уродский, но ничего лучше я сам придумать не могу) устанавливают общий секрет и хранят его у себя. Делают они это через HTTP. Реализация, которой я пользуюсь, требует еще и наличия Javascript, причем для очень интересной вещи: когда пользователь отсылает на сервер свой OpenID, ему возвращается страница с полностью заполненной формой, содержащей параметры его OpenID-запроса, и эта форма автоматически посылается обратно при событии onload.

    Read more... )



    Current Mood: accomplished
    Tuesday, October 13th, 2009
    10:42 pm
    Джанго. Сериализация моделей.
    Тем временем диплом понемногу пишется, за прогрессом можно следить здесь. Сейчас занимаюсь переписыванием фронт-энда. Сначала там был чистый HTML, т.е. сервер выбирал данные из базы и генерил на их основе HTML, который выдавался пользователю. Никакого жабаскрипта. Настала пора перевести это на AJAX: данные не будут включаться в HTML, а будут загружаться жабаскриптом по мере надобности уже после загрузки страницы. Соответственно, нужен способ переводить экземпляры Джанго-моделей в JSON.


    Sunday, September 13th, 2009
    8:05 pm
    Немного ненависти к динамической типизации.
    Итак, в рамках работы над дипломом начал использовать связку Python + Django. Одной из особенностей Python является динамическая типизация, т.е. возможность применения к объекту конкретной операции выясняется только во время выполнения, а не по исходному коду программы. Есть инструменты, способные находить недопустимые операции на основе анализа всевозможных путей выполнения программы, но это явно метод удаления гланд через жопу.

    В Python есть функция isinstance(значение, тип), возвращающая True, если значение относится к данному типу. Благодаря ей можно писать код вида

    if isinstance (a, type):
    #Сделать что-то одно
    else:
    #Сделать нечто совершенно другое


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

    При динамической типизации все гораздо веселее - если a пришло откуда-то извне, то тип его неизвестен, и фиг поймешь, что именно вернет isinstance.

    Только что столкнулся с примером вышеописанного в Django: можно написать как include(admin.site.urls), так и include('admin.site.urls'), причем правильный вариант зависит от того, является ли admin.site.urls модулем либо объектом, определенным в модуле admin.
    Friday, September 11th, 2009
    2:21 am
    Sunday, August 30th, 2009
    3:49 pm
    Как создать пользовательскую базу на новом сервисе?
    Предположим, у нас есть только что написанный замечательный сервис, на который надо каким-то образом заманить пользователей. Вариант первый - зайти вконтакт и разослать спам по всем контактам (ужос-ужос-ужос, как я мог даже подумать о таком!!!). Вряд ли это принесет оглушительный успех. Более здравая идея - написать клиентское приложение для того же вконтакта. Это даст уже готовую пользовательскую базу - не надо создавать свою.

    Однако под пользовательской базой я понимаю не только самих пользователей, но и связи между ними. Связи являются жизненно важным элементом планируемого сервиса (кстати, неплохо бы дать ему нормальное название из одного слова, а то писать "сервис" уже задолбало. Впрочем, один класс - одна задача один пост - одна тема, поэтому придется подождать), потому что шарить свое "избранное" надо с кем-то. Данная мысль была навеяна использованием Delicious - в нем есть опция "добавить пользователя в контакты". И все. Нужен поиск. Только поиск не на основе имени-фамилии, а на основе общности интересов.

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

    Итак, вопрос - следует ли делать сервис с собственной пользовательской базой, или же предоставить платформу, служащую дополнением к уже имеющемуся сервису вроде социальной сети? И если второе, то как должны интегрироваться между собой платформы, работающие с разными сервисами (на буржуйском это называется модным словом federated... федеративное, что ли? хз как перевести нормально)?
    Friday, August 28th, 2009
    12:03 am
    Идея на диплом
    Срок сдачи диплома приближается стремительным домкратом, интересных проектов, к которым я испытывал бы непреодолимое желание прибиться, в поле зрения нет, так что приходится что-то придумывать самому.

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

    Полная версия на Google Docs.

    Комментарии?
    Monday, July 27th, 2009
    9:00 pm
    Пытаясь доказать долбоебу, что ты не глупее его, не опускаешься ли ты сам на его уровень?
    Monday, June 22nd, 2009
    8:56 pm
    Охуевшие менеджеры
    Довели до голодной смерти дельфина.
    http://evgenii68.livejournal.com/5364.html - убивать нафиг надо за такое.
    Tuesday, June 16th, 2009
    5:50 pm
    О копирасте
    Недавно решил заиметь свежевышедший альбом Мановара. Первым делом попытался его честно купить, однако magiccirclemusic.com на мои попытки ответил крайне информативным сообщением Transaction Failed, в результате чего было решено качнуть его с торрентов. Однако ни на piratebay, ни на tfile и остальных торрентах его не было. Приуныл было я, однако вспомнил о великом и ужасном Google. Запрос "Manowar Thunder in the Sky" (заметьте, здесь даже отсутствует слово "скачать") выдал по первой и второй ссылке посты на форумах, в которых были ссылки на альбом. Далее оставалось только дождаться, пока истечет время ожидания на рапидшаре.
    Так вот, к чему я это. Всего пару месяцев назад прошел процесс на thepiratebay.org, который копирасты и их пособники обвиняли в том, что он уводит у них какие-то астрономические цифры прибылей, помогая распространять закопирайченный контент. По результатам процесса основателям трекера дали по году тюрьмы и наложили штрафы в размере 1 миллиона долларов на каждого. Одним из аргументов защиты было то, что c помощью гугла искать нелегальный контент можно ничуть не хуже, чем с помощью торрент-трекера, однако суд на этот аргумент почему-то забил. Интересно, что же на самом деле приносит больше убытков, раздача Windows Vista или 2003 офиса через торрент или куча ссылок на скачку альбома на следующий день после релиза? Однако среди копирастов почему-то не видно стремления запретить поисковикам давать ссылки на закопирайченный контент. Наверное, это несколько сложнее, чем наехать на трех программистов...
    А вообще мое имхо по данной теме - если скачать что-то проще, чем купить, то это будут скачивать. Ну либо за каждым пользователем интернета должен следить фсбшник/црушник/копирастер, и тогда в нем воцарится сплошная тишь да благодать.
[ << Previous 20 ]
Ктулху зохаваит фсех   About LiveJournal.com

Advertisement