« first day (1297 days earlier)      last day (3922 days later) » 

17:00
@tchrist Haha yay!
Listen to these:
They’re in Galician.
That’s from a different album.
Damn it.
You have to wait about a minute to hear the Galician.
These were written by Alfonso el Sabio.
The first western musical notation we have.
Galician used to be the prestige language!!
It was used by the troubadours, along with Catalan and Provençal, but it was very important.
@Cerberus hello!
@Cerb Try to find the Ensemble Alcatraz recording of Quen A Virgen Ben Servirà.
What's the difference between System Builder OEM and OEM?
I've looked at some explanations, but I don't think I understand them.
@Cerberus do you have any suggestions? I'm pretty good with BASH and the shell, but I'm looking to learn a programming language. Which would you start with? (It'd be primarily if an OSX based environment)
*in
@tchrist Can't understand a word of it, but I do seem to hear some ʃ's.
@njboot I am among the exceptions! The only language I can program anything in is Autohotkey...
@tchrist I'm sure.
@cornbreadninja麵包忍者 Awww!
That’s Quen A Virgen Ben Servirà..
17:15
@Cerberus oh, haha.
anyone else have suggestions?
@Cerberus that was for you, doggie.
The more cats, the better.
Ensemble Alcatraz. The alcatraces (pelicans) are associated with the ancient Way of Saint James, the pilgrimage routes to Santiago de Compostela in Galicia. When the pilgrims, who wore scallops (vieiras, a Galician word now used by Castilian and Portuguese alike) as their sigil to show their ultimate destination.
When they saw the pelicans, they knew they were closing in on the end of their pilgrimage.
Scallops are also known as St James' shells.
At least in some languages.
17:22
I think you can listen to the tune here, but I have no stupid F*c*Book or Twatter signon to authenticate with.
@MattЭллен thanks, i'll look into that. interested in more popular/widely used languages that are broadly applicable though. Java? C#/C+? Which would you recommend?
@njboot For a first language, Java and C++ are equally disastrous.
@tchrist Really...?
@Alraxite Of course.
@tchrist so what's the starting point then?
17:25
I don’t know what the goal is.
@njboot think of a project. find a language suited to that project. learn that language.
My language acquisition order ran BASIC, Fortran, Pascal, PDP-11 Assembler, C, awk, Modula, ADA, Lisp, Prolog, Scheme, Perl, Python, Java, and I don’t know what else.
@tchrist Well, why?
@Alraxite Because they’re crappy languages.
And they hide too much.
@tchrist @MattЭллен I have a few ideas for iOS apps, as well as simple OS X applications. I want to know the best approach to take
17:26
Stop that, or I’ll flag you.
C++ is a good starting language, IMO.
@tchrist I don't think you can listen to it there, not even with Facebook?
@tchrist @MattЭллен proficient using BASH shell, as well as sed/awk. But no experience with programming languages.
(Besides, why not create a fake Facebook account like everybody else?)
17:28
@Cerberus Because I am principled.
What is you principle?
@tchrist I second that emotion
@njboot Plan out your project. break it into manageable chunks. set goals for yourself. You'll learn whatever language ios requires as you go
@tchrist You can pollute their data pool this way, thereby improving the privacy of everyone.
17:29
Honestly, I’ve forgotten more languages than most people ever learn.
2
but howmany do you speak?
That is a different question altogether.
@tchrist computer or otherwise?
why so secret?
@njboot Yes.
@JohanLarsson I have no secret. Your question is not very good.
17:30
@JohanLarsson You would need to define "speak a language".
Cerberus speaks about ten. I remember.
Depends on your definition...
I cannot answer a question I cannot understand.
17:31
I can have a conversation without feeling seriously impeded by the language in Dutch and English.
@Alraxite Few but Java would be worse.
@tchrist Is that 'few' like 'phew'?
@Alraxite You do not use a language that is insanely complicated to start someone on the road to programming. You use it to drive them away.
@tchrist @Cerberus @JohanLarsson so, of all the many different spoken languages you seem to know, which would you say was the most difficult to pick up?
17:35
@tchrist Maybe there are easier languages. But C++ is a language I don't consider not easy to start off with.
But that's just my opinion.
@Alraxite your litotes is revealing
@Alraxite I’ve taught programming languages for more than thirty years. I know whereof I speak.
@njboot I don't know, probably whichever one has the greatest linguistic distance from your own language!
@Cerberus Yes, again that should be the obvious answer, but people keep asking the question. So strange.
Well, we know certain things about linguistics that not everybody knows.
For which nobody can be blamed.
17:38
@njboot definitely English. I've been learning for 33 years or so and still haven't learnt everything
iovibovi
@MattЭллен You misspelled lie totes, dude.
the totes don't lie
or should that be I totes don't lie?
@tchrist you've given many good reasons for all the languages i shouldn't start with. how about one that i should? one has to begin somewhere...
One you don’t have to compile.
And preferably a procedural one.
Without a lot of tricks.
And which you can use later.
so python then :p
17:42
Also avoid anything object-oriented or functional.
How about Autohotkey?
@tchrist lol.
Logic-based languages may not be the best either.
Aside from one or two quirks, it's really easy to get into if you have no programming experience at all.
By functional, I mean like Scheme.
Not as antonymic to dysfunctional.
17:42
Is Autohotkey functional? Object oriented? Procedural?
procedural, from what I've seen
Ni p*** idea.
but I could be wrong
OK.
How could I test it for procedure?
do you just write one thing after another, without wrapping things in structures?
17:44
What are structures?
(So probably not haha.)
Structures are a way of organizing a group of related variables.
By name.
Each variable can have its own name and type within that structure.
You don't need to organise variables in Autohotkey. But you can, and the ones in arrays naturally are. Right?
You can them make lists of structures, etc.
Arrays are typically monotypic.
But yes, they are certainly a data structure in sensu stricto
I have to say I have never used the built-in array functionality of Autohotkey.
I have only sort of created my own when needed.
I think.
The thing is, you do not address their contents by name but by integer index.
17:47
@Cerberus post some code
One can have an array of structures, of course.
> Click
@JohanLarsson Is that enough?
And a structure may itself have members that are themselves arrays.
What kind of code would I need to be looking for?
dunno, something you are proud of?
17:49
struct complex_number {
    float real_part;
    float imag_part;
} vector[10];
@tchrist I have used variables that I automatically created based on integers, such as when I made my script that types IPA characters. The character ʃ will probably be something like S_2 or something, I'd have to look at the code. The script basically takes "s, ʃ" and converts those into two related variables.
@JohanLarsson Haha I have no such code.
Now you can have vector[3].real_part, for example.
Especially not in the presence of people who can actually program, I'm just a dabbler.
So every complex_number structure has two named pieces.
Yeah I'm not sure I understand that.
17:50
And vector is an array of ten of this.
@Cerberus I suspect we are all dabblers compared to Tom
You know that a complex number like 3+4i has two pieces.
Try something else: coordinates.
This could be (x,y,z) coordinates or (latitude,longitude) coordinates.
In any event, each coordinate has named subcomponents.
> Characters("a", "æ", "ɑ", "ʌ", "ɐ", "ɒ")
; Key1 := "a,b,c,d,e"
Characters("b")
Characters("c", "ç")
Characters("d", "ð", "ɖ")
Characters("e", "ə", "ɛ", "ɜ", "ɘ")
Characters("f")
Characters("g")
Characters("h", "ʰ", "ɣ")
Characters("i", "ɪ", "ɨ")
Characters("j", "ʲ")
Characters("k")
Characters("l", "ɬ", "ɮ")
Characters("m", "ɱ")
Characters("n", "ŋ")
Characters("o", "ɔ", "ʊ", "œ", "ɶ")
Characters("p")
Characters("q")
Characters("r", "ɹ", "ʀ", "ɾ")
Characters("s", "ʃ")
Characters("t", "θ")
Characters("u", "ʉ")
Please indent.
Can’t read.
I suspect this is all very simple and not procedural or functional.
@tchrist Chat removed the indentation...
17:52
It’s an event-driven procedural language.
Let me take a screenshot.
@Cerberus Use fixed-font.
I created a function to generate the variables from the input above (the strings of different characters for each key.)
That’s procedural.
Really?
17:55
Certainly.
But all it does is use a loop to parse a string and create variables out of it.
Certainly.
It’s imperative.
What is?
In computer science, imperative programming is a programming paradigm that describes computation in terms of statements that change a program state. In much the same way that imperative mood in natural languages expresses commands to take action, imperative programs define sequences of commands for the computer to perform. The term is used in opposition to declarative programming, which expresses what the program should accomplish without prescribing how to do it in terms of sequences of actions to be taken. Functional and logic programming are examples of a more declarative approach. ...
@Cerberus that you upgrade to windows 8
17:56
> Procedural programming is imperative programming in which the program is built from one or more procedures (also known as subroutines or functions). The terms are often used as synonyms, but the use of procedures has a dramatic effect on how imperative programs appear and how they are constructed.
> Heavily-procedural programming, in which state changes are localized to procedures or restricted to explicit arguments and returns from procedures, is known as structured programming.
@MattЭллен Haha never! XP → 7 → 9.
@tchrist Ohh.
curses! outsmarted again!
@tchrist Ohh.
Object-oriented programming is a subclass of procedural programming.
a better class
17:57
I see.
> Declarative programming is a non-imperative style of programming in which programs describe their desired results without explicitly listing commands or steps that must be performed. Functional and logical programming languages are characterized by a declarative programming style.
Very abstract.
@MattЭллен Well, kinda yes. Depends what you think a “class” is.
also, oop can be functional, if you do it right (e.g. Haskell)
A recipe is imperative.
17:58
@MattЭллен Outsmarted by what?
@Cerberus you
A regex is declarative.
See the difference?
damnit my connection is laggy today
@MattЭллен Unlikely.
How?
I am getting such an echo here.
17:59
I, too.
The site is undergoing maintenance.
@MattЭллен do you like oo?
Try to open the main site.
You shall not succeed.
@JohanLarsson I like it the way I understand it, but a) I'm not good at explaining and b) other people don't seem to see it my way
@Cerberus I sucked seed
If you must succeed, I find the chile-limón flavored pumpkin seeds are pretty good.
@tchrist Hmm I'm not sure. The Regex formula goes through a string in a fixed order until it's finished?
@MattЭллен Isn't that icky?
18:01
@Cerberus A regex is a sequence of rules, essentially conditions that must be met.
@Cerberus I could ask on the main site, if you like :D
Haha, both of your brains are apparently subject to the same associative processes. You should jinx.
@MattЭллен You dog, you!
@MattЭллен I'm sure that would be a very appropriate question, if only the site weren't offline.
@Cerberus it's online! that's what I'm saying :D
18:02
@tchrist But in a fixed order.
@MattЭллен Not for me!
>
We are currently offline for maintenance

Routine maintenance usually takes less than an hour. If this turns into an extended outage, we will post details on the status blog.
@Cerberus works on my machine. I must have access to the secret SE pipe they installed
> Bjarne Stroustrup designed C++, an object-oriented language based on C. C++ was first implemented in 1985. In the late 1980s and 1990s, the notable imperative languages drawing on object-oriented concepts were Perl, released by Larry Wall in 1987; Python, released by Guido van Rossum in 1990; PHP, released by Rasmus Lerdorf in 1994; Java, first released by Sun Microsystems in 1994 and Ruby, released in 1995 by Yukihiro “matz” Matsumoto.
@MattЭллен Nooo we have net neutrality here, this cannot be!
@Cerberus that's why it's secret
But that's not allowed!
18:06
@JohanLarsson I wrote some thoughts on it a few years ago, so you'll see what I mean
Amazon’s Latest Crap. Billions and billions of dollars prove that might makes right.
@tchrist Money and art are enemies.
@MattЭллен I'm not anti btw, just feel I write a lot of text that does not do much at times :)
which I knew F# but never get started using it
@tchrist I cannot access the article in the NYT.
But, if this is about what I read about earlier, then I think Amazon may actually be doing those writers a favour, financially.
People tend not to understand price elasticity.
> On Programming
· Never put the same information in more than one place.
· Encode similarities in data, differences in code.
· Treat warnings as errors until proven otherwise.
· Never ship your prototype: write it once to understand it, then write it again from scratch. That second one might be ready for production but it might not: third time pays for all.
· The first rule of optimization is Don’t.
· Proper abstraction is key to all good programming: organize your data into structures or objects, and organize your code into libraries or mod
18:10
Basic though the concept be.
> Reading Recommendations
· Oxford English Dictionary, published by OUP
· The Art of Mathematics, by Jerry P. King
· The Practice of Programming, by Brian W. Kernighan and Rob Pike
· Advanced Programming in the Unix Environment, by W. Richard Stevens
· Programming Pearls, by Jon Bentley
· The Wikipedia page on “Code Smells” – let this be if not your Bible, at least your decalogue of Thou-Shalt-Nots.
· Programming Perl (4th edition), by Tom Christiansen et al.
I recently had to deliver some valedictory remarks. Those were amongst them.
The OED is a bit of a tough read, especially if you want to remember more than 50%.
There is that.
Recommending your own books, huh?
@tchrist nice enough for a star, I rarely see keep it small.
18:15
> Gnomic Utterances

For my parting epigram – I shall not say epitaph – I must let abbreviated metaphor speak for me, using quotes from famous works of speculative fiction. Full understanding of my extended meaning will come only once you identify exactly who said each of these things, where, and why – and how those make these quotes especially poignant for me here and now.

· “So long, and thanks for all the fish!”

· It is possible I already had some presentiment of my future. The locked and rusted gate that stood before us, with wisps of river fog threading its spikes li
@Cerberus you would too if you had any :)
Haha never!
@JohanLarsson That’s because you live in a world asphyxiating of complexity.
The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to developing small yet capable software based on the experience of leading developers of the Unix operating system. The Unix philosophy emphasizes building short, simple, clear, modular, and extendable code that can be easily maintained and repurposed by developers other than its creators. The philosophy is based on composable (rather than contextual) design. The UNIX Programming Environment In their preface to the 1984 book, The UNIX Programming Environment, Brian Kernighan and Rob...
> Small is beautiful.
Make each program do one thing well.
Build a prototype as soon as possible.
Choose portability over efficiency.
Store data in flat text files.
Use software leverage to your advantage.
Use shell scripts to increase leverage and portability.
Avoid captive user interfaces.
Make every program a filter.
> This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface.
> Rule of Modularity
Developers should build a program out of simple parts connected by well defined interfaces, so problems are local, and parts of the program can be replaced in future versions to support new features. This rule aims to save time on debugging code that is complex, long, and unreadable.

Rule of Clarity
Developers should write programs as if the most important communication is to the developer, including themself, who will read and maintain the program rather than the computer. This rule aims to make code readable and comprehensible for whoever works won the code in future.
!!define asphyxiating
Had to copy-paste ^ no way to spell that
it means being unable to breath
18:20
tyty
similar to suffocating
> Use shell scripts to increase leverage and portability.
kitsox is having a snowday
Why not use a few lines in the program itself?
Or what do they even mean?
Like context menus tying into other programs?
> asphyxia /æsˈfɪksɪə/.

Etymology: mod.L., a. Gr. ἀσφυξία, f. ἀ priv. + σφύξις pulse (whence also asphyxis has occas. been used). See also asphyxy.


1 lit. Stoppage of the pulse.

1706 Phillips, - Asphyxia, a Cessation of the Pulse throughout the whole Body; which is the highest degree of Swooning and next to Death.
1731 Bailey, - Asphyxia, a Deficiency or Privation of the Pulse in some Cases, where it stops for a Time.
1864 Webster, - Asphyxia..applied also to the collapsed state in cholera, with want of pulse.
@Cerberus They mean to combine tools with pipelines and backticks.
18:22
Huh?
I don't get it.
prog1 | prog2 | prog3
Feed one program’s output to the next one’s input.
Is that what they mean by shell scripts?
It is part of it.
Those are filters.
Filters?
they look pretty nix :)
18:23
You can also write: prog1 ˋprog2ˋ | prog3, but that is something else.
Well, never mind, the terminology is all so abstruse that every explanation includes yet obscurer terms...
It’s about combining different simple things.
It’s how you connect programs together.
Run this program. Produce some output. Feed that output to some other program.
Programming basics.
Let me tell you a secret.
Imagine the math equation fn3(fn2(fn1(x)))
That is the same as this in the shell: fn1 x | fn2 | fn3
The advantage of a pipeline version is that it reads left-to-right not right-to-left.
And you do not have to maintain an mental evaluation stack.
When you are reading left-to-right but forced to think right-to-left, it is harder.
Left to right I get.
18:27
When the data flow and the reading flow are both going in the same left-to-right direction, it is much easier to understand.
But I speak only English.
You speak algebra.
f(x) vs f(g(x)).
Yes, but not computerish.
f(g(x)) is actually taking the output of g(x) and feeding it into f.
I get the point about mathematics and the direction of notation.
18:28
g x | f
But I do not get words like shell and stack.
Shell scripts are glue that ties several command invocations together.
I imagine this is something about the direction in which programmes feed each other data, but it is not made explicit.
At their simplest, they can be a way to encapsulate (say) running 3 programs in a row.
Command invocations?
18:29
But now you only mention the one command and it runs three.
A command invocation means running a program.
To invoke something is to run it.
Or call it, depending on your choice of terminological poison.
I use different Autohotkey programs to make sure the code in one does not interfere with the code in the other, despite my best effort.
It is better to do one thing well than many things poorly.
It is better to let each component do one thing only.
And much easier to troubleshoot.
18:31
Then combine them way undreamt of when they were written.
My nightmare is now over.
What nightmare?
The idiots in Very Upper Management fired all contractors everywhere, without informing even the Director level. My Director was told I would be saved. They lied to him, or changed their mind, or whatever.
They fired you?
Is that good, bad, or medium?
We were right in the middle of a major release, and I was the project lead, the release manager, its best programmer, and its hardest working one.
They fired everybody.
Strange.
18:34
They are idiots.
The could not have done more to cripple the project unless they had fired the manager himself.
I'm sure you could have done it without the manager.
Meanwhile, people who do 1/3rd or even 1/10th the work I do are left alone. For now.
So is this good, bad, or medium for you?
@Cerberus In general yes, and he has been trying to have us do that.
For me, it is immediately bad but probably long term good.
Ah OK.
How bad is it for now?
18:36
Not enough savings.
No immediate prospects.
Spent $12k on flood repairs.
Not enough for what?
Oh, and it flooded again yesterday for the love of all that's holy.
Not enough to coast by without another job.
Again?
To coast by for how long?
Will it be hard to find a new job?
> Firing a successful project’s de-facto lead programmer and release manager, its best programmer and its hardest working one, right in the middle of a major release no less, is surely the stupidest thing that I have ever seen (CENSORED FIRM) do. Without notification. Without cause. Without reason. Without appeal. I feel like an accidental casualty in some random attack by a suicide bomber. It’s awful. I did nothing wrong and everything right, and I still get shot anyway.
@Cerberus I don’t know.
Since the moment the betrayal came to light, I have been working 15-18h days to rescue my team so that they could live on without me.
So much was in my head alone.
OK that sounds very annoying.
18:37
So I had to keep writing stuff down.
Why even bother trying to rescue the team?
Because they are my friends.
Hmm.
It is not their fault.
Hmm.
18:38
It is not even my boss's fault, or his boss's, or even his, the corporate Director proper.
Is it uncommon for people to strike in such situations?
All were betrayed.
Here, there would be a major strike to bring the company down.
The employee cuts won’t come till either June 6th or June 20th.
Or there could be.
18:39
It may be as high as 25% layoffs.
Technically, I was not “fired”.
There is a legal distinction.
Then why doesn't everybody organise a strike?
Because it hasn’t happened yet, and they don’t know how many it will hit.
But you already know.
The problem is, the stupid big companies have grown over-reliant on so-called contractors.
Yes, I kinda do.
Contractors can also organise a strike.
18:41
I have been doing the job of the team lead for almost two years now.
If enough people who do the actual work go on a strike, the company is brought down.
They couldn’t get the VPs to make me a proper employee.
So I was a mandatory layoff, no matter that I was doing the job of three people.
Yeah we have the same problem here. Even universities do it.
They do this.
It is very wicked. The contractor system is both abused and abusive.
Yup.
My friend used to be fired or "laid off" every summer for three months.
18:42
They gave me a nice going-away party yesterday.
Why? So that she could not build up enough time to get employer's protection against firing.
And when my manager had to announce that I was leaving on Tuesday, he actually choked back tears.
Aww.
I was by far the most valuable person he had. I made the entire team better.
And the modestest, no doubt.
18:43
:)
You want honesty or modesty?
It is simply true.
I make no boasts.
have you been working there for long time?
@Cerberus Actually, I was quoting our Director.
@JohanLarsson Two years to the day.
But mostly 50-60 hour weeks, no vacation or holiday.
But paid hourly.
It wasn’t a lot of money, but it had health-care and was regular.
It was low six figures only, sigh.
And I was the architect they needed.
18:46
Is Norway an alternative?
come here for some fresh air imo
I don’t want to move.
If I did, I would have taken the Google offer of $165k to move to California and work on Unicode.
what would a typical day working on unicode look like?
> That this was done without even consulting my management chain up to [our Director] himself makes it even worse. They even told you guys something completely different, so I am not the only one they betrayed here. I lay no blame for this at your feet or [our Director]’s, and I would gladly work for all three of you again. I know you all did everything possible, but in the end, nothing mattered.

I have worked day and night to try rescue the team since I was told. You have no idea how hard this has been. I mean that.
@JohanLarsson That’s a good question. I don’t know. It probably means updating Unicode-dumb libraries to be Unicode-savvy, or better, writing smart new ones.
I was in the top 2% of performers across the larger group, one of the last people who would ever be cut, and in a sector that was making money, gaining customers, and growing at well over 100% per year. But because of the contractor status, none of that mattered and they simply fired everyone.
So so so so stupid. This is going to cost them a lot.
I had to finish up some of my projects without giving them the full documentation effort they merited.
Fortunately, one thing will save them.
I spend more time on writing simple code than on writing potentially deceptive comments.
So because the code is simple and clean, with everything small and focused, or at least separated in walled-off namespaces and privacy realms, and I use clear identifier names and consistent formatting and style, they will have much less trouble with my code than with the crap they used to hand me.
Plus I have lots of DWIM built into the code.
Here's another secret.
The language doesn’t actually matter: good programmers write good programs in any language, and bad programmers write bad programs in any language.
@Cerberus See the Gnomic Utterances above. There were things I dared not say directly, so I cloaked them in metaphor.

« first day (1297 days earlier)      last day (3922 days later) »