Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Internaut! posted:

still usin CVS crew checkin in

occasionally people talk about moving to git but after 12+ years with a bulletproof workflow, why

it's faster

Adbot
ADBOT LOVES YOU

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

rotor posted:

the cool thing is when someone loses a bunch of work because they accidentally delete their local repo

if you or somebody you employ deletes their local repo you deserve what you get

`rm` is the scrubbiest command, an admission of failure

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

rotor posted:

yeah actually it is. if the network or server or power goes out with the kind of regularity that makes you plan around it, get some decent infrastructure, jesus

git is that decent infrastructure

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Internaut! posted:

and not because we can literally measure the impact to our profits when our trade data falls out of byte alignment in memory for example

lmao this scrub doesn't use tools that guarantee constraints like that

if poo poo can just "fall out of byte alignment" you might as well be programming in php

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Sweevo posted:

make nodes in large data structures align on 16-byte bounderies, you can fill a cache line with one read, plus use the segment registers to point to the one you want, then optimise by hardcoding the offsets for each field

sounds boring, compiler should get it

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Deuterieux posted:

holy poo poo, my mouth dropped open when they started with making not-so-subtle "we can get you fired we know your boss" threats and her boss chimes in and is all "um... no."

yeah pretty pleased with basho management these days

https://twitter.com/antonyfalco/status/200034239700414464

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Sulk posted:

1) what kind of a name is shanley
2) who gives a gently caress, god drat this is why i never post anything on twitter

1) the name of somebody i respect a lot
2) you should never post anything on yospos either

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

CaptainMeatpants posted:

lol @ self-important manchildren unable to run companies

glad you said "companies" and not "businesses" because geeklist is mos def not a business

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

trex eaterofcadrs posted:

that's actually not a horrible strategy; spin up worker vm's with huge heaps every time you need to run a job and reclaim them immediately when the job is complete.


that's what unicorn (ruby app server) does

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

rotor posted:

:ughh:

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

rotor posted:

the unicorn doesn't work!

did you install all the gems??

crunchy bacon!! :xd:

and for things unicorn is bad at: http://rainbows.rubyforge.org/

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Char posted:

sure i mean if you're trapped in some sitcom version of 2007 or you habitually ignore languages because of imaginary people who use them then i guess this post makes sense
you also have to remember that some ruby people think wearing a helmet is key to extreme programming

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Internaut! posted:

do people pay cash dollars for solutions built on these things

how do you sell something like this to someone who wants a system built and has a pulse

"I'm here to tell you why this untested open source app server written in a third tier language by J Random Mong offering a fraction of the capability of mature free alternatives with bargeloads more risk is the perfect platform to bet your startup and your savings on"

"stop right there, where do I sign!"

even idiot idea people with money have heard of "ruby on rails," and they don't care about the details

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

rotor posted:

So the idea that you just want to get your poo poo up and functional asap and gently caress scaling until it actually becomes an issue is a perfectly reasonable choice in some circumstances.

ding ding ding

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Internaut! posted:

ah I thought this was something you would use instead of rails

looks like the ror architecture has changed totally since the last time I looked at it when you had to have packs of mongrels doing whatever the gently caress to make it work
yeah instead you have master unicorns and slave unicorns

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Sweevo posted:

wanky academic papers: the only thing haskell programmers will ever write

you forgot

Nomnom Cookie posted:

write a monad tutorial

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Markov Chain Chomp posted:

bytes are not integers and i will fight anyone who says otherwise

yeah pretty much

what's that quote about "of all the six numeric types in java none match the ones identified by aristotle" or whatever

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug
actually if you count the totally broken and stupid way numeric primitives and numeric objects work in java it has way more than six

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

yaoi prophet posted:

hurf durf i think the integers are fundamental because i'm a babby intuitionist who thinks that mathematics has to correspond to the real world

lol if you don't think integers are fundamental

what are you some kind of idiot who never learned to count

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

My Linux Rig posted:

The company I work at has started a new project with modules in Coldfusion

And holy god I think it may be worse than php

it is

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Dr. Honked posted:

nothing wrong with python, enjoy your journey into code

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

ppp posted:

just use a real compiler

unironically this

microsoft writing bad software that doesn't keep up to standards shouldn't be a surprise to anyone

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

trex eaterofcadrs posted:

in my head i thought "no way"

sure enough:


guido....

can't you just pass a block to the iterator instead of doing scrub poo poo like writing your own loops?

code:
i = (1..5).each #=> #<Enumerator: 1..5:each>
i.each {|n| puts n }
# prints:
# 1
# 2
# 3
# 4
# 5

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Shaggar posted:

this syntax is so gross

lots of that is comment

code:
i = (1..5).each
i.each { |n|
  puts n
}
groovy's the same but with more syntax
code:
i = (1..5).iterator()
for (n in i) {
  println n
}
yeah yeah i know shaggled again

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

tef posted:

maybe python isn't the best language to write million loc middleware in. who knew.

no language is the best for a million loc project

projects like that don't deserve to exist

if you can't be succinct about your ideas then it's a bad idea

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Sweeper posted:

Some things just require a lot of code

yeah but not a million lines

the examples are always poo poo like controllers for physical processes (automotive ECUs, rocketry controllers, etc) but behind the "million lines of C" is a few thousand lines of matlab or something that actually compiles to the million lines

facebook compiles to 1.5gb of binary but you can bet it's not anywhere near 1.5gb of php source or even 1.5gb of C++ intermediate code

what you have to do is design a language that makes solving your problem succinct and straightforward, and it turns out java and xml are not that language

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

trex eaterofcadrs posted:

if you dont write programs to write programs for you you are misusing the computer

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

JawnV6 posted:

i think single threaded, isn't the entire world also like that!??!?

no, but fortunately there's abstraction layers to allow you to reason synchronously about a concurrent world

threads with shared state are not that abstraction

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

trex eaterofcadrs posted:

groovy's a little better than that
5.times { println it+1 }

if we're golfing it, ruby:

code:
puts *(1..5)

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Internaut! posted:

eh assuming that reads "print all members of this set" that seems like good syntax to me

it implicitly calls to_a (to array) on the range 1..5, expands it out into multiple arguments, and calls puts with them

code:
(1..5).map(&:even?) #=> [false, true, false, true, false]
casts the symbol :even? to a proc {|x| x.even? }, calls it with each entry in the range 1..5, and returns an array of the results

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

JawnV6 posted:

i fully expect these multiple statements in my high level language, possibly separated by control flow, to be atomic

i want them to be useful, and it turns out that you can either not share anything (the right way) or use a bunch of janky ('cause they're easy to gently caress up) locking constructs to make them useful

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

JawnV6 posted:

lock bt[rs]l ought to be enough for anyone

anyone meaning implementors of compilers

erlang/otp supremacy

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Internaut! posted:

eh I look at actors in erlang/scala/clojure/etc and without looking too closely I know if they're both easy and foolproof there must be a catch and it's almost certainly performance

it probably is performance but the erlang app i work with is i/o bound not cpu bound so it's not that important

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Mr Dog posted:

also if you really wanted to abuse iterators for I/O (let's make these completely different things look exactly the same) then you'd probably make next() block or something and only make has_next() return false on EOF.

these are kind of the same thing though and it enables some cool stuff!

the "rack" http server protocol for ruby only requires that the response body respond to "each" and yield only String values to the block passed in to each

this means that regardless if your app is going to respond with "butts" or if it's going to stream a thing over a network you don't have to have the upstream app server know what's coming out (in the first case, the array of one string ["butts"]; in the second case, some kind of TCPSocket) or necessarily have your app buffer things

think of it as a duck-typed http://docs.oracle.com/javase/6/docs/api/java/io/Reader.html

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

rotor posted:

finding the end of an array is an exceptional condition

so what you're saying is that it works best if the enumeration loop knows what it's enumerating over, so you can have one version for arrays and other bounded collections and one for IO that reads until exhausted, but both present the same API to higher-level code so you don't have to care?

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Janin posted:

this is how python works, fyi

the api they're complaining about is the one for IO

nah they're at a lower level if they have to worry about exceptions from the array ending

or does python have some kind of __~^each^~__(array, lambda{but only one expression}) function with a terrible name and tenuous object-orientedness?

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Janin posted:

And why would you ever want a lambda with more than one expression? If you really need to use statements in a loop for some horrible reason, just define a local procedure.

Because using lambdas/blocks/anonymous functions as a building block for control structures is convenient

code:
class CalculatorTest < Test::Unit::TestCase
  context "a calculator" do
    setup do
      @calculator = Calculator.new
    end

    should "add two numbers for the sum" do
      assert_equal 4, @calculator.sum(2, 2)
    end

    should "multiply two numbers for the product" do
      assert_equal 10, @calculator.product(2, 5)
    end
  end
end

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Janin posted:

In Python, it's more idiomatic to use existing control structures like 'if' or 'with', rather than inventing your own ad-hoc.

Oh yeah, Ruby doesn't have "with" built-in; implementing it is an exercise for the reader https://github.com/meh/ruby-with/blob/master/lib/with.rb

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug

Sweeper posted:

What book/resource would you recommend for learning the details of ruby? It seems like a really cool language and I only know the basics atm

i never really used a book or a blog post about "metaprogramming"

work with some libraries that use ruby cleverly and read their source

if in doubt read the C source or the rubinius (ruby in ruby) source

if still in doubt ask someone

Adbot
ADBOT LOVES YOU

Cocoa Crispies
Jul 20, 2001

Vehicular Manslaughter!

Pillbug
gently caress ruby, i'm using objectivist-c for my new bitcoin miner

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply