← All posts tagged code

Renha
opensource дыбр cura ultimaker я у мамки опенсорцер, письмо пришло:

We send you this message because of your valued contribution to Ultimaker, in this specific case to Cura. We really appreciate the way you help improve the 3D printing experience for all Ultimaker users around the globe. Each of them is grateful for this, and so are we. This synergy can only exist due to the license under which we have shared our work.
Quite some time ago, when we just started out we choose to share Cura under the AGPL license (Affero General Public License). Mostly because we just wanted to share our software with a copyleft license. Upon further, more recent investigation, we have decided we prefer to relicense our code to the LGPL (Lesser General Public License). Among other benefits, because an LGPL license would allow for more versatile dynamic linking and making it easier for others to use Cura. AGPL license has some restrictions in this regard.
Since you have contributed to Cura, we can only release our code under the LGPL license if you will do the same. Therefor we would like to ask you if you would follow us, and also share your contribution under the LGPL license.
If you agree with the change, please see the form attached. We would appreciate if you could print, sign, and send it back, so we can continue working together like we have always done.
Thank you very much, please feel free to reach out to us if you have any questions.
Renha
дыбр coding PDF awk Упоролся в последние дни sed, затем postscript, awk, и несколько сторонних утилит.

А казалось бы, всего-то надо pdf-файл правильно порезать на кусочки.
Renha
programming coding FORTH типизация torth Ну допустим как-то так это будет torth.us

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

Что посоветуете по системе типов на попробовать? Заявленные идеи по типам у меня только по синтаксису есть, а вот может есть что прорывное или просто интересное, которое мало применяется в распространённых языках программирования? Можно с заметными недостатками, нам с тортом не на луну лететь.
Renha
? code C
Жуйк, я си-нуб, ругай. Это по задумке реализация буфера для пакетов размером до pc_input_packet байт. Пакеты нельзя бить по кусочкам, поэтому некоторая избыточность в конце буфера кажется неизвестна.

#define pc_input_size 1024
#define pc_input_packet 256
uint16_t pc_input_write_pointer= 0;
uint8_t pc_input_buffers[pc_input_size];
uint16_t pc_input_read_pointer= 0;
uint16_t pc_input_toread()
{//if return is zero, nothing to read, else read from returned address
  if (pc_input_read_pointer > (pc_input_size - pc_input_packet))
    pc_input_read_pointer= 0;
  if (pc_input_read_pointer==pc_input_write_pointer)
    return 0;
  else
    return pc_input_buffers+pc_input_read_pointer;
}
uint16_t pc_input_towrite(uint16_t amount)
{//if return is zero, could not write, else write to returned address
  if (pc_input_write_pointer > (pc_input_size - pc_input_packet))
    pc_input_write_pointer= 0;
  if (pc_input_write_pointer > pc_input_read_pointer)
    return pc_input_buffers+pc_input_write_pointer;
  else if (pc_input_read_pointer - pc_input_write_pointer > pc_input_packet)
    return pc_input_buffers+pc_input_write_pointer;
  else return 0;
}
Renha
code FORTH ffi tox 8th
Начал кодить Tox-клиент на 8th (коммерческий кроссплатформенный forth), затестил FFI, довольно мило:
"tox" lib tox

tox drop
"N" "tox_version_major" func: tox_version_major
"N" "tox_version_minor" func: tox_version_minor
"N" "tox_version_patch" func: tox_version_patch

"NNNN" "tox_version_is_compatible" func: tox_version_is_compatible

"Pn" "tox_options_new" func: tox_options_new

tox_version_minor .
tox_version_major .
tox_version_patch .
1 2 3 tox_version_is_compatible .
Renha
Juick code userscript фигакфигакивпродашкн
// ==UserScript==
// @name        Убрать лишнее с жуйка и подписка и отписка в один клик
// @namespace   Renha
// @include     *://juick.com/*
// @version     1
// @grant       none
// ==/UserScript==

$('nav[id=global]').remove();
$('div[id=logo]').remove();
$('div[id=search]').remove();

$('aside[id="column"]').remove();
$('ins[class="adsbygoogle"]').remove();
$('a[href="/?show=recommended"]').text("Все");
$('a[href="/?show=recommended"]').attr("href", "/?show=all");
$('input[name="search"]').remove();

$('a:contains("Рекомендовать")').attr("href","#");
$('a:contains("Рекомендовать")').attr("onclick",'$.post("/post2",{place_id: 0,body: "! #"+pageMID});location.reload();');
$('a:contains("Подписан")').attr("href","#");
$('a:contains("Подписан")').attr("onclick",'$.post("/post2",{place_id: 0,body: "U #"+pageMID});location.reload();');
$('a:contains("Подписаться")').attr("href","#");
$('a:contains("Подписаться")').attr("onclick",'$.post("/post2",{place_id: 0,body: "S #"+pageMID});location.reload();');

$('a:contains("Мне нравится")').text("Рекомендовать");

var say="Подписаться";
var tog="S";
if (window.location.search.search('show=discuss')>0)
{
	say="Отписаться";
	tog="U";
}
$('.l').append('<a href="#" class="ololoshka">'+say+'</a>');
$(".ololoshka").attr("onclick",'$.post("/post2",{place_id: 0,body: "'+tog+' #"+$(this).closest("article").attr("data-mid")});');
Renha
Juick code
// ==UserScript==
// @name        Убрать лишнее с жуйка и подписка и отписка в один клик
// @namespace   Renha
// @include     *://juick.com/*
// @version     1
// @grant       none
// ==/UserScript==

$('nav[id=global]').remove();
$('div[id=logo]').remove();
$('div[id=search]').remove();

$('aside[id="column"]').remove();
$('ins[class="adsbygoogle"]').remove();
$('a[href="/?show=recommended"]').text("Все");
$('a[href="/?show=recommended"]').attr("href", "/?show=all");
$('input[name="search"]').remove();

var say="Подписаться";
var tog="S";
if (window.location.search=="?show=discuss")
{
	say="Отписаться";
	tog="U";
}
$('.l').append('<a href="#" class="ololoshka">'+say+'</a>');
$(".ololoshka").attr("onclick",'$.post("/post2",{place_id: 0,body: "'+tog+' #"+$(this).closest("article").attr("data-mid")});');
Renha
Juick code
// ==UserScript==
// @name        Убрать лишнее с жуйка
// @namespace   Renha
// @include     *://juick.com/*
// @version     1
// @grant       none
// ==/UserScript==

$('nav[id=global]').remove();
$('div[id=logo]').remove();
$('div[id=search]').remove();

$('aside[id="column"]').remove();
$('ins[class="adsbygoogle"]').remove();
$('a[href="/?show=recommended"]').text("Все");
$('a[href="/?show=recommended"]').attr("href", "/?show=all");
$('input[name="search"]').remove();
Renha
code sugar FORTH
В #2787846 обещал для SP-Forth синтаксического сахара в виде:
: lala 1 . ;
lala
1  Ok
lala`
1  Ok
lala`lka
1 Ok

Как сделать: берём библиотеку cafeins.f (я думаю вам она всё равно понадобится, чтобы ЯЗЫК НА ВАС НЕ КРИЧАЛ), и там перед CEQUAL-U вставляем следующий код:
    2SWAP 2DUP S" `" SEARCH IF
    	NIP -
    ELSE
    	2DROP
    THEN

Вообще надо было в другом месте править, заодно с цифрами и прочим, но как-то с документацией у SP-Forth не очень, библиотеки проще прочитать. К сожалению, `вотэто будет незнакомым словом по-прежнему, как и 1`единичка, как раз поэтому. В парсер надо лезть. Но главного я доби`лся , хорошо хоть форт легко позволяет этого доби`ваться .
Renha
fun coding FORTH Дайджест форто-веселья . Во-первых , это очень выразительный язык , зацените :
blinker @ not blinker !Блинкер , собака такая , не блинкер .

Ещё поймал себя на том что в комментариях к коду пару раз поставил пробелы перед знаками препинания . То ли ещё будет ;
Renha
coding Habrahabr FORTH oberon Иногда мне хочется иметь аккаунт на хабре. Например, в комментариях к статье habrahabr.ru в ответ на каждый комментарий автора, восхваляющий OBERON, писать что-то вроде "но это есть и в FORTH!", просто так.

Или я мог бы не писать, а почитать FORTH vs OBERON дискасс, а то война древности с современностью и современности с другой современностью это мейнстрим и скучно. Можно прямо здесь. Есть оберонеры на жуйке? Велкам и рецомменд.
Renha
code FORTH
вынесу из комментов к #2785629, пожалуй. Наивная, конечно, реализаци, ну и не запускал так что могут быть ошибки уровня опечаток.

variable Печь
: поставить ;
: на ;
: градусов, swap ! ;

0
1+ dup value Яйца,
1+ dup value муку
1+ dup value сахар,
drop

create котёл 3 allot

: в ;
: В ;
: всего ;
; все ;
: ингредиента ;
: поместить, swap 0 do tuck ! loop ;

котёл value котле

defer вязкость
' > is вязкость

( взято с http://rosettacode.org/wiki/Sorting_algorithms/Bubble_sort#Forth )
: перемешать. ( addr cnt -- )
  dup 1 do
    2dup i - cells bounds do
      i [email protected] вязкость if i [email protected] swap i 2! then
    cell +loop
  loop ;

Печь поставить на 300 градусов,
Яйца, сахар, муку - всего 3 ингредиента в котёл поместить,
В котле все 3 ингредиента перемешать.
Renha
? AVR embedded atmega uart Жуйк, чего-то я не понимаю в этой жизни. В кои то веки не кодил на асме, а поставил на атмегу готовую оболочку, с интерфейсом в уарт. И чего-то на комп всё передаётся, а с компа не принимается. А я чего-то даже и не припомню, что там может быть не так. Тактуемся внутренне, но даже если из-за этого сбоит, на 9600 хоть что-то ведь должно приходить. Что можешь подсказать без погружения в проблему, куда хоть смотреть? Код этой системы конечно есть, но не хочу глубоко лезть, вот что настраивается:
.set BAUD=9600
;.set BAUD_MAXERROR=10
;.set WANT_ISR_RX = 1 ; interrupt driven receive
;.set WANT_ISR_TX = 0 ; send slowly but with less code space
Renha
code FORTH вызов-принят
Решение задачи из #2745090 на gforth. На оптимальность решения не претендую (оно наивное), также интересно было самому написать - в реализации стандартных слов (например, .) не подглядывал. Замечания приветствуются. Комментариями снабжать сперва начал (первая строка), но это выглядело странно, так что оставил только карты стека. Выполнять например так: -234 n>s type

\ create string buffer with 20 cells alloting
create string-buffer 20 cells allot

: n>s ( n --  c-addr u )
	dup 0< if negate '-' swap else 0 swap then 0 ( minus-char number length )
	begin 1+ swap 10 /mod swap '0' + -rot tuck 0= until nip
	1+ dup roll swap ( chars length )
	dup begin 2dup - string-buffer + 1 4 roll fill 1- dup 0= until drop
	string-buffer swap
;
Renha
code unity3d Unity
Котики, вот смотрите, есть 2D-проект на юнити, там врезания объектов надо обрабатывать. Надо чтобы в разных ситуациях: 1) объект А уничтожался, объект Б продолжал движение как ни в чём не бывало, 2) объект А уничтожался, объект Б отлетал как от столкновения, 3) объект А не уничтожался, столкновение. Чёт придумать не могу, в голове одни энергетики
Renha
code
жуйк, подскажи преимущества нуль-терминированных строк перед нормальными, а то я тут формат данных придумываю, думаю вводить их или нет