Best viewed with LeechCraft on Microsoft Linux. Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1239.0 пользователей не могут ошибаться!
?6942
прекрасное6443
говно5905
говнорашка5512
хуита4716
anime3066
linux2652
music2635
bnw2602
рашка2565
log2354
ололо2173
дунч1829
pic1815
сталирасты1491
украина1439
быдло1437
bnw_ppl1419
дыбр1238
гімно1158

Один из главных отососов в современных языках программирования - это отсутсвие во многих из них поддержки keyword arguments.

Эта хуйня существенно повышает читаемость и, как следствие, качество кода.

В некоторых ЯП, в которых есть встроеные литералы для словарей проблема может решаться ими.
В остальных - это мрак, отсос и говно.

Как ни странно, божественная статическая типизация тут не роляет совершенно. Ведь очень легко перепутать аргументы с одинаковыми типами местами и потом долго ломать голову какого Х не работает. В случае keyword args достаточно поверхностного осмотра кода, чтобы понять что не так.

#A9QJJ9 (124+1) / @ninesigns / 3229 дней назад

https://gist.github.com/lexszero/03b959b70ba31b3441d7
Костыль для профайлинга башеговна.

[I]l…@n…d ~ > cat 1.sh 
#!/bin/bash
echo foo
sleep 1
echo bar

[I]l…@n…d ~ > bash_dbg 1.sh 
foo
bar
1453349630.074218273    + bash -x 1.sh
 0.001578295    + echo foo
 0.000074152    + sleep 1
 1.003924465    + echo bar
 0.000391305    + set +x

Total:  1.005968217
#6XD4WM (5+1) / @lexszero / 3230 дней назад
Хацкель это такая вундервафля для расчесывания ЧСВ зигохистоморфными препроморфизмами. Причем не обязательно сам хахацкель знать, достаточно нахвататься терминов и можно с умным видом копипастить бредятину и считаться крутым хахацкером и гуру матана. Конечно есть полторы конторы в мире, которые реально применяют весь этот матан, но для бнвшной школоты это немножко другая галактика. Простые смертные смогли на хачкеле слабать только убогонький тормозной недоwm, тянущий гигабайт зависимостей. Вот и вся история успеха.
#4VN9J9 (7+2) / @anonymous / 3236 дней назад
http://www.redbook.io - whitepaper'ы по базам данных и комментарии к ним. Всё (по крайней мере, пока) доступно для скачивания и чтения бесплатно. Ах да, если кто до сих пор не читал http://book.mixu.net/distsys/single-page.html - тут про основы распределённых систем и ссылки на whitepaper'ы. Вот, например, один из них: http://arxiv.org/abs/0909.1788 (Building on Quicksand), интересный. В работе рассматриваются распределённые системы прошлого и их эволюция. Перевод: http://citforum.ru/database/articles/quicksand/ . По-моему, оригинал читать легче. https://aphyr.com/posts/313-strong-consistency-models - хорошая статья про разные модели consistency. Не знаю, как, но после неё вышел на этот сайт: http://preshing.com/20120930/weak-vs-strong-memory-models/ . На сайте этом тоже статьи про consistency, но больше про перестановку операций на этапе компиляции и в рантайме в ЦПУ, а также про связь этих перестановок с lock-free алгоритмами.
#935GEN (8+2) / @ckorzhik / 3248 дней назад

GPU text rendering with vector textures.
http://wdobbie.com/post/gpu-text-rendering-with-vector-textures/
demo

#AKWVM2 (9) / @ninesigns / 3248 дней назад

Вот тут кто-то [наговнил] либу для параллелизма для Rust:

let total_price = stores.par_iter()
.map(|store| store.compute_price(&list))
.sum()

Конечно мало сделать параллелизм простым, его надо сделать ещё и безопасным. Rayon гарантирует, что использование его API никогда не приведёт к гонке данных.

Мне вот интересно, неужели в rust нет способа захватить ref на Weak Box и таким образом выстрелить себе в ногу (ну или организовать race condition).

Не слишком ли громкое заявление?

Олсо, реквестирую подобных либ для плюсцов.

#12REV0 (4) / @ninesigns / 3252 дня назад

https://github.com/eudoxia0/magma
Осторожно, наркомания. Костыльсет для сишки с модными фичами типа лямбд, лени, ADT, какого-то вывода типов и всего что можно написать на лисповой макре.

#ULSHA2 (6+2) / @lexszero / 3253 дня назад
http://habrahabr.ru/post/273999/ >Линда Льюкас самостоятельно научилась программированию, чтобы сделать сайт, посвящённый Альберту Гору >«Из женщин получаются хорошие программисты, потому что они творческие натуры и одновременно прекрасно умеют общаться»,- поясняет она мне при встрече на технологической конференции в Лондоне. Что за хуйню я читаю? У вас есть какие-то статистические данные по поводу того, из кого при прочих равных условиях получаются лучшие программисты? Этот наброс на говнохабре выглядит примерно как "Смотрите, я женского пола и умею программировать. Теперь вы, задроты, кланяйтесь мне!". Если тебя оценивают как программиста, никого вообще не ебет, какие там у тебя хромосомы и что там у тебя в трусах, важен лишь выдаваемый тобой код, твое умение ловить баги в коде и скорость, с которой ты это делаешь. https://i.imgur.com/cuzfDk4.jpg
#A1DOWP (35+2) / @j123123 / 3257 дней назад

http://www.youtube.com/watch?v=KJe9H6qS82I

SmoothLife is a family of rules created by Stephan Rafler. It was designed as a continuous version of Conway's Game of Life - using floating point values instead of integers. This rule is SmoothLifeL which supports many interesting phenomena such as gliders that can travel in any direction, rotating pairs of gliders, wickstretchers and the appearance of elastic tension in the 'cords' that join the blobs.

http://arxiv.org/abs/1111.1567

#6VNDOF (1) / @ninesigns / 3258 дней назад

ADTs in Typed Racket with macros

Немного изящного (макроебства)[http://lexi-lambda.github.io/blog/2015/12/21/adts-in-typed-racket-with-macros/] и в тайпед/ракетке можно юзать ADT с паттерн матчингом.
(Прямо как во взрослых крутых языках).

(define-datatype Expr
  (Value Number)
  (Add Expr Expr)
  (Subtract Expr Expr)
  (Multiply Expr Expr)
  (Divide Expr Expr))

(: evaluate (Expr -> Number))
(define (evaluate e)
  (match e
    [(Value x)      x                            ]
    [(Add a b)      (+ (evaluate a) (evaluate b))]
    [(Subtract a b) (- (evaluate a) (evaluate b))]
    [(Multiply a b) (* (evaluate a) (evaluate b))]
    [(Divide a b)   (/ (evaluate a) (evaluate b))]))

> (evaluate (Add (Value 1)

                 (Multiply (Divide (Value 1) (Value 2))
                           (Value 7))))
4 1/2

Интересно, ебанется ли кто-нить достаточно чтобы набыдлить какой-нить аналог хаскеля или scalaz?

#R60TPL (14) / @ninesigns / 3259 дней назад
... Внезапно АНДРЕЙ увидел ВЫЧИСЛЕНИЕ ЧИСЕЛ ФИБОНАЧЧИ ВО ВРЕМЯ КОМПИЛЯЦИИ НА C++ и замер. В его уставшей, больной голове что-то щелкнуло - он нашел, что искал. Он начал читать книги по C++. Чем дальше он проникал в тайны C++, тем больше он понимал, что этот язык создан для него. Мерзкие извращения, которые он наблюдал на страницах, глубоко резонировали с его истерзанной и едко ненавидящей все светлое душой. Его глаза наливались кровью от удовольствия и слезы текли по щекам, от осознания, что на свете есть люди, не намного менее больные, чем он. АНДРЕЙ понимал, что скоро ему сделают третью лоботомию и тогда он вряд ли сможет написать книгу. Времени до третьей лоботомии оставалось немного и АНДРЕЙ решил начать писать книгу прямо сейчас. "THE TIME IS NOW, ANDREI", сказал он вслух самому себе на ломаном английском с выблядски кривым акцентом и начал писать. Вначале он не знал, в чем суть того, что он пишет. Но со временем картина стала ясной как день. АНДРЕЙ взял самый гнилой, уродский и омерзительный язык программирования и решил довести его до уровня сумасшествия, до сих пор невиданного в мире людей. Первый (и последний) технический рецензент его книги, сошел с ума и убил всю свою семью, после прочтения нескольких глав. Узнав об этом АНДРЕЙ смеялся, пока не потерял сознание. АНДРЕЙ понимал, что все идет как надо. Сразу после того, как он дописал последнюю главу, ему сделали последнюю лоботомию и писать книги ему больше не хотелось. Представители издателя взяли книгу АНДРЕЯ и, согласившись ее издать, спросили у него, как бы он хотел ее назвать. На ломаном, кривом английском он ответил: "MODERN C++ DESIGN: GENERIC PROGRAMMING AND DESIGN PATTERNS APPLIED BY ANDREI ALEXANDRESCU". Его акцент был настолько уебищен, что представители издателя начали ржать, с такой силой, что моча начала струиться по их ногам. Но, слишком поздно они поняли, что это была моча АНДРЕЯ...
#9A9C8F (4+5) / @j123123 / 3266 дней назад

cat ~/bin/420

!/bin/bash

while :; do
d=date
grep '4.*2.*0' <<< "$d" >/dev/null && {
notify-send -u critical "It's 4:20 time" "$d"
sleep 60
} || {
sleep 1
}
done

#G5I1I5 (13+3) / @lexszero / 3269 дней назад
https://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/IBM_Port-A-Punch.jpg/1920px-IBM_Port-A-Punch.jpg According to the IBM Archive: IBM's Supplies Division introduced the Port-A-Punch in 1958 as a fast, accurate means of manually punching holes in specially scored IBM punched cards. Designed to fit in the pocket, Port-A-Punch made it possible to create punched card documents anywhere. The product was intended for "on-the-spot" recording operations—such as physical inventories, job tickets and statistical surveys—because it eliminated the need for preliminary writing or typing of source documents.. Во как раньше жили люди, вручную битики протыкали в перфокартах. А то вот сейчас вимы, емаксы всякие. Хуита, не по-хардкору
#KTBJ55 (2) / @j123123 / 3272 дня назад

Просто и элегантно.
Спасибо динамической типизации!

#lang racket
(require math)
(require racket/match)

(define (inverse func)
  (match func
    ['exp log]
    ['cos acos]
    [_ #f]))

(printf "Inv[~a](~a) = ~a\n" 'exp (exp 1) ((inverse 'exp) (exp 1)))
(printf "Inv[~a](~a) = ~a\n" 'cos 1       ((inverse 'cos) 1))

http://pasterack.org/pastes/74110

Inv[exp](2.718281828459045) = 1.0
Inv[cos](1) = 0

#F6MJXE (39) / @ninesigns / 3272 дня назад
Охуенно выразительно и красиво. Спасибо статической типизации. data LinkedList a = EmptyLinkedList | LinkedList (LinkedList a) (LinkedList a) a
#4WNX3D (18) / @l29ah / 3273 дня назад

Охуенно выразительно и красиво. Спасибо статической типизации.

struct Node<T> { 
    prev: Raw<T>, 
    next: Link<T>, 
    elem: T, 
} 

type Link<T> = Option<Box<Node<T>>>; 

struct Raw<T> { 
    ptr: *mut Node<T>, 
} 

pub struct LinkedList<T> { 
     len: usize, 
     head: Link<T>, 
     tail: Raw<T>, 
} 
#LEUCOH (52+1) / @ninesigns / 3273 дня назад
http://www.govnokod.ru/19105 похоже что я изобрел особый стиль говнопрограммирования. Комментарии эпичные, знатно я посрался там с одним типом на тему хуевости C++ шаблонов и constexpr
#RBGV9Q (5) / @j123123 / 3281 день назад

есть либа, которую загружаю через dlopen, можно ли как-то подменить внешний символ, который будет использоваться в этой либе? конкретно я хочу, чтобы всё что внутри либы использовало кастомный malloc, а вот всё что снаружи — обычный

#3RS7JK (9) / @hirthwork / 3285 дней назад

Новая ракетка вышла.

Roughly, hygienic macro expansion is desirable for the same reason as lexical scope: both enable local reasoning about binding so that program fragments compose reliably. The analogy suggests specifying hygienic macro expansion as a kind of translation into lexical-scope machinery. In that view, variables must be renamed to match the mechanisms of lexical scope as macro expansion proceeds. A specification of hygiene in terms of renaming accommodates simple binding forms well, but it becomes unwieldy for recursive definition contexts (Flatt et al. 2012, section 3.8), especially for contexts that allow a mixture of macro and non-macro definitions. The renaming approach is also difficult to implement compactly and efficiently in a macro system that supports “hygiene bending” operations, such as datum->syntax, because a history of renamings must be recorded for replay on an arbitrary symbol.

In a new macro expander for Racket, we discard the renaming approach and start with a generalized idea of macro scope, where lexical scope is just a special case of macro scope when applied to a language without macros. Roughly, every binding form and macro expansion creates a scope, and each fragment of syntax acquires a set of scopes that determines binding of identifiers within the fragment. In a language without macros, each scope set is identifiable by a single innermost scope. In a language with macros, identifiers acquire scope sets that overlap in more general ways.

http://www.cs.utah.edu/plt/scope-sets/index.html

#U252BB (0) / @ninesigns / 3287 дней назад

yay отличная книжка чтобы освежить память и накидать пару несложных нейронок на своем уютном маня-язычке.

http://neuralnetworksanddeeplearning.com/

#39NPTH (11+1) / @ninesigns / 3288 дней назад
--
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.