|
ahhh spiders posted:the function call operator. calling a function is an operation on the function I know I addressed that, jeez. Rufo what's CSP?
|
# ? May 29, 2012 23:35 |
|
|
# ? May 8, 2024 21:21 |
|
csp is basically threads/tasks with value-only messaging i.e. a task can send messages to other tasks but can't reach in afterward and change their contents, see also early unix and web workers and soa
|
# ? May 30, 2012 00:11 |
|
Gazpacho posted:soa
|
# ? May 30, 2012 00:13 |
|
Shaggar posted:if ur writing ur own http request parser ur beyond all help it's me, i am beyond all help
|
# ? May 30, 2012 00:27 |
|
Internaut! posted:just pointing out the user experience of processes crashing is less than optimal btw if you fancy learning things, go and read joe armstrong's thesis, or jim gray's "why do computers stop and what can be done about it" to learn more about process supervision or crash only software.
|
# ? May 30, 2012 00:29 |
|
JawnV6 posted:hey tef i tried searching but what was that joke you RTed about 1980 called, well, actually 1980 passed us a pointer... I have no idea I rt things that make me go heh all the time.
|
# ? May 30, 2012 00:29 |
|
Rufo posted:csp owns and tony hoare owns
|
# ? May 30, 2012 00:30 |
|
i enjoy tweeting and retweeting
|
# ? May 30, 2012 00:31 |
|
Ronald Raiden posted:Rufo what's CSP? a formal language for describing systems of communicating processes. you can use it to program things (occam) and you can use it to specify models which you can test other things against (fdr2) and you can use it as a specification language from which other things can be generated (tangram). its got fingers in a ton of different compsci pies. this is a good introductory book http://web.comlab.ox.ac.uk/oucl/work/bill.roscoe/publications/68b.ps
|
# ? May 30, 2012 00:32 |
|
your mom uses hoare semantics
|
# ? May 30, 2012 00:32 |
|
tef posted:your mom uses hoare semantics
|
# ? May 30, 2012 00:33 |
|
before you empty quote me I basically lifted it from this http://www.monzy.com/intro/drama_lyrics.html
|
# ? May 30, 2012 00:35 |
|
code:
quote:INTERCAL has many other features designed to make it even more aesthetically unpleasing to the programmer: it uses statements such as "READ OUT", "IGNORE", "FORGET", and modifiers such as "PLEASE". This last keyword provides two reasons for the program's rejection by the compiler: if "PLEASE" does not appear often enough, the program is considered insufficiently polite, and the error message says this; if too often, the program could be rejected as excessively polite. Although this feature existed in the original INTERCAL compiler, it was undocumented.
|
# ? May 30, 2012 01:57 |
|
tef posted:btw if you fancy learning things, go and read joe armstrong's thesis, or jim gray's "why do computers stop and what can be done about it" to learn more about process supervision or crash only software. interesting to see armstrong's approach to erlang and his hierarchical breakdown, our architecture has a similar breakdown in that macro tasks are defined in process groups, smaller tasks in processes, smaller tasks in threads, and everything is fail fast and everything is supervised i.e. threads have their own supervisor in process, processes have their own supervisor in the process group, process groups have supervisors running locally and remotely, all focused on being as isolated from each other as possible - the concurrency elements would have been an order of magnitude easier to write in erlang of course, but who knows how they'd perform especially under heavy contention (markets making GBS threads themselves) which is where we need QoS guarantees the most gray's paper is pretty well known in my industry, lots of tandem deployments out there and I'm pretty sure his bigass book on transaction management systems is floating around our library, and the only safety method in the paper we don't make use of is the tandem processing for obvious reasons all told good links voted 5 edit: good timing, after going missing at sea in 2007 jim was pronounced legally dead just 2 weeks ago skeevy achievements fucked around with this message at 02:32 on May 30, 2012 |
# ? May 30, 2012 02:09 |
|
Panic! At The cisco posted:i enjoy tweeting and retweeting Retweeting is like emptyquoting
|
# ? May 30, 2012 05:18 |
|
man shaggar just been ownin fools left & right jesus
|
# ? May 30, 2012 05:23 |
|
Ridgely_Fan posted:if your changing what your comparing, you will need to name the new comparator something else, and youll have to find and replace anyway. in java land u just wave your magic wand and say "IDE, i command you to change the name of yon identifier" and lo, it is done. in comments, build files, the project wiki, everywhere
|
# ? May 30, 2012 05:30 |
|
Nomnom Cookie posted:the project wiki anyhow write up your CheekSizeButtComparatorFactoryFactoryFacadeAdapterProxy any be done with it
|
# ? May 30, 2012 05:44 |
|
if you're coding java and type more than 3 characters without invoking some kind of completion you're doing it horribly wrong
|
# ? May 30, 2012 05:57 |
|
|
# ? May 30, 2012 05:58 |
|
that's about 20 keystrokes in idea
|
# ? May 30, 2012 06:02 |
|
or you could just writecode:
|
# ? May 30, 2012 06:16 |
|
or i could writecode:
|
# ? May 30, 2012 06:25 |
|
taking line noise and running it through strings doesn't make it any better
|
# ? May 30, 2012 06:48 |
|
Nomnom Cookie posted:and go home and get drunk on wine coolers gross
|
# ? May 30, 2012 08:10 |
|
Internaut! posted:interesting to see armstrong's approach to erlang and his hierarchical breakdown, it seems i've sent coals to newcastle It is good to see erlang style decomposition outside of erlang. (honestly I've never got the chance to use erlang in production, so I've had to make do with re-inventing it) quote:the concurrency elements would have been an order of magnitude easier to write in erlang of course, the thing that isn't really hammered within the thesis (iirc) is that you write state-machines as processes in erlang, by the magic that is tail recursion. I would assume you've experienced something like this in clojure. really, the only thing I recall about the thesis is joe armstrong apologising for the typesetting. quote:but who knows how they'd perform especially under heavy contention (markets making GBS threads themselves) which is where we need QoS guarantees the most I think mononcqc can vouch better for realtime/qos guarantees in erlang better than I can. (aside: I am curious as to what you make of LMAX's disruptor) I don't think erlang is necessarily the right tool here, but you've obviously gone down a similar path - how do your processes communicate in your current system? Channels? Mailboxes? quote:gray's paper is pretty well known in my industry, lots of tandem deployments out there and I'm pretty sure his bigass book on transaction management systems is floating around our library, I have this book. There is a number of chapters which elaborate on some of the "Why do computers stop", it might be worth poking at. there are a whole bunch of tandem papers archived at HP too: http://www.hpl.hp.com/techreports/tandem/ quote:and the only safety method in the paper we don't make use of is the tandem processing for obvious reasons you're cheapasses (I kid, somewhat) quote:all told good links voted 5 I should have put the links in, but it was late. going back a bit Internaut! posted:as a learning exercise I just rewrote it in ~430 lines of much more readable Clojure using nothing but pure functions, which (assuming I interpreted the switching rules correctly) guarantees it's immune from concurrency problems, which account for the bulk of the 700+ unit tests for the core one of the arguments put forward by grey et al (in transaction processing), is that it is /hard/ to get concurrency right for paired processes - you can do it by hand, you can do with with checkpointing, or you can do it with transactions. it makes a very strong argument for transactions as the building block for robust software.
|
# ? May 30, 2012 09:38 |
|
that doesn't look like vacationposting to me
|
# ? May 30, 2012 09:39 |
|
although really, i've never had to work in anything close to real time or trading style systems, so I'm likely full of poop. the nearest I got was working in a cloud* company that pretended it could make a system to handle transactions 'scalably', built around the idea of migration of state. the problem is, when you introduce robustness, or redundancy, you have multiple copies of the state. migrations don't make sense when you're essentially adding or removing nodes from a group. i lie, that wasn't the problem. it was slow, and it didn't do anything.
|
# ? May 30, 2012 09:41 |
|
Jonny 290 posted:that doesn't look like vacationposting to me I haven't got out of bed yet.
|
# ? May 30, 2012 09:42 |
|
heh
|
# ? May 30, 2012 09:43 |
|
Java code:
|
# ? May 30, 2012 09:44 |
|
cPerls: ugh they are wanting me to rework these scripts so that they pop a ticket for each of X devices down instead of a single ticket that says "you got a bunch of devices down) but there's no granularity at that device level so once we pop tickets with this, we'll never be able to address the tickets to auto close the correct ones if they come back online however this solves a nice 'soft issue' where we stop tickets from auto-closing and then manually close them for credit. this is SOP
|
# ? May 30, 2012 10:37 |
|
yaoi prophet posted:or you could just write Bash code:
|
# ? May 30, 2012 10:37 |
|
yes lets have everything go through loving disk io zombywuf, you're even dumber in yospos then you are in coc. you're like tiny bug child, except even he can get by in at least one language.
|
# ? May 30, 2012 15:22 |
|
http://www.boost.org/doc/libs/1_46_1/libs/iostreams/doc/guide/pipelines.html I know you have this really disturbing relationship with Haskell Janin, but the comment was about syntax and expressiveness, not data storage. Take a deep breath, relax, and consider that no-one was suggesting the replacement of Haskell with Bash.
|
# ? May 30, 2012 15:57 |
|
no one should use bash or haskell
|
# ? May 30, 2012 15:58 |
|
Shaggar posted:no one should use bash or haskell the same could be said of all programming languages
|
# ? May 30, 2012 16:03 |
|
lol @ coding anything. either your idea is poo poo or someone will have something for you already on the app store
|
# ? May 30, 2012 16:04 |
|
lol @ using computers im posting this via smoke signal from my campfire in montana
|
# ? May 30, 2012 16:14 |
|
|
# ? May 8, 2024 21:21 |
|
tef posted:I think mononcqc can vouch better for realtime/qos guarantees in erlang better than I can. (aside: I am curious as to what you make of LMAX's disruptor) lmax seems like a solution to a problem no one has - retail traders don't care about latency and even if they did they're probably looking at ~50ms to the lmax server minimum, so sub-microsecond order processing times don't really matter meanwhile institutional systems need to do a lot more than just take orders, an efficient desk is constantly bumping up against constraints for risk, capital allocation, trader/trade priority etc which introduces contention and latency in communicating with other systems, in the lmax jargon the business processor quickly becomes the bottleneck erasing the benefits of their disruptor architecture finally the real hft guys can already process far faster than this, so at least in my industry I don't really see the point of lmax but I'm sure there's some emerging niche (retail prop hft?) where it could be useful tef posted:I don't think erlang is necessarily the right tool here, but you've obviously gone down a similar path - how do your processes communicate in your current system? Channels? Mailboxes? we use a number of posix ipc mechanisms including semaphores, named pipes and queues, which was an extremely efficient way to implement the system originally or so we're told unfortunately the pace of change in our industry indicates that a more flexible approach is preferable at this point so we're currently evaluating new ways to deliver concurrency with a lot more software flexibility, including new fangled (for us) approaches like pure functions, pi calculus, csp, higher level concurrency primitives like actors etc tef posted:you're cheapasses (I kid, somewhat) eh no but once you've chosen a c/linux architecture, you're looking at either substantial compiler and/or kernel mods to recreate tandem-style dual processing and it's just not worth it for us, hot swappable commodity hardware and stateless clusters mean the uptime of individual processes isn't critical even if we couldn't reboot every 12 hours or so which we can likely the reason we never chose tandem hardware itself (this was before my time) is that it would be like trying to make a pickup truck perform like a corvette - it's possible, but it's probably going to be easier and cheaper to just buy a corvette in the first place, especially if you don't need the towing capacity tef posted:one of the arguments put forward by grey et al (in transaction processing), is that it is /hard/ to get concurrency right for paired processes - you can do it by hand, you can do with with checkpointing, or you can do it with transactions. yeah it seems simple but I'm seeing stm performance degrade in unexpected and delightful ways in some of my clojure tests at this point that could be equal parts clojure and equal parts ignorance on my part but ultimately there's no free lunch; if you implement transactions using the finest grained operating system primitives available, you will be able to tune, control and predict your transaction system's performance under various loads far better than you'll be able to by just wrapping code blocks in dosync or whatever, even if you have to pay for that control and predictability in developer blood tef posted:although really, i've never had to work in anything close to real time or trading style systems, so I'm likely full of poop. don't feel bad, read noted web guru martin fowler's review of lmax for profound insights from someone who has likely never been anywhere near a realtime system either really martin in memory processes work faster than ones requiring an an oo/relational->disk step do they, fascinating skeevy achievements fucked around with this message at 16:22 on May 30, 2012 |
# ? May 30, 2012 16:17 |