LINUX.ORG.RU

Сообщения foror

 

Как из двух аргументов i32 Си функции сделать i64?

Пытаюсь сделать int64 для JS через WASM, родил вариант через memory https://wasdk.github.io/WasmFiddle/?enoel

void add(unsigned long long *first) {
   unsigned long long v0 = first[0];
   unsigned long long v1 = first[1];
   
   first[2] = v0 + v1;
}

Но думаю проще сразу передавать i32, но как их эффективнее соединить в i64? Т.е. нужно что-то такое:

void add(long l0, long h0, long l1, long h1, long long *result) {
    long long v0 = *((long long*)argc[0])
    long long v1 = *((long long*)argc[2])

    *result = v0 + v1;
}

 , ,

foror
()

Кто-нибудь пользуется Object#freeze под v8?

В теории пишут, что это даёт буст перформанса на v8, но по факту код с такими замороженными объектами медленнее... У кого-нибудь есть история успеха?

 , ,

foror
()

В 2017-м вырисовывается качественная альтернатива Хромому

Сегодня глянул, чего там с Servo творится, думал протух проект, а не тут то было! По роадмапу к концу 2017 планируется юзабельный Google Docs в Servo. Сборку под Android скоро сделают (хотя можно самому сейчас собрать).

Скачал последнюю сборку с сайта, запустил на собственном хелловорде с ES6 классами и всё заработало, при этом памяти скушано меньше, чем в Хромом. Конечно если запускать реальные сайты не всё так гладко и память он за собой не чистит и всё глючит, но в целом перспективы радуют.

 ,

foror
()

Почему поставить первым наиболее вероятное условие в if-else делает код шустрее на x86?

При этом неважно, что у вас за ЯП, только что проверил на JS в хроме и правда процентов на 5-10% быстрее (фиксировал на 100 000 000 операций). Почему так?

 ,

foror
()

Менять позицию и флушить или последовательно в StringBuilder и флушить?

Последовательно пишу несколько килобайт в файл через BufferedWriter, но изредка нужно возвращаться назад и перезаписывать несколько байт. Поэтому вместе с BufferedWriter разделяю SeekableByteChannel.

Когда хочу вернуться назад и переписать пару байтиков делаю сначала BufferedWriter#flush, а затем прыгаю на позицию SeekableByteChannel#position(long). И пишу несколько байтиков в BufferedWriter. Затем с такой же логикой возвращаюсь в текущий конец файла.

Глупо ли так делать? Может быстрее будет писать не сразу в файл, а в StringBuilder, а затем всё сбрасывать в файл последовательно?

 ,

foror
()

Электронная книга со стилусом и сторонним ПО?

Посмотрел на те же ONYX BOOX, так у них андроид 4.2, а мне нужен современный WebView компонент для разработки приложения. Ну или любая другая система понимающая современный HTML5. Что еще есть? Kindle E-reader - там вроде андроид 5.1, но непонятно можно своё ПО разрабатывать/инсталлировать? А еще хочу стилус, можно в комплекте...

 ,

foror
()

Раздают три раза по $5K «no strings attached»

https://medium.com/@nayafia/5-000-no-strings-attached-9e7b95d33e50

I’ll also prioritize projects where:

- Funding isn’t readily available for this kind of project
- You have a unique take on the project, or your backstory is interesting
- Impact extends beyond the life of your project (ex. new program vs. one-time event)
- Timeline is shorter (ex. 2 months) vs. longer (ex. one year)

Can anybody apply?
Yes: any age, country (see caveats below), industry, job title, philosophy, or stage of life.

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

 

foror
()

Я познаю Rust: Лайфтаймы

Пытаюсь разобраться как работать с лайфтаймами:

use std::collections::LinkedList;

struct Point {
    x: f32,
    y: f32,
}

struct Rectangle<'a> {
    p2: &'a Point,
    p1: &'a Point,
}

fn main() {
    let mut list = LinkedList::new();
    let point1 = Point { x: 0.3, y: 0.4 };
    let point2 = Point { x: 0.3, y: 0.4 };
    
    let rect = Rectangle { p1:&point1, p2:&point2};
    list.push_back(rect);
    list.clear();
}

Как правильно очищать список, чтобы компилятор не ругался на point1, point2?

 ,

foror
()

В Firefox завезли Wasm с 3D и все дела

3D демка https://mzl.la/webassemblydemo с осенним садом. У меня в убунте не тормозит. Мобильный ЦПУ в районе 30%. При повторном открытии страницы берёт всё из кеша, без загрузки +100500 мегабайтов заново. Теперь очередь за игроделами доставить нам нормальных игрух. Вендокопец всё ближе.

В хроме вывалилось с ошибкой, ждём 57 версию с официальной поддержкой.

 , ,

foror
()

За советы про вдоль будут сажать

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

update:

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

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

 ,

foror
()

Алгоритм поиска перегруженного метода в Java

Вот пытаюсь сообразить (параллельно скачивая openjdk репу) как эффективнее реализовать поиск нужного метода для вызова с определенным набором параметров. С учетом того, что метод перегружен. Нужен общий алгоритм, для всех ситуаций. Фактически нужно то, что использует эклипс или сама джава. Пока буду рыться в сырцах, может кто на пальцах объяснит?

 ,

foror
()

Можно брать DDR4 NONAME сделанный в США?

Нашел тут на ебее планку на 16Gb, но контора NONAME (EDGE) с адресом и сайтом в США. Мне вот и интересно, чипы DDR4 сейчас всё равно делают пара заводов, а остальные их просто припаивают? Так что можно брать не боясь. Или всё не так и возмёшь, а там перформанс проседает и глючит всё?

 ,

foror
()

Многочисленные проверки индекса массива в Java оптимизируются JIT'ом?

Скажем есть такой код:

for (int i = 0; i < value.length(); i++) {
    char currChar = value.charAt(i);
    ... // i ниже не изменяется
}

...
    public char charAt(int index) {
        if ((index < 0) || (index >= value.length)) {
            throw new StringIndexOutOfBoundsException(index);
        }
        return value[index];
    }
Логично выбросить проверку из charAt, зачем она нужна? Делают ли это современные JIT'ы для подобных ситуаций? Более того, подгружаясь в код стандартных классов подобных проверок +100500... И я как понимаю, под капотом, к этим проверкам добавляется проверка на выход индекса за границы массива. Т.е. в данном месте:
return value[index];
Докидывается еще одна невидимая проверка с выбросом ArrayIndexOutOfBoundsException. Это безобразие и правда попадает в рантайм? Или современные JIT'ы выкидывают большую часть подобных перепроверок для стандартных классов типа String, ArrayList и т.д.?

 ,

foror
()

Двойной аккумулятор в ноутбуке большое зло

Пришел мне тут ноут с новья, запустил его и поставил на зарядку (система показала 68% заряда). Когда зарядился, решил проверить время работы без внешнего питания и как-то подозрительно быстро аккум стал разряжаться.

На определенном проценте разряда батареи система внезапно обнаружила вторую батарею с 0% процентом заряда. А так как это первый опыт использования двух батарей, то решил что таким образом система уведомляет о разряде одного из акумов...

Это потом я понял, что тут что-то не так, когда вынимал батареи и dmesg для первой говорил об её отсутствии (BAT0 absent что-то типа такого). А вот про вторую он вообще ничего не говорил, была она подключена или нет без разницы. Лишь когда она внезапно обнаруживалась системой, то dmesg выводил и её присутствие как BAT1.

Посмотрев инфу в /sys/class/power_supply/BAT1 увидел, что ёмкость батареи деградировала до 60% от заводской. И батарея никак не хотела заряжаться. Когда подключал внешнее питание система переставала её видеть.

В общем, думаю штука в том, что изначально разрядилась BAT1 когда ноут лежал в упаковке. А затем пошел разряд BAT0 до 68%, но за это время BAT1 упала в физические (а не контроллера) 0% и пролежала хз сколько времени в таком состоянии. Почитал, что в таком состоянии батарея быстро деградирует, а её заряд может привести к взрыву. Поэтому система и не даёт её заряжать. Хотя хз, по идеи две батареи должны одновременно разряжаться?

А если бы была одна батарея, то заряд был бы на 30% процентах и всё было бы нормально...

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

 ,

foror
()

Убунта хрепит на десктопе в плеерах, а в Хроме нормалёк

Подопытный трек https://www.youtube.com/watch?v=O5WylcyuZkE если скачать чем-нибудь типа youtube-dl -x --audio-quality 0 https://www.youtube.com/watch?v=O5WylcyuZkE и переключиться на 6:40, то начинает слегка хрепеть на bluetooth колонке с басами (sony srs-x33). Пробовал в VLC пускать - тоже самое, а в хроме не хрепит )

Пробовал качать с ВК, тоже самое. На ноутбучных колонках такого нет, но там и басов толком нет. Такой вот он десктоп на линухе (

 ,

foror
()

Расскажите про машиностроение

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

 ,

foror
()

Intellij IDEA на малинках и прочих ARM-ах?

На днях проскакивала новость, что в OpenJDK впили качественную поддержку ARM-ов (насколько я понял). И мне стало интересно реально ли запустить Intellij IDEA (Community Edition) на каком-нибудь 64-ом арме с 2-гигами под убунтой и работать комфортно? Отчасти хочу докупить себе какой-нибудь подобный ноут PINE64 PineBook: linux, arm за 100$ под это дело, только с разрешением 1080p.

 , , ,

foror
()

Как регистраторы доменов чекают занятость доменов?

У них собственная БД или есть какое-то скрытое API?

 ,

foror
()

Альтернатива gedit?

Никогда такого не требовалось и вот опять - нужно открыть 5Мб HTML файл и прямо страшно открывать его через gedit, который начнёт парсить полностью весь файл. Даже Atom и тот умеет открывать большие текстовые файлы... Что есть из альтернатив? Vi и его суррогаты не предлагать.

 

foror
()

Android смог в дифы бинарей на обновлениях

Объем загружаемого пакета сокращается на 65-90%... Осилили дифать бинари спустя 9 лет. Имхо это всё их высокая планка для собеседуемых, что только сейчас хватило свободных рук на запил. С другой стороны если бы они всех кодеров всосали, то с ними было бы тяжело конкурировать...

А APT такое могет? Впрочем тут грешно смеяться... Или могет?

Да, пруф http://android-developers.blogspot.ru/2016/12/saving-data-reducing-the-size-o...

 ,

foror
()

RSS подписка на новые темы