freenode/#lisp - IRC Chatlog
Search
23:40:34
axion
Does anyone know how to convince Xach's salza2 library to compress with a higher level? It seems the default gzip compressor is using the least amount of compression according to FILE(1)
2:35:23
nydel
i haven't updated software in so long.. as a non-root user on a pub unix, is it better to compile slime at $HOME or to use emacs to obtain it via package-install? i'm at an openbsd system that offers both emacs25 and sbcl but no shared slime
2:58:47
beach
holycow: Hmm, I had minion transmit a memo for you, but I don't see that you ever got it.
2:59:57
beach
Anyway, it was "when does summer start for you". Because there was something I was supposed to remind you about that you were planning to do this summer.
3:01:07
holycow
umm .. the answer to the question is hard to know right now. i have a ton of projects overlapping threatening to ruin my plans. how much time should i be setting aside each week (theoretically)?
3:01:55
beach
Oh, I don't want to put pressure on you. You were the one who suggested it. If you no longer have time, don't worry about it.
3:02:39
holycow
naw. if it needs to be done, it needs to be done. i offered, i am standing by the commitment.
3:03:10
holycow
remind me of some of the specifics? i know jackdaniel is supposed to engage me on the graphics side of things for his work
3:03:49
beach
I think the task was vague, something like "design a modern-looking, consistent-looking set of gadgets for McCLIM".
3:04:35
holycow
technically if you guys wanted to start the work in the next two weeks, that would be fine by me
3:05:29
beach
I need to try to stay out of it, because I am very busy with the Concrete Syntax Tree library that is a show-stopper for many other projects if I don't finish it.
3:06:07
holycow
i find mcclim a very exciting project. i would be happy to help jackd while you complete your work
3:06:46
beach
Great! I'll remind him later today. Monday mornings are crazy around here, so I don't know exactly what time I'll get to it.
4:45:25
adlaistevenson
Non-statically-typed langauges considered harmful: "testing can only prove the presence of errors, never their absence"
4:50:30
beach
So you are one of those numerous people who come here to tell us that we have made the wrong choice for so long?
4:52:49
adlaistevenson
At least Lisp seems to be dynamically typed, which seems like far improvement over JS.
4:52:54
beach
adlaistevenson: Well, this channel is dedicated to Common Lisp, so discussions about the relative merit of programming languages with pretty much the opposite design goals from that of Common Lisp are off topic.
4:53:59
pillton
Also, there is nothing stopping you from writing macros which require you to specify types.
4:54:01
beach
adlaistevenson: And, this channel is populated by a lot of very smart and very knowledgeable people. So they probably already know the arguments of the other view.
5:11:04
pillton
Well, I often found it weird in other languages to provide boxed and unboxed classes.
5:11:56
pillton
The system class T and the definition of EQ seem like a way to avoid having the distinction.
5:13:06
Zhivago
Well, only because class-of gives complete coverage and CL does immediates under the hood.
5:13:38
Zhivago
If class-of gave only partial coverage and immediates were exposed, then you'd have the same situation with T.
5:16:03
pillton
Sure. I presume (perhaps erroneously) that the existence of boxed and unboxed classes is for computational efficiency. The definition of EQ seems to be a good premise for the definition of class-of.
5:18:03
Zhivago
If you consider a class to be a description of the implementation of an object, then it's easy to consider that you might well have objects without class -- and these would happily work with EQ.
5:19:17
Zhivago
The idea of class as descriptive is one that I think ought to be interesting to more people, but I think it's hidden by their preconception of what class is.
5:23:26
Zhivago
Rather, what operators would operate on an object without class -- and the answer is, whatever operators operate on such an object.
5:24:41
pillton
Yes. My apologies for the poor writing, but I think it is worth pondering what operators would be defined for such an object.
5:31:54
pillton
It is interesting. If you consider objects as vectors of cells then it is feasible for two classes to have the same underlying structure.
5:33:30
malkss
Anyone think they can break my hashing function? (this is just a fun challenge I made): http://ideone.com/nSJa45 Goal: Determine the plaintext of the following hash: d0c0c93dcff308d1
5:33:32
Zhivago
If you look at the early lisps, you'll see that they don't have class-of, but do have eq.
5:42:24
pillton
Zhivago: The problem is interesting, especially from a reflectance point of view. A "blob"'s meaning is only apparent on use.
5:44:51
Zhivago
That is, this code expects these types -- if you don't supply them, then woe upon you.
5:45:26
Zhivago
As opposed to dynamically deriving some representative type from the class of an object.
5:59:21
pillton
I have written some software for data flow programming that adopts that approach. There are operators for checking the "vectors of cells" prior to use. This provides some sort of reflectance for debugging purposes.
6:43:16
BW^-
what persistent object databases do you know of, and what GC algorithms for such do you know?
6:44:38
malkss
Anyone think they can break my hashing function? (this is just a fun challenge I made): http://ideone.com/nSJa45 Goal: Determine the plaintext of the following hash: d0c0c93dcff308d1
7:13:34
nydel
i'm looking for advice installing slime on a public bsd system as a common end-user. we have emacs and sbcl up to date. is it better to compile slime from repo in my ~ or to use emacs packages to fetch it? thanking you kindly in advance!
7:31:31
phoe
and before you use it, make sure that you remove all other instances of slime - this is prone to clashes.
7:39:05
BW^-
phoe: i'm asking myself if even the marking would fit in RAM according to normal algorithms :o
7:39:39
BW^-
phoe,beach: so i want to store numbers, vectors, strings, bools, pairs, and those pairs and vectors can do strong and weak references to other objects, that's it.
7:41:48
BW^-
beach: i think a very naive marking algorithm would need to keep the object reference of each object in RAM. that quickly grows big. hmmmm.. though indeed inlined objects don't need a ref.
7:42:49
beach
BW^-: I am asking why you can't keep the entire data set in RAM, as in just start a Common Lisp process with a big heap.
7:43:02
BW^-
beach,phoe: maybe i could juggle with a functional form of the database with only few "forward references", to keep RAM requirements low
7:44:18
BW^-
beach,phoe: the absence of a maximum size requirement, is also a kind of mathemathical symmetry thing
7:44:38
BW^-
as soon as you say "all your persistent data MUST be less than X megabytes" then you need to think through everything from that perspective
7:47:17
beach
BW^-: And you might be able to have less and count on paging to disk for infrequently used stuff.
7:51:01
beach
ebrasca: I assume you can get that anywhere. But I suppose you need a computer that can hold it.
7:54:03
beach
ebrasca: Here is one for instance: http://gizmodo.com/5365029/sgis-personal-supercomputer-handles-80-cores-1tb-of-ram
7:55:21
beach
It is only 8k USD, which is less than the cost of 1 engineer-month. Since I don't know the development situation of BW^-, I don't know whether it is a reasonable choice.
7:57:43
beach
ebrasca: I don't know the properties of such a setup. For it to be convenient, the RAM would have to be shared so that it can be accessed from a single process.
7:58:26
beach
I am just trying to argue that a traditional database might not be the ideal solution, depending on project goals, budget, etc.
8:02:37
beach
BW^-: This is the first time I hear "smartphone" mentioned. Is that what you are planning to run this thing on?
8:06:41
BW^-
beach: that computer is really dated, http://gizmodo.com/5365029/sgis-personal-supercomputer-handles-80-cores-1tb-of-ram
8:07:14
beach
BW^-: It upsets me that so many people take for granted the conceptual separation of primary and secondary memory, especially since we have known since before Unix how to make it disappear. With the current situation, every somewhat sophisticated application has to find a solution to persistence, whereas the operating system should be in charge of it.
8:10:42
beach
Can someone please tell me what an "in-memory store" is supposed to be that makes it different from (say) the SBCL heap?
8:11:27
p_l
beach: in-memory store would be something like PCL's example 2kloc database running inside SBCL's heap :)
8:11:33
beach
Please don't tell me that we now dumb down not only disk to fit the Fortran model, but also RAM.
8:12:20
shka
beach: well, essentially, you will need to have some sort of transactional layer on top of that so people are operating on coherent state
8:12:27
BW^-
beach,phoe: i think needing supercomputer-quantities of RAM just to run the GC is a weird "assymetry", it's a weird constraint.
8:13:01
p_l
anyway, there are in-memory relational databases, and disk-oriented non-relational ones. It's not related
8:13:04
shka
and since you can KINDA get away without it in non-relational models people are ignoring this issue
8:13:54
p_l
Relational Databases tend to be maligned by developers who don't get *why* and *how* of them, often because they learnt them badly in the first place :/
8:17:34
p_l
Relational model, oriented around sets (though often broken by things like cursors etc.) gives powerful tools to *enforce* data quality
8:28:37
shka
beach: point is, relational DBs are popular because they are widely avaible, transactional, inexpensive and don't eat your data
8:31:12
beach
Right, and because developers are submissive and docile enough not to scream at the top of their lungs "I'm mad as hell and I'm not going to take this anymore".
8:35:27
p_l
RDBMS' main advantage was really "can support many concurrent operations" AND "doesn't eat your data" with added side benefit of "often makes sure the data makes sense at all"
8:36:29
p_l
Then there was additional issues, like Oracle getting a lot of clients not because of Oracle RDBMS, but because of Oracle *Forms*, which is how a lot of Universities ended up with Oracle, afaik :)
8:37:38
p_l
beach: usually developers that scream about "not going to use RDBMS, I want my Mongo" have a) no idea about tradeoffs b) thinking very short term c) very junior
8:38:31
p_l
There's an ocean of difference between many people here who I can trust to write their own data storage engine, and typical dev "outside" who screams about "I want my schemaless world"
8:39:38
TMA
oracle reportedly won a government contract because they conformed to the SQL standard back then. then they added nonstandard extensions as a vendor-lock-in measure
8:40:28
p_l
TMA: Oracle is the king of "shady practices" in IT, indeed, but I don't think there was a SQL standard old enough for Oracle to not have extensions ;)
8:41:58
p_l
ACTION heard that supposedly Oracle started numbering some product from 2.0 to make it look stable...
8:43:40
p_l
when it comes to RDBMS, my go to is always PostgreSQL, especially since it carries on legacy of what made RDBMS successful in the first place (unlike for example MySQL which was "ok, people seem to be buying RDBMS with SQL, let's make a hack that acts somewhat like it")
9:24:26
beach
p_l: Yes, but many data sets now fit in the RAM of a reasonable PC. For instance a complete social-security database for a country, the register of all automobiles in a country, the bank transactions of all customer of a particular bank, etc.
9:25:54
beach
p_l: But I often see inexperienced project leaders and developers that are unable (or too lazy) to make this back-of-the-envelope calculation, so they will pay way too much money for something like Oracle without actually needing many of its features.
9:26:57
beach
p_l: Furthermore, when I do the calculation for them, they get *really* angry, as if, deep down, they didn't want to know the truth.
9:26:59
p_l
beach: dunno about other countries, but in many cases the issue is not "will it fit in naive memory implementation" but "will it not eat data, is tested to hell and back, can survive direct aircraft strike (not joking)
9:28:06
TMA
beach: that's not entirely accurate. Given that there are several billion transactions even in a small bank, just storing their ID would eat a good chunk of RAM
9:28:40
p_l
UV3000 is not a "reasonable PC", and one of its marked use cases is running single-instance DB for single ERP instance
9:31:17
TMA
beach: if you consider that each transaction is several hundred bytes worth of data, that makes the total several hundred gigs -- that's not a "reasonable pc" anymore
9:32:52
p_l
there are specialized banking DBs used for decades, often with data storage systems tailored for particular bank
9:33:24
p_l
Oracle, SAP HANA, etc. etc. shows up in analysis applications or various non-account parts
9:34:16
p_l
for example, in a project I work with, we use distributed in-memory store from Oracle (it was acquisition) for various "funds" data (it's called even "General Funds Manager")
9:34:42
beach
Despite what shka says, if I ever get the time, I should read up on all these issues and then form an opinion about the current state of things.
9:35:20
p_l
some of the most costly (in licensing and hw) systems are on the other hand low-memory (comparatively) but very highly available and more concerned with huge I/O rates as they talk all over the world
9:36:29
p_l
beach: generally, there's a lot of in-memory stores in play in OLAP, while many OLTP tasks are low-memory intensive but need disk for persistence and I/O for comms
9:36:49
p_l
meanwhile with OLAP it's all about "load as much data as you can so we can analyse it in all directions"
9:38:06
p_l
shka: well, yes, but I am not talking about lazy programmers who go with "what is easiest without considering drawbacks"
9:38:48
shka
what could be done and should be done is distributed, P2P, transactional, in-memory storage
9:47:10
shka
well, until big business will be able to swap developers in their lisp project, you won't see lisp projects in big business
10:26:58
p_l
shka: now consider that some of those machines require 2x the memory vs. what you can use, due to RAIM in mirror mode
10:27:25
p_l
phoe: "on the street" is the pricing without "enterprise markup" (actually an extra guarantee among other things, important when dealing with that kind of money)
10:28:38
p_l
and if you deal with things like z-series mainframes you have a machine that has 2.5 the amount of memory you can maximally spec, because mirror RAIM and that .5 for internal use by machine itself
10:31:10
p_l
I heard anecdotes of a big z-Series losing whole I/O drawer under max load and it having not affected the application
10:33:47
flip214
well, we've got a customer who didn't notice that his RAID controller was dead for two weeks, because the data was accessible via the software-mirror (DRBD)
10:35:23
p_l
flip214: this is more a case where the I/O of the system, which was under load (including things like mirroring to another machine) was unaffected
10:36:06
p_l
IO drawer is where things like Ethernet, Infiniband and FC (plus occassional ancient ESCOM) cards sti
10:37:31
p_l
reliable in-memory systems tend to be expensive as well, especially when you don't want to directly deal with disk (either huge expensive NUMA systems, or RDMA)
10:53:52
shka
p_l: RDMA is getting cheaper, and besides, even without RDMA you can build reasonable system
10:56:16
p_l
shka: yes, but the latencies make it very far from "let's just think of memory instead of multiple completely disparate systems"
10:57:00
p_l
and in my experience, companies balk when I suggest "ok, let me hit ebay, I'll have the 56GBit low-latency fabric ordered by tomorrow on the cheap" ;)
10:59:19
shka
anyway, those would be different beast, i agree, but this approach has some advantage over ultra expensive huge IO mainframes
10:59:56
p_l
most companies that lease mainframes have very specific reasons for doing so (combination of RAS requirements, power, software base, etc.)
11:01:05
flip214
you can get 56gbit IB, 2 dual-port adapters and 2 cables (so two machines can talk 112gbps) for < €1000
11:03:05
flip214
so all of the data needs to have been seen before the first data byte can be transmitted
11:04:25
p_l
shka: there are some low-level details that impact how fast you can go with Ethernet without changing it into non-Ethernet, including how it's designed for Store-and-Forward data
11:05:25
p_l
shka: IB doesn't have store-and-forward inside subnet (most sites anyone sees are single subnet)
11:08:17
p_l
Netherlands used Myrinet on mixed Myrinet/10GbE links, in poland I think we did something shitty with plain IP... ;)
11:08:45
p_l
flip214: IB uses IPv6 *addressing*, and intra-subnet packets have 16bit address for wormhole routing
11:09:32
p_l
the 16bit addresses are internal affair of the subnet that software stack is not supposed to bother itself with (outside of management software for subnet itself)
11:11:54
p_l
it's much harder to do wormhole switching when you have to match complex 128bit addressing to ports ;)