Кстати вчера ехал из Петергофа в город на ЭТ4А со вполне официально открытыми сортирами. Хоть и не хотел особо, но решил, что просто обязан воспользоваться. Может быть и бумага с водой когда-нибудь появятся...
нужная штука http://eleks.github.io/js2js/
У меня есть ноутбук Toshiba Tecra 700CS 1995 года производства. Я его не всключал лет пять с половиной. Эти 5 лет он просто лежал в пакете, причём на подоконнике, где бывает жарко и холодно.
Я думал, что, если он и заведётся в принципе, то уж аккумулятору точно каюк (как бы то ни было, аккумулятору почти 20 лет). Настолько каюк, что его, считай, как будто вообще нет.
Включил, оставил заряжаться на ночь. Сейчас включил от аккумулятора. Внезапно он полтора часа проработал, и ещё полтора часа обещает.
Если бы у ноута были хотя бы раз в 10 больше память (памяти у него 24 МиБ) и диск, я бы, честное слово, пользовался им до сих пор.
Дико крутая и живучая железка. Сейчас такие дубовые наверное делают только военные ноутбуки.
Люди, а чем можно подмонтировать образ диска в формате QED? Можно даже нафиг не монтировать (так даже лучше), а просто побраузить, на нём тупо FAT16.
Собвственно по поводу того, что можно подмонтировать в QEMU (и даже в VirtualBox) и таv с ним работать, я естественно в курсе. В каком-то смысле поэтому и спрашиваю =).
http://xakep.ru/news/securedrop-start/
По адресу http://vbmwh445kf3fs2v4.onion в скрытой сети Onion заработал сервер SecureDrop
в скрытой сети Onion
Хакер такой Хакер
Только поковыряв какой-нибудь транслятор Бейсика, до конца осознаёшь, насколько это очароватеьлно идиотский язык.
Кто-нибудь ковырялся с Emscripten?
В общем "Здравствуй, мир!" оно компилит хорошо.
А как с чем-нибудь посложнее?
#include <stdio.h>
int main()
{
char name[10];
printf("1: ");
scanf("%9s", name);
printf("1. Is instruction ordering ok, <%s>?\n", name);
printf("2: ");
scanf("%9s", name);
printf("2. Still ok, <%s>? =)\n", name);
return 0;
}
А так: выдаётся JavaScript, который сперва всё печатает, а потом радостно спрашивает то, что его попросили в scanf
, причём один раз.
Разумно предположить, что это у меня руки кривые и я как-то неправильно Emscripten поставил ил запускаю. Ок, генерю LLVM-код при помощи CLang:
; ModuleID = 'test.c'
target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S32"
target triple = "i386-pc-cygwin"
@.str = private unnamed_addr constant [4 x i8] c"1: \00", align 1
@.str1 = private unnamed_addr constant [4 x i8] c"%9s\00", align 1
@.str2 = private unnamed_addr constant [38 x i8] c"1. Is instruction ordering ok, <%s>?\0A\00", align 1
@.str3 = private unnamed_addr constant [4 x i8] c"2: \00", align 1
@.str4 = private unnamed_addr constant [23 x i8] c"2. Still ok, <%s>? =)\0A\00", align 1
define i32 @main() nounwind {
%1 = alloca i32, align 4
%name = alloca [10 x i8], align 1
store i32 0, i32* %1
%2 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str, i32 0, i32 0))
%3 = getelementptr inbounds [10 x i8]* %name, i32 0, i32 0
%4 = call i32 (i8*, ...)* @scanf(i8* getelementptr inbounds ([4 x i8]* @.str1, i32 0, i32 0), i8* %3)
%5 = getelementptr inbounds [10 x i8]* %name, i32 0, i32 0
%6 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([38 x i8]* @.str2, i32 0, i32 0), i8* %5)
%7 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([4 x i8]* @.str3, i32 0, i32 0))
%8 = getelementptr inbounds [10 x i8]* %name, i32 0, i32 0
%9 = call i32 (i8*, ...)* @scanf(i8* getelementptr inbounds ([4 x i8]* @.str1, i32 0, i32 0), i8* %8)
%10 = getelementptr inbounds [10 x i8]* %name, i32 0, i32 0
%11 = call i32 (i8*, ...)* @printf(i8* getelementptr inbounds ([23 x i8]* @.str4, i32 0, i32 0), i8* %10)
ret i32 0
}
declare i32 @printf(i8*, ...)
declare i32 @scanf(i8*, ...)
Код нормально работает при помощи lli
, компилится в нормальный ассемблер при помощи llc
, в общем код ок.
Запускаю его при помощи вот этой демо-странички от Emscripten. Получаю, что характерно, аналогичную кривость, но почти наоборот, попробуйте сами.
ЧЯДНТ?
На**нул телефон HighScreen Boost об асфальт. Ничего не развалилось, после вынимания аккумулятора, симки и SD заработал нормально. Но на корпусе, помимо сколов, появилась пара тоненьких трещинок на углах, боюсь, как бы не поползли дальше.
Корпус из толстого твёрдого чёрного пластика. Стоит пытаться делать трещинам какую-либо профилактику, или правильным решением будет забить и не трогать?,
На http://bookcrossing.com/ и на http://bookcrossing.ru/ книги идентифицируются номером в специальном формате — BCID. Формат идентификаторов и назначение их частей (закрытой и открытой) одинаковые.
При этом зарегистрировать на сайте книгу с уже имеющимся номером нельзя, так как при регистрации книги оба сайта сами выдают номера. Общей базы нет.
Я фундаментально чего-то не понимаю, или bookcrossing.ru (их домен младше на три года) просто не парились и сделали параллельный велосипед?
До сих пор не все знают, что при оплате большинства квитанций не обязательно переться в сберкассу за болью и унижением, а можно сделать перевод через интернет-банк другого банка, при наличии такой возможности. Например, у моего жилищного кооператива счёт в банке Санкт-Петербург, и у меня есть в нём счёт. Поэтому перевод я могу сделать бесплатно. Более того, бухгалтер вернёт мне те 2% (не так мало кстати), которые так бы забрал за операцию Сбербанк.
Ситибанк через вебморду, со слов держателей счетов, вообще бесплатно всё переводит (сейчас это нетипичная щедрость).
В итоге, многое можно сделать, не вставая со стула. И всё поделить по справедливости: два процента оставить себе, а боль и унижение оставить в сберкассе.
Вчера надо было купить в Новом Петергофе еду и зайти в аптеку. Я его неплохо знаю, но всё меняется, поэтому, не увидев пары старых магазинов, решил посмотреть OpenStreetMap...
Ёлки-палки! Нет, я знаю конечно и то, что в Новом Петергофе высокие средний возраст и процент алкашей. Но не настолько же. У вас до фига всего полезного, но на карте вообще ни черта почти нету.
Для примера, в Копенгагене, оказавшись там впервые в жизни, я при помощи OpenStreetMap почти мгновенно находил всё, что хотел.
Неужели на весь Новый Петергоф полтора живых мэппера? Как-то всё не очень плотно, правда: http://www.openstreetmap.org/history#map=15/59.8738/29.9130 Половина правок — технические, контента раз-два и обчёлся.
Аборигены, имейте совесть, не халявьте!
Путин поручил МИД РФ выступить с демаршем после того, как два украинских БТР пересекли границу России в районе Ростовской области
http://www.fontanka.ru/2014/06/13/059/
Несколько дней назад Украина орала про три наших танка на юго-востоке. И показывала офигенно "убедительное" видео на ютубе, в котором непонятно чей танк едет по непонятно чьему городу.
Я так полагаю, что Путин решил постебаться в ответ. Надеюсь наши хоть БТР перекрасят и номера раздобудут перед тем, как показывать, чтобы так не позориться.
Я когда года три назад попробовал попрограммировать Ведроид штатным для него способом (скучная фригидная Java, жирный неуклюжий Eclipse, все дела), удивился тому, что гуйню к коду надо привязывать вручную. Не то чтобы я десятками леплю контролы на экран, но раздражает всё же.
Прямо вспомнилось заклинание раннего DHTML — document.getElementById. Только ещё мрачнее.
Я тогда заподозрил, что на самом деле это круто, просто я за час проникнуться не успел. Сейчас, поскольку ничего не изменилось, я заподозрил то же самое.
Помогите мне развеять подозрения и скажите: зачем оно всё такое убогое?