Compare commits

...

5 Commits

Author SHA1 Message Date
f7503916ce UTC date to LocalTIME 2020-07-07 13:13:17 +02:00
e709b7a33f ajout dossier fonts 2020-05-28 08:45:22 +02:00
723d4b38cd ajout mode My special Blocks list 2020-03-27 08:25:27 +01:00
de74a94433 footer en bg-grey about.php 2020-01-12 20:12:52 +01:00
5fffd55693 hidde logo on smartpghone in about.php 2020-01-09 14:41:42 +01:00
41 changed files with 128 additions and 73 deletions

View File

@@ -194,7 +194,7 @@
<p class="text-justify">I like <b>surfing</b> and sailing on the ocean. But during longs winter nights, computing is fun. I'm interested into <b>cryptocurrencies</b>, computationnal art, datavisualisation. I know that <b>42</b> is the answer to <b>the Life, Universe and Everything Else</b>. As <b>Eto Demerzel</b> said to me, the <b>Seldon's Plan</b> will save the Galaxy. My favorites books are the <b>House of leaves</b>, the <b>Necronomicron</b> and the <b>DarkHold</b>. I also know that <b>great power comes with great responsibility</b>. I'm still in <b>the search of Captain Zero</b>, because <b>the Truth is out there</b>.</p>
<p class="text-justify">.I'm also really astonished by <b>Universal Numbers</b>, aka Disjunctives Sequences. Thinking that a single number can contain every others, that's a great <b>mystery</b>. So I'm trying to write the <a href="page.php?id=00190327">Chronicles</a> of these numbers (in french)</p>
</div>
<div class="col-sm-4">
<div class="col-sm-4 hidden-xs">
<!--
<div style="background-image:url(images/topisto_vert_tr.png);background-repeat: no-repeat;background-position:center top;background-size: 100% auto;">
<img id="gargoyle" src="images/logo.php" alt="avatar dragon gargoyle" width="100%; height: auto" style="opacity:0.4"></img>
@@ -234,7 +234,7 @@
</div>
</div>
<footer class="container-fluid bg-white text-center">
<footer class="container-fluid bg-grey text-center">
<a href="#myPage" title="To Top">
<span class="glyphicon glyphicon-chevron-up"></span>
</a>

View File

@@ -45,7 +45,7 @@ if (isset($_REQUEST['block_hash']))
header('Content-Type: application/json');
}
$message = '{"hash":"'.$the_block->hash.'", "block_index":"'.$the_block->block_index.'", "time":"'.date('Y/m/d H:i:s', $the_block->time).'", "height":"'.$the_block->height.'", "topisto_outputs":"'.$the_block->topisto_outputs.'", "prev":"'.$the_block->prev_block.'", "topisto_inputs":"'.$the_block->topisto_inputs.'", "topisto_fees":"'.$the_block->topisto_fees.'", "topisto_reward":"'.$the_block->topisto_reward.'", "nonce":"'.$the_block->nonce.'", "n_tx":"'.$the_block->n_tx.'"}';
$message = '{"hash":"'.$the_block->hash.'", "block_index":"'.$the_block->block_index.'", "time":"'.$the_block->time.'", "height":"'.$the_block->height.'", "topisto_outputs":"'.$the_block->topisto_outputs.'", "prev":"'.$the_block->prev_block.'", "topisto_inputs":"'.$the_block->topisto_inputs.'", "topisto_fees":"'.$the_block->topisto_fees.'", "topisto_reward":"'.$the_block->topisto_reward.'", "nonce":"'.$the_block->nonce.'", "n_tx":"'.$the_block->n_tx.'"}';
if ($_REQUEST['FULL'] == 'OK') $message = json_encode($the_block);

BIN
fonts/klingon.ttf Normal file

Binary file not shown.

BIN
fonts/klingon_font.zip Normal file

Binary file not shown.

BIN
fonts/tengwar.ttf Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,16 @@
#!/bin/bash
rm -f *.png
# monochrome
convert ../../topisto_vert.png -monochrome topisto_tmp1.png
composite -compose copy_opacity ../topisto_mask.png topisto_tmp1.png topisto_tmp2.png
rm -f topisto_tmp?.png
# grayscale
convert ../../topisto_vert.png -type Grayscale topisto_tmp1.png
composite -compose copy_opacity ../topisto_mask.png topisto_tmp1.png topisto_tmp2.png
convert topisto_tmp2.png -negate topisto_grayscale.png
rm -f topisto_tmp?.png
exit 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@@ -1,6 +0,0 @@
toto=$1
gmic ../../topisto_vert_tr.png $@ -output topisto_tmp_$toto.png
convert topisto_tmp_$toto.png -fuzz 10% -transparent white topisto_$toto.png
rm -f topisto_tmp_$toto.png

View File

@@ -1,32 +0,0 @@
source gmic.sh endgrave fx_engrave 0.5,4,0,7.68,15.2,0,0,1,10,1,0,0,0,1,0 gui_merge_layers
source gmic.sh bokeh fx_bokeh 3,8,0,30,8,4,0.3,0.2,210,210,80,160,0.7,30,20,20,1,2,170,130,20,110,0.15,0
source gmic.sh 8bits fx_8bits 25,800,16,0
source gmic.sh 8bits fx_8bits 25,800,16,0
source gmic.sh
source gmic.sh fire_edges 0.7,0.25,0.5,25,20
source gmic.sh fire_edges fire_edges 0.7,0.25,0.5,25,20
source gmic.sh diffusiontensors fx_diffusiontensors 10,5,3,1,0.15,1,0,3,0
source gmic.sh feltpen fx_feltpen 300,50,1,0.1,20,5,0
source gmic.sh gtutor_fpaint 0.5,0.5,0,0,45,0.5,0.5,0.5,0
source gmic.sh fx_graphic_novelfxl 0,2,6,5,20,0,0.62,14,0,1,0.5,0.78,1.92,0,0,0,1,1,1,0.5,0.8,1.28
source gmic.sh fx_illustration_look 100,0,0,0,0
source gmic.sh fx_lylejk_painting 10,2,4,10,0
source gmic.sh fx_painting 5,2.5,1.5,50,1,0
source gmic.sh fx_posterize 150,30,1,6,0,0,1,0
source gmic.sh fx_quadtree 2,1024,1.05,0,2.33,0.68,0.39,1,0
source gmic.sh fx_vector_painting 9.37,0
source gmic.sh boxfitting
source gmic.sh boxfitting ,
source gmic.sh cartoon 3,80,15
source gmic.sh cubism ,
source gmic.sh halftone ,
source gmic.sh blur 2 light_relief 0.3,4,0.1,0
source gmic.sh +sketchbw 1 reverse blur[-1] 3 blend[-2,-1] overlay
source gmic.sh mosaic ,
source gmic.sh linify 40
source gmic.sh polygonize 300,1%,0.1%,3%,3%
source gmic.sh poster_hope ,
source gmic.sh rodilius 12,10,300,10 normalize_local 10,6
source gmic.sh stained_glass 20%,0.1
source gmic.sh fx_shapes 1,16,10,2,5,106.8,2,0,0,1,0
source gmic.sh fx_shapeism 2,7,0.38,0,1,5,32,8,3,1,5,0.5,1,0,0,0,255

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 231 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 440 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 194 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 411 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 458 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 278 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

BIN
images/topisto_vert_tr.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@@ -23,6 +23,9 @@
<script>
$(document).ready(function(){
// Mask navigator scrollbar
// Doesn't work : can't scroll anymore
//$("body").css('overflow', 'hidden');
$('#myNavbar').on('show.bs.collapse', function () {
$('#logo_topisto').css({'height' : '30px','width' : '30px'});
@@ -66,9 +69,12 @@
function showInfos(element)
{
var flag = 2*parseInt($('#mode_selector').val());
$('#blockchain').html('');
flag = 1;
if (!element.checked) flag = 0;
if ($('#mode_checkbox').is(":checked")) flag += 1;
blockchainExplorer.init(flag);
}
</script>
@@ -102,8 +108,13 @@
<div id="explorer" class="container-fluid bg-grey" style="padding-bottom:10px">
<div class="row">
<div class="col-sm-12 text-right">
<br>A BTC blockchain explorer<br>Scroll down to see the previous blocks<br>
<label>show infos&nbsp;</label><input type="checkbox" onchange="showInfos(this)" checked>
<br>
<select id="mode_selector" onchange="showInfos(this)">
<option value=0>A BTC blockchain explorer</option>
<option value=1>My special Blocks list</option>
</select>
<br>Scroll down to see the previous blocks<br>
<label>show infos&nbsp;</label><input id="mode_checkbox" type="checkbox" onchange="showInfos(this)" checked>
</div>
</div>
</div>

View File

@@ -17,8 +17,8 @@ blockchainExplorer = function(){
function _getblockNameFromHash(hash)
{
var retour = '';
if (_liste_blocks != null)
_liste_blocks.forEach(function(item){
if (_known_blocks != null)
_known_blocks.forEach(function(item){
if (hash == item.hash) retour = item.name;
});
return retour;
@@ -27,24 +27,60 @@ blockchainExplorer = function(){
function _getblocHashFromName(name)
{
var retour = '';
_liste_blocks.forEach(function(item){
if (name == item.name) retour = item.hash;
});
if (_known_blocks != null)
_known_blocks.forEach(function(item){
if (name == item.name) retour = item.hash;
});
return retour;
}
function _convertUTCDateToLocalDate(date) {
var newDate = new Date(date.getTime()+date.getTimezoneOffset()*60*1000);
var offset = date.getTimezoneOffset() / 60;
var hours = date.getHours();
newDate.setHours(hours - offset);
return newDate;
}
function _formatDate(unixtime)
{
var ladate = new Date(unixtime*1000);
var ladateStr = "";
ladate = _convertUTCDateToLocalDate(ladate);
ladateStr += ladate.getFullYear();
ladateStr += "/" +("00"+(ladate.getMonth()+1)).slice(-2);
ladateStr += "/" +("00" + ladate.getDate()).slice(-2);
ladateStr += " " +("00" + ladate.getHours()).slice(-2);
ladateStr += ":" +("00" + ladate.getMinutes()).slice(-2);
ladateStr += ":" +("00" + ladate.getSeconds()).slice(-2);
return ladateStr;
}
function _addInfoForBlock(block)
{
var contenu = '';
var downloadingImage = new Image();
var div_label = block.height;
_cur_class = 1 - _cur_class;
blockName = _getblockNameFromHash(block.hash);
if (blockName != '') blockName = ' ( '+blockName+' )';
// if (blockName != '') blockName = ' ( '+blockName+' )';
if (_mode > 1)
if (block.hash == _liste_blocks['TOP'])
{
div_label = 'LAST';
if (blockName == '') blockName = 'LAST';
}
contenu += ' <div style="height:220px;width:100%;display:block;position:absolute">';
if (_mode != 0)
if ((_mode % 2) != 0)
{
contenu += '<div style="color:black;opacity:1.0;margin-right:30px">';
// contenu += ' <h2> <span style="font-size:12px">block</span> '+block.height+blockName+'</h2>';
@@ -52,20 +88,21 @@ blockchainExplorer = function(){
contenu += ' <table width="100%" style="margin-top:3px">';
//contenu += ' <tr><td>hash</td><td align="right"><b>'+block.hash+'</b></td></tr>';
//contenu += ' <tr><td>index</td><td align="right"><b>'+block.block_index+'</b></td></tr>';
if (_mode == 3 ) contenu += ' <tr><td>name</td><td align="right"><b>'+blockName+'</b></td></tr>';
contenu += ' <tr><td>height</td><td align="right"><b>'+block.height+'</b></td></tr>';
contenu += ' <tr><td>timestamp</td><td align="right"><b>'+block.time+'</b></td></tr>';
contenu += ' <tr><td>timestamp</td><td align="right"><b>'+_formatDate(block.time)+'</b></td></tr>';
contenu += ' <tr><td>nonce</td><td align="right"><b>'+block.nonce+'</b></td></tr>';
contenu += ' <tr><td>nb tx</td><td align="right"><b>'+block.n_tx+'</b></td></tr>';
contenu += ' <tr><td>outputs</td><td align="right"><b>'+_precisionRound(block.topisto_outputs).toFixed(4)+'</b></td></tr>';
contenu += ' <tr><td>inputs</td><td align="right"><b>'+_precisionRound(block.topisto_inputs).toFixed(4)+'</b></td></tr>';
contenu += ' <tr><td>fees</td><td align="right"><b>'+_precisionRound(block.topisto_fees).toFixed(4)+'</b></td></tr>';
if (_mode != 3 ) contenu += ' <tr><td>fees</td><td align="right"><b>'+_precisionRound(block.topisto_fees).toFixed(4)+'</b></td></tr>';
contenu += ' <tr><td>reward</td><td align="right"><b>'+_precisionRound(block.topisto_reward).toFixed(4)+'</b></td></tr>';
contenu += ' </table>';
contenu += '</div>';
}
contenu += ' </div>';
$('#info_'+block.height).html(contenu);
$('#info_'+div_label).html(contenu);
contenu = '';
contenu += '<div id="img_'+block.height+'" style="';
@@ -79,7 +116,7 @@ blockchainExplorer = function(){
contenu += 'z-index: -1; ';
contenu += '"></div>'
$('#info_'+block.height).append(contenu);
$('#info_'+div_label).append(contenu);
downloadingImage.onload = function(){
@@ -95,7 +132,7 @@ blockchainExplorer = function(){
div0.style.backgroundRepeat = "no-repeat";
div0.style.backgroundPosition = "center";
div0.style.backgroundSize = "auto 100%";
if (_mode==1) div0.style.opacity=0.3;
if ((_mode %2) == 1) div0.style.opacity=0.3;
flag_nav = true;
@@ -211,7 +248,7 @@ blockchainExplorer = function(){
_liste_blocks['BLOCK_'+data.height] = data.hash;
// Ajouter un div
_addDivForBlock(data.height,true);
if (_mode < 2) _addDivForBlock(data.height,true);
// Mettre les infos dans le div
_addInfoForBlock(data);
@@ -226,18 +263,32 @@ blockchainExplorer = function(){
block_hash = '?block_hash='+_liste_blocks['BOTTOM'];
$.getJSON('data/getBlockInfo.php'+block_hash, function( data ) {
_liste_blocks['BOTTOM'] = data.prev;
_liste_blocks['BLOCK_'+data.height] = data.hash;
_liste_blocks['LENGTH'] += 1;
// Ajouter un div
_addDivForBlock(data.height, false);
// Ajouter un div
_addDivForBlock(data.height, false);
// Mettre les infos dans le div
_addInfoForBlock(data);
// Mettre les infos dans le div
_addInfoForBlock(data);
// Récursivité pour précharger par paquets
if (_liste_blocks['LENGTH'] % 10) _addBottomBlock();
_liste_blocks['BLOCK_'+data.height] = data.hash;
_liste_blocks['LENGTH'] += 1;
switch(_mode)
{
case 0:
case 1:
// Récursivité pour précharger par paquets
if (data.height > 0)
_liste_blocks['BOTTOM'] = data.prev;
break;
case 2:
case 3:
if (data.height > 0)
_liste_blocks['BOTTOM'] = _known_blocks[_liste_blocks['LENGTH']-1].hash;
break;
}
if (_liste_blocks['LENGTH'] % 10) _addBottomBlock();
});
}
@@ -245,18 +296,35 @@ blockchainExplorer = function(){
{
var block_hash = '';
_liste_blocks = [];
_liste_blocks['LENGTH'] = 0;
$(document).scrollTop( $("#explorer").offset().top );
$('#blockchain').html('');
if (block_name != 'LAST') block_hash = '?block_hash='+_getblocHashFromName(block_name);
$.getJSON('data/getBlockInfo.php'+block_hash, function( data ) {
_liste_blocks['BOTTOM'] = data.prev;
_liste_blocks['TOP'] = data.hash;
_liste_blocks['BLOCK_'+data.height] = data.hash;
_liste_blocks['LENGTH'] += 1;
_addDivForBlock(data.height);
div_label = data.height;
switch(_mode)
{
case 0:
case 1:
// Récursivité pour précharger par paquets
_liste_blocks['BOTTOM'] = data.prev;
break;
case 2:
case 3:
div_label = 'LAST';
_liste_blocks['BOTTOM'] = _known_blocks[0].hash;
break;
}
_addDivForBlock(div_label);
_addInfoForBlock(data);
blockchainListener.addBlockHook(_addTopBlock);
@@ -288,8 +356,6 @@ blockchainExplorer = function(){
if (_known_blocks == null)
{
$.getJSON('data/getKnownBlocksList.php', function( data ) {
_liste_blocks = [];
_liste_blocks['LENGTH'] = 0;
_known_blocks = data;
_known_blocks.sort(function(a,b){