freenode/lisp - IRC Chatlog
Search
20:55:26
francogrex
it's a pity there are so many good start for packages and then they quickly become abandon-ware such as https://github.com/xach/linj, https://sourceforge.net/projects/jacol/ and http://jfli.sourceforge.net/ to name a few
20:59:56
pjb
The only purpose of Linj, is to reassure a Common Lisper, that if he cannot find a CL job, but a Java job, he'll still be able to write sexps and provide his employer Java sources.
21:00:16
pjb
Unfortunately, this is useless, because when you have a Java gig, you don't write new java code, you patch existing java code!
21:01:54
pjb
Anyways, my answer is that a lot of such projects are not aimed at a big market but only gives some psychogical comfort to their author.
21:01:56
francogrex
i am alone unfortunately. those are toy apps for my amusement, but i can see the potential... same for other tools i mentioned
21:02:47
pjb
So your query raises an important point: we should select projects targetting the general public. Things like dim's sql thingy.
21:03:01
Shinmera
francogrex: I don't understand where your confusion stems from. People's interests and needs shift all the time. And even with large effort project, at some point there's diminishing returns.
21:03:52
pjb
francogrex: it's the same thing as linj. Look, people are even complaining when they come after a "smart" programmer who wrote too "advanced" code.
21:04:42
pjb
python as the thing for it, that it has only statements and no expression: people are forced to write plain procedural code. Most people would have their brain exploding if they saw a functional expression!
21:05:32
pjb
So Stella might be very nice, and you or me could be using it to very good effect. But most of our coworkers wouldn't be able to maintain it.
21:06:03
pjb
Just like they did at Yahoo with ViaWeb, or anywhere else where they rewrote lisp projects in C or whatever.
21:06:50
pjb
Anyways, nowadays Android development is not done in Java anymore. So your using Linj to generate Java is outdated. Now it's Kotlin.
21:07:34
pjb
(and where you LoL, is when you realize how close Swift and Kotlin are, and they weren't able to design a common language…)
21:08:57
attila_lendvai
kotlin: where the frontpage brags about semicolons being optional... oh, the progress!
21:10:10
pjb
Uncle Bob explained it nicely: we double the number of programmers every 5 years. Therefore half of the workforce is entirely unexperimented, constantly, it has been the same forever.
21:11:02
pjb
So the code you write, will have to be maintained by newbies who don't know anything. The code you will have to maintain, will have been written by newbies who don't know what they're doing.
21:19:51
jmercouris
speaking of jobs... I'm still looking for contributors: https://github.com/neXT-Browser/nEXT/
21:20:38
Shinmera
I think you'll find that most people already have their own versions of interesting things to work on.
21:22:42
jmercouris
I am hoping that eventually I can pay people to work on it, its' a hard model to start with nothing from open source though
21:25:04
pjb
jmercouris: in the spirit of the above mentionned project choice problematic, it should be noted that you won't be able to compete with Firefox… therefore your project of a web-browser is ultimately doomed. But don't let that discourage you.
21:26:21
pjb
I mean, the doom is only on one plan. On multiple other plans, it can be a big success.
21:31:07
aeth
jmercouris: I've given some thought about this for other projects. If you are going to have a budget to pay people bounties for things that compete with C++ programs, you probably should actually pay SBCL developers, rather than program developers. i.e. Get optimizations added to SBCL that make your code run faster.
21:31:45
aeth
Although, of course, optimizations are on both sides, the application and the compiler, so they'd probably also make some changes to the application.
21:32:30
aeth
There's probably a lot of low hanging optimization fruit in SBCL and CCL that GCC and LLVM implemented a long time ago.
21:33:29
Shinmera
I thought his browser used EQL and thus ECL anyway, so SBCL would be rather irrelevant to his own needs.
21:34:35
aeth
And there's definitely stuff in ECL that could be improved. It's slower than SBCL and CCL in general (although not on all things), at least in my benchmarks.
21:35:13
Bicyclidine
hello sbcl develoeprs, i have a hankering for all those sweet "fun"safe math optimizations, and
21:37:31
jmercouris
so a user may happily install this, and use firefox for whatever other some such nonsense they use
21:37:43
pjb
Even if it has some nice features in Safari, Firefox is still better or the only browser able to do the job.
21:37:56
jmercouris
I'm just targeting a few hardcore people like emacs users, and maybe to get the sympathies of some lispers
21:39:19
jmercouris
aeth: yeah, i've really thought about that, I've been applying for some grants, so we'll see
21:40:41
jmercouris
prxq: thanks for your interest! You can support me if you want by starring the repository :D
21:42:04
jmercouris
basket: what's your strategy for multiline docstrings? do you use a standardized format for your docstrings?
21:46:41
basket
jmercouris: Strategy with regards to what? Don't indent lines that shouldn't be indented when you read it
21:48:49
basket
jmercouris: I try to give a brief summary, then cover each argument, then return value, then examples, skipping any or all of those if I don't think writing it in prose explains it better than the name does
21:49:29
basket
jmercouris: But in a lot of places you've already written documentation for functions and classes that you just stuck in a comment where it's awkward to get at from a listener
21:57:14
jmercouris
basket: I want to run ultimately through a documentation generator, thats why I was asking
21:58:56
francogrex
jmercouris: your project is interesting. you just have to think to add something useful for the mass of end-users that others browsers don't have in order to get an edge..
22:08:56
pjb
Josh_2: or keep it, to use it like you used your first micro computer: to write little games and programs for yourself. In Common Lisp, it's fun.
22:11:19
Josh_2
I've never had "my first microcomputer" I'm 21. I've seen some of the Alan Kay videos you have put in #clnoobs before
22:20:10
sukaeto
<pjb> [...] But most of our coworkers wouldn't be able to maintain [some Lisp thing].
22:20:57
sukaeto
if I were hit by a bus tomorrow, I have at least two teammates who could pick up the Lisp thing I maintain right away
22:21:29
sukaeto
and a third one who'd be willing to do so begrudgingly (though I think he'd grow to like the tooling a lot once he got used to it).
22:21:44
sukaeto
and ultimately, I think anyone on the team would be able to work with it if they had to
22:23:20
pjb
sukaeto: the point is that if you have a non-homogeneous team, you will have half of it staffed by newbies, so the other half won't be able to use advanced techniques in the code, if you want it to be maintainable by the newbies.
22:23:51
pjb
sukaeto: of course, you can also build a team of experimented programmers. But the more experimented, the fewer of them they are, and the more expensive they are. Exponentially.
22:25:12
pjb
It's very nice to be able to incorporate any mathematical notion in Haskell, but the problem is that your coworkers are not mathematicians: they won't understand the first word of your haskell program even if they're haskell programmers.
22:25:36
sukaeto
I dunno, I think you (the general "you", not you specifically) have a mentorship problem if you can't get junior engineers up to speed with your code
22:26:02
pjb
Josh_2: the question is whether you're a _professional_ programmer, or an amateur. As an amateur, programming is very fun and nice.
22:26:59
sukaeto
yeah, I was gonna say. Maintaining "shitty" (where "shitty" is in the eye of the beholder) code in a language you're not familiar with is sometimes part of the job. You do it because you're a pro
22:30:05
sukaeto
my vague answer is "give them a spin up buddy for the first few weeks, and then have the senior engineers be 'available' here and there for code reviews/questions/etc"
22:31:31
sukaeto
also, I shouldn't be so absolute: you could also have a problem with technical debt if you can't get junior engineers spun up
22:42:53
Xach
#<HU.DWIM.CL-SOURCE-FILE "hu.dwim.presentation" "source" "component" "widget" "google"> specifically
22:43:53
Xach
http://report.quicklisp.org/2017-09-28/failure-report/hu.dwim.presentation.html#hu.dwim.presentation has some logs
23:00:34
nydel
i need to parse some csv files in order to combine data that has a common element in two documents. would anyone recommend an existing library to deal with reading and writing csv to lists?
23:00:53
aeth
pjb: It's worse than that. Mathematicians don't understand other mathematicians unless they're in the same sub-sub-field.
23:05:15
pillton
Would a doctor in a general practice be able to work as a nuclear physician without training?
23:08:28
aeth
I think the general issue is something along the lines of a PhD mathematician is less able to read papers from other PhD mathematicians in general than a PhD foo reading papers from other PhD foos.
23:10:05
pjb
Yes, but the difference is that thanks to Turing Equivalence, we can "compile" advanced mathematical papers or programs, down to basic logical expressions that any programmer can "understand" and maintain. <-- !!!
23:10:30
pjb
and this is what is expected of advanced programmers: to write the most basic programming.
23:11:48
aeth
Except programs are more rigorous than most mathematical proofs because programs have to run while proofs just have to be understood by humans.
23:23:29
jmercouris
aeth: well, it depends, some proofs rely on computation to prove some thing, let's say proof by reduction
23:56:43
didi
So I need to retrieve values from 2-tuples keys. There aren't many keys. First, I used a CONS key inside an EQUAL hash-table. Now I am still using CONS keys, but inside an ALIST, which is performing better than the hash-table. Any ideas on how to improve it? The 2-tuples have integers as elements, so key_i = (cons -42 7), for example. And the values are positive integers.
23:59:04
didi
It's a pretty ugly function if anyone wants to stare at the abyss: https://paste.debian.net/hidden/964697ba
0:06:52
|3b|
if you have a known small range for the 2 values, maybe combine them into 1 number (if less than ~1/2 of your fixnum size) or just make a 2d array (if in the tens to hundreds range)
0:09:04
didi
|3b|: Do you have a combination algorithm? Like I said to pillton, I tried canton pairing ( https://paste.debian.net/hidden/aabda13e ) but in my case, it was slower.
0:25:37
jmercouris
Noobiee: If that's what you mean, please see here: https://common-lisp.net/project/ecl/static/manual/rn01re65.html
0:29:49
jmercouris
pillton: I'm trying to understand what the function does, I believe its a macro that's expanded out
0:30:12
jmercouris
pillton: like is there a way I can say something like "show source" for a given function?
0:35:46
pillton
That is why M-. does not work because the currently running lisp does not contain the operator.
0:36:08
jmercouris
pillton: Right, that makes sense, I'm running ECL, and this symbol is part of EQL
0:36:42
pillton
It has been years since I used EQL. It might be easier to just grep for it in the EQL sources.
0:37:00
jmercouris
I've been doing that, I can show the definition, it doesn't really make sense to me
0:38:54
jmercouris
pillton: in this file: https://gitlab.com/eql/EQL5/blob/master/src/ecl_fun.cpp look for this line: cl_object qrequire2(cl_object l_name, cl_object l_quiet) { /// qrequire
0:40:11
jmercouris
fileName.prepend("/usr/local/lib/"); // "local" might not be in library search path
2:44:02
Bike
it can increment them at the same time or sequentially, but it increments each once per iteration either way
2:46:50
z3t0
if say I needed it to be as I showed above, would i make two loops or is there a way for a single loop to achieve that
2:53:18
Bike
Zhivago: it sounds like they want all distinct pairs, rather than just the basic iteration
2:58:42
Bike
the protocol described is the basis for the modern clos implementations, with minor modifications
2:59:43
beach
turkja: If you only need the specification part, you could use this site: http://metamodular.com/CLOS-MOP/table-of-contents.html
3:01:34
pillton
turkja: It is worth reading AMOP to get a better understanding of CLOS' object, glue and syntax layers. I found this useful for implementing non CLOS problems.
3:10:57
z3t0
can you guys suggest some cool flashy things to show to people to convince them of the lisp way haha
3:13:06
z3t0
Theres a bunch of people that want to learn programming and theyve never done it before
3:13:47
White_Flame
without experience in programming, and hitting the shortcomings of various language designs, they have no context in which to evaluate the strengths of advanced topics like metaprogramming or why somebody would actually do that
3:14:02
White_Flame
in the beginning, it's much more about the immediate tangibles that grabs people
3:14:19
White_Flame
and most other languages have greenspun in a lot of the low-hanging fruit that Lisp used to uniquely offer
3:15:29
z3t0
My only angle here is that it would be easy to get a bunch of people using lisp if they dont really know anything else
3:18:14
shrdlu68
Shinmera: Hi, I'm seeing an off-by-one error in clss while using the :last-child pseudo-selector.
3:27:02
White_Flame
programming is dangerous. What if you program the wrong thing? What if you forget to check for an error? What if you accidentally have a bug?
3:46:15
beach
shrdlu68: You need to use slime-indentation to get LOOP clauses to be correctly indented.
3:51:31
beach
In your .emacs, when you set up SLIME, do this: (slime-setup '(slime-fancy slime-tramp slime-asdf slime-indentation))
3:56:26
z3t0_
I'll just use a more approximate algorithm and add some redundancy to make up for the difference
3:57:49
White_Flame
if loops start getting funky with accumulation/exits/whatnot I often just pull up LABELS and do a recursive version
3:58:48
White_Flame
LOOP _can_ do a ton of stuff, but that doesn't mean you always should wrangle it in there
4:07:05
turkja
jmercouris: I believe... :) Sometimes i try find copies online and if the book is interesting, i get a physical copy. but i'm getting old... :D
4:30:19
beach
z3t0_: In general, you need to respect the spacing rules (imposed by the standard or by style rules) of Common Lisp programs.
4:47:41
z3t0_
except the locals in the debugger only shows two of the variables, and I set optimize debug 3
4:48:49
White_Flame
jmercouris: ctrl-scrollwheel normally zooms on the desktop, and pinch to zoom on mobile, so you don't need to go to such platforms just to zoom
5:52:37
beach
vtomole: The documentation on lexical environments is very skimpy, simply because the nature of those environments is not mandated by the standard.
5:55:48
vtomole
I'm trying to get better at finidng answers on my own. I've been a programmer for more than a year now. I should be reaching that stage :)
6:50:15
pankracy
22:12 < jackdaniel> pankracy: for fiveam you may use fixtures, but they are really no different from with-* macros
6:50:54
pankracy
jackdaniel: ok, so what about code which should be run before the whole suite only once?
6:55:32
jackdaniel
no, I never had such need so didn't investigate. You may check out source code if there is something