Pull to refresh
33
ionicman@ionicman

User

0,1
Rating
11
Subscribers
Send message
ИМХО — не сильно удобно. А в ямку перед собой посмотреть? А из окна вниз? Достаточно распространенные операции. Понятно, что можно включить в ручном режиме, но тогда накой все эти навороты?
Да и вообще, чем меньше фонарь думает за тебя в боевых условиях — тем лучше.

Сейчас появились фонари с магнитным кольцом для регулировки яркости как надо, когда надо + гарантируя водонепроницаемость, если она гарантируется фонарем.
Яркий и в прямом и переносном смысле этого слова представитель этого класса, к тому же с весьма неплохим соотношением цены/качества является Sunwayman V20C.
Обзор его на фонаревке тут, а посмотреть и заказать можно тут.
К тому же он а 18650 что очень и очень хорошо.
По мне — так это гораздо лучший EDC, пусть и чуть больший по размерам.
Есть, но вполне решаемые, пусть и не очень красивые.
Зато на альтернативном языке, как того хочет мозг.
Э, господин хороший, не подменяйте понятия, мы тут с Вами про JS говорим и посыл был изначально другой, никто про модность слаботипизирования тут не говорил ничего.

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

слаботипизированный != нетипизированный как-бе )
Трансляция Вас чем не устраивает? Dart тот-же, чем не альтернатива? По производительности практически один-в-один.

Ругать можно все, что угодно — толку?

Сделайте что-то лучше, предложите это сообществу — кто знает — быть может в будущем мы будем тогда kudrjs писать :-D

Лично меня JS вполне устраивает, если не писать, разбрасывая подводные грабли (а это быстро приходит с опытом), то никаких неудобств и непонимания не возникает.

Вполне логичный и лаконичный язык. Развивается он да, медленно — но, увы, это упирается в браузеростроение а не в сам язык.
О давайте тут про ассемблер поговорим и про работу напрямую с памятью в браузере — это же так ускоряет разработку, когда все напрямую :-D
Я вот знаю intel, zilog, microchip и atmel нотации, а Вы? )))
Самое место.

Харош уже троллить, Все подробно и четко уже описали Вам, дальше уже не смешно.
Ибо string, number & boolean — это разные объекты — именно зайчики, ежики и гиппопотамы в Вашей терминологии. Вы работаете с их экземплярами.

Если бы это был язык со строгой типизацией, то операции типа string == boolean в принципе не возможны — сразу же будет ошибка.

Но если такое сделать в языке, построенном на слабой типизации — то это будет ад.

По этому каждый объект имеет методы приведения к определенному типу (или одному универсальному типу) и есть неявное приведение этих типов, чтобы можно было писать string == false, и в мануале описано как че когда себя ведет и во что преобразуется.

Вы ругаетесь на JS, потому что пытаетесь к нему относится с точки зрения строго типизированных языков, точно так-же его ругают те, кто не понимает прототипы, говоря что ООП у языка нет (ну или оно неправильное) и это пи#$ец!

Нельзя ругать отвертку за то, что Вы ей паять пытаетесь, хотя да — она вполне похожа на паяльник.

Разберитесь, что такое JS — и тогда все встанет на свои места.

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

Если Вам он не удобен, не привычен и не интуитивен — возьмите другой, не мучайтесь.
Благо альтернативы есть, пусть и с трансляцией.
Я там выше написал вам что JS — это «язык со слабой типизацией», не поленитесь — посмотрите что это — и Вам станет очевидно такое поведение.

У языка есть неявное преобразование типов, которое обязано его слабой типизации, именно по этому там есть «строгое» (с точностью до типа) и «не строгое» (с автоприведением типов) сравнение.

Аналогия с девочкой неуместна — если ты настоящий мужик, она всегда скажет тебе «ДА».
Будьте настоящим программистом :-D
Я Вам специально там ниже ответил, для тех, кто любит видеть в лесу только елки :)
Я могу в if использовать и арктангенс, и это тоже будет вполне валидно :)
Но уж если вы пользуетесь сокращенными вариантами типа "!" то будьте любезны знать как оно работает.
== это оператор сравнения без учета типа объекта
! это оператор отрицания

Вы работаете с языком со слабой типизацией, если Вам это ничего не говорит и вы не видите разницы в операторах, то я не могу Вам ничем помочь :)

И это никакой не дурдом, а вполне нормальное поведение, описанное в стандарте.
:-D по-моему как малолетний ведете себя Вы, ну как минимум в последнем то сообщении точно.

Ну да зато я хоть поржал, люблю неадекватов :-)

И заметь, пиво мы с Вами не пили, так что тыкай друзьям своим. Вежливость никто не отменял.
ОО, Вы реально доставляете :-D

Что ж там такого неидеального с т.з. веб-разработки? :)

А я не говорил ничего про линь и веб-разработку :-D

У меня такое впечатление складывается, что Вы или не читаете или не понимаете что я пишу, или то и другое вместе :-D

Ну или Вы тролль :-D

Линукс в качестве десктопа пока все еще на айс — увы.

Вот мои слова, тут нет ни слова о веб-разработке. «в качестве декстопа» по моему вполне понятно что говорится о GUI, не?

Точно! То что такого пакета нет под виндой виноват программер!

Не, реально, остыпьте мне того, чего употребляете :-D Этож как надо было исказить то, что я писал ))))

Ну что делать, разжую «Если программист использовал костыль вместо проверенного и уже существующего решения из-за того, что данное решение не работает на его системе».

Ну это примерно как если-б Вы сидели под линуксом и не смогли пакет PCRE собрать и установить (хотя абсолютно понятно что именно он Вам нужен) — ну не получилось, забили и написали свою машину регулярных выражений :-D

За велосипеды я бью очень больно и это правильно.

Потому что если что-то у вин-пхпхера не идет на машине, ему доступна настроенная опытным линуксоидам песочница под дебианом с доступом прямо из JB PHPStorm-а по SSL. Как раз для таких случаев.

Но мы то не про это совсем разговаривали )
Надеюсь, донес. Мне страшно за тех людей, которые дают Вам работу — если Вы ТЗ также витеевато интерпретируете — это пи#$ц, простите :-D
Для меня это не новость.

Некоторые инструменты — да, некоторые модули — да.
Основные — отлично работают.
nginx под виндой в качестве продакта не айс, в качестве энвиромента — вполне гуд.

Это все вовсе не означает, что веб-программер, работающий на линуксе гораздо лучше работающего на винде, как и наоборот.
Я вот это все пытаюсь донести, но видимо не судьба )))

Юзать можно все, что угодно. Дело привычек и все такое. Многим не нравятся некоторые особенности — даже в этой теме народ отписывался.

Еще раз повторю — как десктоп Линь все еще далеко не идеален.
Юзать можно, да.

Я могу программить вообще в консоли, юзая лишь nano/ed/vim/mc и вполне буду себя комфортно при этом ощущать :-D

Но это ни говорит ни о моей продвинусти, ни о моем качестве кода.

Еще раз — Линух и Винда никак не сказывается на качестве решаемой задачи веб-программером, как и на его продвинутости.
Если человек долбо#$ — то он будет им вне зависимости на чем сидит :-D
Как и наоборот.

Вот если программер упрется в то, что под виндой не ставится какой-то пакет и вместо этого он напишет костыль — то тогда да, пипец.
Но, опять-же, тут дело в человеке и в ничем более.
Эк Вы неугомонный :)

Линукс в качестве десктопа пока все еще на айс — увы.
OpenNet Вам в помошь — там много по этому поводу воды расписано.
IOS да.

Если проекты на уровне сайта-визитки то да, конечно выбор ОСи — второстепенно.

ОСи разработки имелось ввиду, а не где крутиться будет :-)
От ОСи разработки не зависит продукт точно.

Совершенные инструменты тоже не завязаны на ОСь — они завязаны на человека, который их юзает как и технологии.
А то по-вашему если человек на винде сидит, то ему и новые технологии никакие в программировании не доступны ))) Насмешили.

А по поводу убеждения — зачастую старые дядьки более опытны — не рассматривали такой вариант? :-D

Вот если человек факты и аргументы — это да, пипец.

А насчет чуши — ну например в этой статье я чуши не вижу никакой.

Я еще раз попробую донести до Вас то, что Вы так упорно игнорируете — от выбора системы навыки программиста как и его код не зависят (во всяком случае в данном контексте).
Продавать себя на фриласне и заниматься продажами продукта уровня энтерпрайз или чуть ниже — две ааабсолютно большие разницы — поговорите с знакомыми продакт-менеджерами — они Вам расскажут :-D

Большинство этих программеров могут поднять и настроить Апач и мускл под дебианом — это осилили? :)

Но работать им привычней под виндой — свои утилиты и инструменты, к которым они прикипели, и которые заточили как им удобно, да ипросто привычная парадигма системы. Я не навязываю им выбор среды разработки.

Этих, как Вы называете «чудаков» весьма немало. И я среди них встречал очень и очень нехилых профи. Качество кода не зависит от операционной системы — поверьте :)
На продакте действительно стоит линь, но например я не встречался с какими-либо проблемами работы кода что под PHP / Python, за исключением того что под линь оно быстрее и дольше робит ну и незначительные различия :)

И еще одно — умейте уважать чужое мнение, и людей, его имеющих.
Здесь все — грамотные и уважаемые технари.
Потому что то, как Вы пишите и что Вы пишите делает Вас похожим на типичную школоту.

И опять-же возвращаясь к чудакам — у меня в ведении несколько серваков под Debian / FBSD. Настраивал их я.
На работе у меня две системы — Kubunta и W7.
Дома W7, на серваки захожу из под нее же.
И за плечами у меня как минимум 3 энтерпрайс проекта и веб программинг с 1990 года — это я не хвастаюсь — просто констатирую факты.
И, не поверите, я предпочитаю win для написания кода!
Потому что я старый динозавр, привык бля к винде :-D

Однако по Вашему я чудак, ни на что не спосбный :-D

Будьте терпимей к другим — это убережет Вас от кучи ошибок и сохранит Вам зубы и морду в трогательной девственной красоте ;)
Че-то я Вас не понимаю, То Вы пишите, что продажами занимаетесь, то — что разработчик.

Вы вообще смотрели статью то? И Что в сборке?

Там нет никакой солянки, там набор стандартных пакетов типа Apache / MySQL / Python под вонь и несколько cmd-шников, которые патчат их инишки и ВСЕ.

По поводу адекватных разработчиков не загоняйтесь —
у меня в конторе из 13 веб-программеров 10 сидят под виндой, и мне например эта сборка очень приглянулась — ибо работает с пол пинка.

А автора Вы пытались учить продажам кстати и отношению к клиентам (причем еще и абсолютно неправильным вещам) — от по этому он Вас про продажи спрашивал :-D
Ну рискну предположить, что там нет Python-а. Совсем :-D
На самом деле, а почему не PBKDF2?
Вроде бы как сейчас самый верный вариант, из того что смог посмотреть.

В PHP есть имплементация простая:
код
/*
 * Password hashing with PBKDF2.
 * Author: havoc AT defuse.ca
 * www: https://defuse.ca/php-pbkdf2.htm
 */

// These constants may be changed without breaking existing hashes.
define("PBKDF2_HASH_ALGORITHM", "sha256");
define("PBKDF2_ITERATIONS", 1000);
define("PBKDF2_SALT_BYTES", 24);
define("PBKDF2_HASH_BYTES", 24);

define("HASH_SECTIONS", 4);
define("HASH_ALGORITHM_INDEX", 0);
define("HASH_ITERATION_INDEX", 1);
define("HASH_SALT_INDEX", 2);
define("HASH_PBKDF2_INDEX", 3);

function create_hash($password)
{
    // format: algorithm:iterations:salt:hash
    $salt = base64_encode(mcrypt_create_iv(PBKDF2_SALT_BYTES, MCRYPT_DEV_URANDOM));
    return PBKDF2_HASH_ALGORITHM . ":" . PBKDF2_ITERATIONS . ":" .  $salt . ":" . 
        base64_encode(pbkdf2(
            PBKDF2_HASH_ALGORITHM,
            $password,
            $salt,
            PBKDF2_ITERATIONS,
            PBKDF2_HASH_BYTES,
            true
        ));
}

function validate_password($password, $good_hash)
{
    $params = explode(":", $good_hash);
    if(count($params) < HASH_SECTIONS)
       return false; 
    $pbkdf2 = base64_decode($params[HASH_PBKDF2_INDEX]);
    return slow_equals(
        $pbkdf2,
        pbkdf2(
            $params[HASH_ALGORITHM_INDEX],
            $password,
            $params[HASH_SALT_INDEX],
            (int)$params[HASH_ITERATION_INDEX],
            strlen($pbkdf2),
            true
        )
    );
}

// Compares two strings $a and $b in length-constant time.
function slow_equals($a, $b)
{
    $diff = strlen($a) ^ strlen($b);
    for($i = 0; $i < strlen($a) && $i < strlen($b); $i++)
    {
        $diff |= ord($a[$i]) ^ ord($b[$i]);
    }
    return $diff === 0; 
}

/*
 * PBKDF2 key derivation function as defined by RSA's PKCS #5: https://www.ietf.org/rfc/rfc2898.txt
 * $algorithm - The hash algorithm to use. Recommended: SHA256
 * $password - The password.
 * $salt - A salt that is unique to the password.
 * $count - Iteration count. Higher is better, but slower. Recommended: At least 1000.
 * $key_length - The length of the derived key in bytes.
 * $raw_output - If true, the key is returned in raw binary format. Hex encoded otherwise.
 * Returns: A $key_length-byte key derived from the password and salt.
 *
 * Test vectors can be found here: https://www.ietf.org/rfc/rfc6070.txt
 *
 * This implementation of PBKDF2 was originally created by https://defuse.ca
 * With improvements by http://www.variations-of-shadow.com
 */
function pbkdf2($algorithm, $password, $salt, $count, $key_length, $raw_output = false)
{
    $algorithm = strtolower($algorithm);
    if(!in_array($algorithm, hash_algos(), true))
        die('PBKDF2 ERROR: Invalid hash algorithm.');
    if($count <= 0 || $key_length <= 0)
        die('PBKDF2 ERROR: Invalid parameters.');

    $hash_length = strlen(hash($algorithm, "", true));
    $block_count = ceil($key_length / $hash_length);

    $output = "";
    for($i = 1; $i <= $block_count; $i++) {
        // $i encoded as 4 bytes, big endian.
        $last = $salt . pack("N", $i);
        // first iteration
        $last = $xorsum = hash_hmac($algorithm, $last, $password, true);
        // perform the other $count - 1 iterations
        for ($j = 1; $j < $count; $j++) {
            $xorsum ^= ($last = hash_hmac($algorithm, $last, $password, true));
        }
        $output .= $xorsum;
    }

    if($raw_output)
        return substr($output, 0, $key_length);
    else
        return bin2hex(substr($output, 0, $key_length));
}

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

Реально ли это можно подобрать? Ибо, если честно, не особо верится.

Information

Rating
3,593-rd
Registered
Activity