Рубрика «печаль»

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

Как известно, первым этапом компиляции C и C++ является препроцессор, который заменяет макросы и директивы препроцессора простым текстом.

Это позволяет делать нам странные вещи, например, такие:

// xmacro.h
"look, I'm a string!"

// xmacro.cpp
std::string str = 
#include "xmacro.h"
;

Читать полностью »

Как я blakecoin майнер делал - 1

Не знаю кому как, а меня прошедший 2017 год шокировал стремительным взлетом биткоина. Сейчас, конечно, ажиотаж уже ушел, а в 17-м году про криптовалюты говорили и писали все кому не лень.

Я видел, что люди пытаются зарабатывать на криптовалютах. Кто как умеет. Кто-то на все сбережения скупал видеокарты и начинал самостоятельно майнить в гараже. Кто-то вкладывался в облачный майнинг. Кто-то пытается организовать свой пул. Кто-то запустил в производство шоколадные биткоины, а кто-то выпускает минеральную воду:

Как я blakecoin майнер делал - 2

Я тоже стал изучать, что же такое эти самые биткоины. Когда-то я даже начал свое собственное иследование алгоритма SHA256 и написал статью здесь на хабре "Можно ли вычислять биткоины быстрее, проще или легче?". Мои исследования алгоритмов хеширования до сих пор продолжаются и еще и близко не завершены… Может быть когда нибудь напишу про это отдельную статью. А сейчас пока вот это..Читать полностью »

WannaCry vs. Adylkuzz: кто кого опередил? - 1

Все уже в курсе про многоликий вирус-вымогатель WannaCry, известный также как WanaCryptor, WanaCrypt0r, WCrypt, WCRY или WNCRY. Вирус этот наделал много шума, да. Несмотря на отсутствие дешифраторов, находятся предприимчивые граждане, которые оказывают услуги по расшифровке WNCRY-файлов. Но пост не об этом.

Неожиданное заявление сделали на днях исследователи из Proofpoint. Оказывается вирус WannaCry хоть и стал известным, но всё же не был первым, кто активно эксплуатировал уязвимости в Windows, используя EternalBlue и DoublePulsar.
Читать полностью »

Безопасный интернет канал для детей теперь в РоссииС 1 февраля на просторах интернета появился новый информационный поток, который представляет собой безопасный для детей и родителей онлайн-канал. В качестве создателя этого канала выступила крупнейшая Российская организация – Лига безопасного Интернета.

Как отмечает представитель «лиги»: «В рамках созданного нами проекта, родители и дети могут найти самую разнообразную информацию – видео-контент, который является полностью легальным и безопасным». При выборе контента, прежде всего, внимание уделялось теме воспитания детей, однако та стартовая база, которая имеется на данный момент, будет пополняться и расширяться в тематике.

Кроме того, в рамках этого проекта есть множество видео с советами различных специалистов, таких как психолог, а также ряд других.Читать полностью »

image

Последние две недели я снова копался в BlackBerry 10 NDK, так как один из моих клиентов попросил помочь ему. Я предложил адаптировать свой курс «введение в Qt» под платформу BlackBerry, а также порекомендовал следовать советам из моей серии учебных роликов про BB10 и Cascades, опубликованных в начале этого года на YouTube. Теперь мне хочется поделиться с вами моими свежими впечатлениями о BlackBerry 10 NDK. Кстати, я уже писал о моих первых экспериментах с BB10 NDK этой весной.

Внимание. Это вольный перевод заметки Йэнса Веллера. Перевод сделан для составления общей картины о текущем состоянии мира [BB10 + Qt]. Приятного чтения.
Читать полностью »

Из-за того, что в PHP при сравнении строк оператор "==" пытается сначала преобразовать их в числа [1][2] (даже, если оба операнда — строки), результат порой может оказаться неожиданным:

<?php
var_dump('123' == '       123'); // true
var_dump('1e3' == '1000'); // true
var_dump('+74951112233' == '74951112233'); // true
var_dump('00000020' == '0000000000000000020'); // true
var_dump('0X1D' == '29E0'); // true
var_dump('0xafebac' == '11529132'); // true
var_dump('0xafebac' == '0XAFEBAC'); // true
var_dump('0xeb' == '+235e-0'); // true
var_dump('0.235' == '+.235'); // true
var_dump('0.2e-10' == '2.0E-11'); // true
var_dump('61529519452809720693702583126814' == '61529519452809720000000000000000'); // true в php < 5.4.4

Читать полностью »

The Old Reader, замыкающий топ-5 лучших замен Google Reader по версии replacereader.com, в последнее время преследовала полоса неудач: то там что-то поломается, то тут, недавно и вовсе последовательно полетело несколько SSD-дисков и расхлебывать это пришлось несколько дней. Надо помнить, что создатели The Old Reader всегда напоминали, что их читалка была проектом «для себя» и лишь новость о скором закрытии RSS-читалки от Google принесла сервису некоторую долю популярности.
Читать полностью »

Сервис OnLive закрывается?
В пятницу утррм на очередном собрании сотрудников сервиса OnLive, пионера облачных игр, было объявлено что компания подаёт на банкротство решила передать всё своё имущество и права управлением компанией кредиторам. (в оригинале Assignment for the Benefit of Creditors) и более 200 работников потеряли свою работу в один день.
Читать полностью »

Сказ о том, как PHP на LINQ портировали. Сравнение ныне существующих библиотек с табличками, но без графиков — прилагается.

Картинка код для привлечения внимания (картинок не дождётесь!)

echo Phinq::create($people)
  ->groupBy(function($person) { return $person->residence->region; })
  ->select(function($grouping) {
    $obj = new stdClass();
    $obj->people = $grouping;
    $obj->region = $grouping->getKey();
    return $obj;
  })->orderBy(function($obj) { return $obj->people->count(); }, true)
  ->aggregate(function($current, $next) {
    $count = $next->people->count();
    return $current . sprintf(
      "%d %s (%s) live in the %s regionn",
      $count,
      $count === 1 ? 'person' : 'people',
      $next->people->aggregate(function($current, $next) {
        if ($current !== null) {
          $current .= ', ';
        }
        return $current . sprintf('%s [%s]', $next->name, $next->residence->code);
      }),
      $next->region
    );
  });

Кто видел C# или любой функциональный язык — при виде этого шедевра закатит глаза (если они предварительно не вылетят из орбит). И, наверное, будет прав. Но можно ещё вот так:

$lowNums =
	from('$n')->in($numbers)->
	where('$n < 5')->
	store($digits)->into('digits')->
	select('$digits[$n]');

Читать полностью »

С каждой новой версией Оперы я надеюсь на лучшее. И каждый раз — разочарование: старые достижения урезаются, новые ограничения и глюки добавляются. Отдельной темы достойна адресная строка.

Opera 12: памяти адресной строки

Помните светлые времена, когда выпадающий список был длинным, когда URL отображался полностью, когда можно было вводить локальные адреса и не оказываться в гугле?

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js