dluciv: (Default)
Присылает мне ЖЖшечка письмо: пользователь [identity profile] ru-iichan.livejournal.com укоряет меня за то, что я давно не писал у себя в ЖЖ. Ни фига подобного, около месяца назад писал про снегопад в Питере. И даже картиночки выкладывал. Но раз укоряет, то напишу, ладно уж.

Неожиданные восторги насчёт того, что теперь Котлин из коробки входит в Android Studio, мне кажутся немного странными.

Дело не в том, что лично мне не особо нравится Kotlin. Дикого восторга не испытываю, но язык как язык, приличный. А если сравнивать с родной Java, то даже и ничего себе, можно пользоваться. И не в том, что JetBrains — не градообразующее или социально значимое предприятие, а большей части читателей Фонтанки фиолетово, на чём пишут приложения под Андроид. Хотя конечно здоровый и позитивный патриотизм — вещь хорошая, а в наше время ещё и нечастая.

Дeло в том, что JetBrains ногу в дверь засунули гораздо раньше, когда появилась сама Android Studio, созданная на базе IntelliJ Idea. Засунули и сделали большой шаг. А Котлин там потом мог и мимо проходить — так почему бы и не добавить.

UPD: Мне тут объяснили, насколько я неправ. Т.е. в техническом плане прав, а в плане публичности — нет. См. комменты (в жежешечке).
dluciv: (линейка)
В Котлине, если ты хочешь сделать функцию с локальными переменными, придётся возвращать значение при помощи return.

fun bugaga() {
  val z = 5
  return z
}



Я это конечно объехал, но код на мой вкус красивее не стал =):

fun bugaga() = when(true) { else -> {
  val z = 5
  z
}}


Ещё можно написать, как иногда пишут на JS, и надеяться, что заинлайнит лямбду:

fun bugaga() = ({
  val z = 5
  z
}())


Для этого даже есть специальная затычка run, чтобы выглядело немного пристойнее (скобок меньше):

fun bugaga() = run {
  val z = 5
  z
}


Из сказанного выше уже становится понятно, что Котлин очень хочет из любых фигурных скобок сделать лямбду. Оно на самом деле так и есть. Если в середине тела функции попытаться сделать использовать фигурные скобки, как выражение, то тоже получится не то, что считается в них, а функция, которая считает то, что в них.

Наконец, можно просто присвоить лямбду в переменную/константу, написав:


val bugaga = {
  val z = 5
  return z
}


В какую жесть это выльется, см. в комментах.

Но почему хотя бы для тел функций не сделать исключение? if, в конце концов, в Котлине нормальный же.

Или я чего-то очень-очень не догнал (надеюсь), причём не я один, а ещё как минимум один мужик, или Котлин пилили фанаты goto...
dluciv: (линейка)
Пришло мне тут письмо от Скайпа. Приходило похоже всем, кто присылал им деньги. Оно меня совершенно не обрадовало, но зато повеселило. Процитирую его.

Здравствуйте!

Наша основная цель в Skype — чтобы вы всегда были ближе к тем, кто вам дорог. Мы всегда очень ответственно подходим к осуществлению этой цели. Однако 21 сентября по техническим причинам нам не удалось выполнить свои обязательства перед Вами. Приносим извинения за технические неполадки, с которыми Вы тогда столкнулись. Мы знаем, насколько важно для Вас иметь возможность в нужный момент связаться с людьми по Skype, и сколько неудобств могут вызвать сбои в его работе. Но порой просто принести извинения бывает недостаточно.

Мы хотели бы загладить свою вину, поэтому в течение нескольких следующих дней Вы получите 20 минут бесплатных звонков на мобильные телефоны в 8 странах или регионах и стационарные телефоны в более 60 странах или регионах*. Не забудьте воспользоваться ими! Бесплатные звонки будут доступны только в течение 7 дней.

Еще раз приносим свои извинения!

Skype


Полужирный шрифт мой. В смысле, именно шрифт. Текст их =).

21 сентября я был в Москве. Я не пользовался Скайпом днём 21 сентября. Я был в гостях в одном НИИ, а до того ещё хорошо погулял по любимому Бульварному кольцу. С наслаждением посидел на скамеечкке у Чистого пруда, который когда-то назывался поганым болотом. Кстати, в отличие от Питера, в Москве в это время во всю уже был листопад, но при этом было тепло. Можно было идти и пинать листья.

А в это время, оказывается, у всего мира была drama. Не работал Скайп. И все, у кого хватило в своё время фантазии завязать на Скайп рабочий процесс, бегали кругами. Включая моего заказчика. Который, кстати, для аудиоконференций бо́льших, чем на 3 участников, предпочитает уже Скайпом не пользоваться — видимо либо стоит дорого, либо работает хреново.

И что получают люди, которые до сих пор с содроганием вспоминают 21 сентября 2015 года? Они получают 20 минут на городские и мобильные. Адекватно? Не знаю. Для меня более чем, т.к. я вообще не пострадал, и даже немного позлорадствовал, чего греха таить. Я услышал вой о произошедшем по Скайпу же, когда вечером сел в Сапсан, и когда Скайп уже опять работал. А для тех, кто реально пострадал? Думаю, всем по-разному. Но зачем привращать этот извинительный бонус лояльности в очередную идиотскую акцию и ограничивать её 7 днями?!

Мол, извини, товарищ, за свои мучения ты получаешь в подарок пирожок. Приходи во вторник с 2 до 4 на шоссе Революции, постой в очереди, распишись, постой ещё раз, и получи. Извини, пирожки закончились, получи конфетку "Коровка". Завтра. И скажи ещё спасибо, что не вчера.

Такой вот затейный в M$ маркетинг, по крайней мере у скайпового подразделения.
dluciv: (линейка)


— Конечно же теми, которые и так знает мой 4G-модем!
— Но почему? Ведь существует множество различных USSD-команд!..
— ...

Мегафон продаёт Wifi-роутер с LTE-модемом Huawei-E5372 под названием «Мегафон MR100-3». На самом деле очень неплохая железка. Основной интерфейс — веб-морда + какие-то вебовые же API для родного приложения от Huawei. Но, как обычно, брендирование вносит [только] недостатки. В случае с Мегафоном их два:

  1. Модем лочат под, собственно, Мегафон (в принципе дело поправимое с точностью до гарантии, но не об этом здесь речь).

  2. В модем грузят свою «улучшенную» прошивку, которая не позволяет выполнять произвольные USSD-команды. Зато в ней есть ну ооооочень нужные ссылки на сервисы партнёров и на изменение гудка. Да-да, гудка. Ведь при помощи 4G-модема все только и делают, что принимают входящие звонки, не правда ли? =)

Всё то же самое (как минимум) справедливо, по слухам, и в отношении других операторов, но я не проверял.

Тем не менее, USSD выполнять хочется. А на тему того, как сделать так, чтобы не только хотелось, но и моглось, умные люди дали хороший совет.

Однако покорный ваш слуга решил пойти чуть дальше и облечь всё это в более дружелюбную форму, написав для исполнения USSD простенький юзерскрипт на три строчки (а что такое юзерскрипт?..). Позволяет при помощи пользовательской менюшки GreaseMonkey/TamperMonkey/что-у-вас-там показать в веб-морде модема интерфейс для выполнения любых USSD-команд. Позволяет и ходить по USSD-меню. Прощайте, страдания!

Не исключено, что скрипт будет работать и на некоторых других модемах Huawei. И даже у некоторых других операторов. Не проверял, писал для себя =).

P.S. Компания МТС отличается тем, что очень плотно мониторит Жежешечку и Твиттер. Более того, соответствующие её сотрудники мне пару раз помогали в разрешении некоторых непоняток (реагируют очень быстро, стоит только пожаловаться на жизнь — сразу тут как тут). Пользуясь случаем, хочу их поблагодарить. Но речь в данном конкретном случае о Мегафоне. Вдруг Мегафон мониторит так же добросовестно?.. Так вот, ребята из Мегафона, дальше для вас. Во-первых, людям нужны USSD. Не как воздух, конечно, но порядочно так. Во-вторых, я использовал на картинке ваш зелёный™ цвет, ничего? Мало ли, сейчас любят числа патентовать, может быть у вас тоже какие-то запатентованы =). Обращайтесь, изменю немного, если что. Никто не заметит, даже вы сами, но всё будет ок.

P.P.S. Макс Смолев, который, вообще говоря, автор картинки (и на картинке это честно написано) тоже может внезапно увидеть сей пост. В общем, Макс, если ко мне будут какие-то вопросы — я человек относительно вменяемый, бывают и такие, да =).

P.P.P.S. Думал-думал, что бы в этом посте под кат засунуть, да как-то нечего...
dluciv: (линейка)
Про Лого номинально принято говорить, что он является функциональным языком. Изредка говорят, что он, с точностью до синтаксиса, даже диалект ЛИСПа.
Глядя на разные милые графические упражнения с черепашками, в это поверить тяжело. Легче становится поверить, конечно если более или менее представляешь себе, как работают трансляторы ЛИСПа, когда увидишь квадратные скобки вокруг блоков кода в управляющих конструкциях. Когда смотришь на них, постепенно начинаешь видеть древних монстров. И уже веришь в то, что искуственный интеллект на Лого тоже пытались, да и до сих пор пытаются программировать (а ЛИСП так и вовсе для этого был сделан).

Один товарищ написал программу на Питоне, которая завершалась сегфолтом. Увидев это, он радостно воскликнул: «На C можно писать на любом языке!»
Под катом мы попытаемся при помощи Лого программировать на ЛИСПе.
Итак, насколько же Лого функциональный язык?.. )
dluciv: (IBM)
Я летом 2009, не пользуясь ещё Дропбоксом, написал вот такой опус.

Не только написал, но и сделал. Взял Mercurial, взял штуки три хостинга и написал нехитрый скриптик, который делал push и pull со всеми тремя. Прелесть была в том, что когда один из хостингов сдох, я почесал в затылке и просто забил. Ну подумаешь сдох один из трёх...

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

Конечно в Git и Mercurial я видеофайлы не клал, да и история, по большому счёту, нужна далеко не всегда (хотя с ней, понятное дело, надёжность слияния повышается). В общем ясно, что они не для того. Для всего относительно повседневного и большого с осени 2009 был и остаётся Дропбокс. Который сегодня недвусмысленно даёт понять (мне так до сих пор), насколько всё в мире бренно.

Возможно пора задуматься опять. Всё-таки синхронизированные репозитории на трёх независимых серверах и на паре моих компьютеров имеют неплохие шансы пережить, скажем сдержанно, мой интерес к содержащимся в них данным.

Версионирование мне не нужно, а зато нужна прозрачность (чтобы само мониторило файловую систему). Кроме пропиетарной BtSync, требующего прямого сетевого соединения Unison, работающего поверх того же Гита SparkleShare и требующего своего сервера OwnCloud (кроме приватности ничем не лучше облаков), что ещё есть на эту тему?
dluciv: (криптопридурок)
ext_bus_night

Легендарный долгострой таки вышел официально. Лицензия CC:BY-NC-SA 4.0
Эта та самая игра, которая заставила Мицгола рвать волосы и плакать кровавыми какашками.

Очень рекомендую всем скачать, встать на торрент, и наслаждаться.

Само произведение, по мнению искушённых в жанре игроков, против аналогов международного уровня типа かたわ少女 слабовато. Я не искушён, и мне оно нравится.

По первой же ссылке доступны саундтреки. Музыка в значительной степени писалась специально к игре и, по признанию как искушённых, так и неискушённых, она очень хорошая. На мой взгляд она представляет самостоятельную ценность и её вполне можно слушать отдельно. Авторам можно относительно безболезненно донейтить Яндекс-деньгами.
dluciv: (линейка)
Установив на роутере OpenWrt, получил возможность смотреть на работе домашнее IPTV.
Оправдались опасения: как я и подозревал, если гнать через ssh много данных, то шифрование начинает грузить процессор, а процессор в роутере, понятное дело, никакой. Просмотр одного не HD канала сразу +15%...+20%. HD почему-то не кажут вообще, скорее всего у провайдера отвалились.

Как узнать температуру процессора, понятия не имею, т.к. программного градусника я в нём не обнаружил. Зато я очень хорошо знаю, что проц у роутера вообще ничем не охлаждается. Пруфпик: http://wiki.openwrt.org/_detail/toh/tp-link/tl-wr841nd.v7.2.serial.jpg?id=toh%3Atp-link%3Atl-wr841nd
В итоге погонял минут пять, а потом выключил от греха подальше.

Не могу сказать, что сильно от этого страдаю, т.к. на работе надо работать, да и телевизор я в общем-то не смотрю. Если бы сильно страдал, добавил бы NAT работодателя в белый список и разрешил бы подключаться к udpxy напрямую, без шифрования.

Но вот узнать, как измерить железке температуру, очень бы хотелось. Разумеется хотелось бы автономно, без аппаратного вмешательства. Сразу скажу, sensors-detect в файловую систему не влезет, т.к. он на чёртовом здоровом Перле, а у меня там на флешке КИЛОБАЙТ 400 свободных.

Может кто что посоветует?
dluciv: (Default)
В общем удалось мне объехать (именно объехать, не решить) проблему с DNS и tetherng на MiniCM. Грязный хак в стиле ДОСа или даже Спектрума, но работает. Рецепт опубликовал, если кому в принципе интересно: http://forum.xda-developers.com/showthread.php?p=27709265#post27709265
dluciv: (Default)
Пост содержит годовую норму любви к компании SONY.

Наверное я больше не буду ругаться на свой мобильник SE Xperia X8. Мобильник оказался хорошим. Программисты и маркетологи в SONY — гады, да, а мобильник оказался хорошим. Потребовалось больше года, чтобы понять это. Помогла мне альтернативная сборка Android — Cyanogen MOD (и альтернативное ядро nAa).

Опишу подробнее )
dluciv: (Default)
CSS3 2012 vs OS/2 1992: http://habrahabr.ru/post/143342/

Habrahabr 2012 http://habrahabr.ru/post/143342/ vs DLUCIV 2007: http://dluciv.livejournal.com/43776.html

Я бы вообще добавил к сравнению IBM CICS 1969, в котором, в общем-то, в отличие от CSS3, всё, что надо, есть, ну да ладно...
dluciv: (очки)
Сейчас я выдам маркетинговое соображение на миллион долларов.
Жалко, что я на 999‰ не первый.

Итак, что мешает использовать полноценно функциональные языки в средах Java и .NET? Я даже задам более частный вопрос: что мешает использовать языки, управляющие конструкции которых являются выражениями?

Я знаю ответ на этот вопрос. Жирный фреймворк, жирные сторонние библиотеки и жирный код прикладных программ.

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

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

Так вот, даже функционального языка не надо, достаточно C# 4.0 с LINQ — это уже система со сносной выразительностью. Если только Вам позволено писать программу, в которой используются большие ВЫРАЖЕНИЯ, Ваша программа становится короче и выразительнее, но для отладки часто приходится эти выражения дробить и считать с использованием временных переменных. Потому что без отладки не всегда ясно, что всё-таки делают её части. А уж если программа вдруг не Ваша, а чужая...

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

Если язык программирования хорошо статически типизирован, задача облегчается: сам компилятор хорошо помогает Вам сделать Вашу программу правильной. Но это же должно касаться и библиотек. Рыхлые объектно-ориентированные махины очень легко Вам всё испортят, особенно если их писали какие-нибудь балбесы.

Ну что, не поубавилось охоты писать на F# и Scala? У меня кстати, не смотря на собственные разумные, казалось бы, доводы, почему-то нет =).
dluciv: (Default)
Не в курсе, у кого Гугл (и ГИС «Инновация», карты которой Гугл показывает) купил карту или кадастровую базу. Судя по всему, она была довольно точной. Пока кто-то не округлил умело координаты точек. Т.е. точек много, но качество координат такое, что лучше бы точек было мало...
Вот пример "хорошей детализации", не единственный.

То же самое здание и на РГИС есть с деталями в очень средненьком, так скажем, качестве. В средненьком, но не настолько фиговом, насколько у Гугла.

А вот примерно как оно должно выглядеть (3D можно отключить, с ним просто нагляднее): здесь деталей на корпусе A2 (литера А) меньше, но они хоть адекватные...
dluciv: (Default)
Вот здесь http://www.rgis.spb.ru/map/ кому угодно можно посмотреть всё, включая приблизительно нарисованные канализацию и газовые сети. Мощно. Я про такое не знал.
dluciv: (Default)
Мне очень хотелось, чтобы на клавиатуре были кнопки Super, Hyper и Meta. Хотя бы в редакторе Emacs, но так, чтобы всё остальное не пострадало.

Зачем? Не знаю. Наверное я чувствую себя круче от кнопок Super, Hyper и Meta.
Почему? Наверное исходя из банальных ассоциаций, а именно:
  • Клавиатура Space Cadet (Звёздный Юнга) от ЛИСП-машин Symbolics (собственно Emacs же на ЛИСПe). Посмотрите на неё поближе. Одна кнопка "Over Strike" (да, двумя словами =) ) чего стоит. Правда клавиатура крутая?
  • Правильное олдскульное меха-онемэ 1982 года "The Super Dimension Fortress Macross" "Гиперпространственная крепость Макросс".
  • Ну и ещё какие-то неясные подростковые ассоциации с тем, что Супер, Гипер и Мета - круто.
как )
dluciv: (Default)
Сайт Экспресс-3 (на домене rzd.ru) писали жопорукие быдломакаки. Мало того, что он по-чёрному глючит, содержит в URL слово "secure", но передаёт данные в открытом виде, да и вообще как-то странно организован. Это ладно. Это я готов если не простить, то хотя бы понять. Сам макака в какой-то степени.

Меня убило, что он отказался принимать мой почтовый адрес в зоне .name (это при том, что адрес ему вообще нафиг был не нужен). Я думаю, что это не финиш. Через какое-то время будет принудительно mail.ru. А зачем ещё что-то?

Никакого способа пожаловаться на работу сайта я не нашёл. Хотя и так понятно, что даже если бы там была форма для багрепорта, толку бы от неё не было. РЖД жалобы надо отправлять исключительно на грубой наждачке.
dluciv: (Default)
Примерно год назад я написал игрушечную неполноценную подсвечивалку синтаксиса для Алгола 68 для Emacs. Написал, порадовался сам, порадовал других и забыл.

А сейчас со мной списался мэйнтейнер интерпретатора Алгола 68, который указал мне на неточности в подсветке (а я ему на неточности в интерпретаторе), и заинтересовался компилятором А68ЛГУ, который делали в ЛГУ, как несложно догадаться.
А я даже не знаю, что я могу ему рассказывать, а что — нет. Наш-то компилятор на самом деле полувоенный (а вы что думали), расскажешь что-нибудь не то — посодют ещё...

В общем придётся кланяться [livejournal.com profile] le_bul_de_sier  и ещё нескольким людям, которые лазали А68ЛГУ в потроха, чтобы надыбать для любознательного интуриста что-нибудь полезное, но без ущерба для гостайны =).
dluciv: (Default)
Чтобы отключить LJTIMES надо зайти на страничку профиля http://www.livejournal.com/manage/settings/?cat=display
и внизу убрать галку у "Кириллические сервисы Я хотел бы использовать сервисы, разработанные для русскоязычных пользователей
1. У человека, у которого это я прочитал, пост был под замком зачем-то, так что ссылаться не буду. Сошлюсь тогда на Экслера.
2. Это г***о внизу экрана действительно пропадает.

TUG и DEK

Sep. 21st, 2010 12:12 pm
dluciv: (Default)
Вот эмблема TUG-2010: http://www.tug.org/art/tug2010-color.jpg

Судя по некоторым характерным чертам, а главное по надписи "DEK" на шапке, лев претендует на некоторое портретное сходство с Дональдом Эрвином Кнутом. А не с Юрием Владимировичем Андроповым, например, как кому-то могло бы показаться.

Тем не менее, хотя лёвик данный и выражает исключительно положительные вещи, выглядит он как-то жутковато. Как птица Гамаюн, что-ли... Короче по-моему не надо было ему лицо пририсовывать.
dluciv: (Default)
А вот это вам не цирк в виде похорон Айфона. Это гражданская позиция, которая не позволяет уважающей себя компании сотрудничать со всякими дармоедами.
В соседнем топикеNovikov живописует ужасы применения копирайта «для борьбы с инакомыслием и политического подавления», о чём в
воскресенье
написала газета The New York Times.

Тем временем, на следующий же день, (то есть уже вчера), "
Microsoft официально объявила, что не будет давать российским властям возможность использовать её в качестве «пострадавшей», — пишет блоггер ksonin, — российскому подразделению запрещено участвовать в рейдах. Более того, те общественные организации и средства массовой информации, которые могут быть заподозрены в использовании нелицензионного софта, будут, как я понял, получать бесплатную лицензию на весь используемый ими софт производства Microsoft."
http://habrahabr.ru/blogs/copyright/104170/

July 2017

S M T W T F S
      1
2345678
91011121314 15
16171819202122
23242526272829
3031     

Syndicate

RSS Atom

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 26th, 2017 04:37 pm
Powered by Dreamwidth Studios