Open another terminal window. Run make. For each error that pops out, fix it with the editor. Rerun make as required.
It’s not unusual for me to have three terminals open each with my preferred text editor, another term open for making the project, and another term open for running and debugging. I’ve yet to find an IDE that won’t crash on me (for over 25 years I’ve yet to find an IDE that lasts longer than 5 minutes without crashing).
And with the Acme editor this process is even simpler, for every error that pops up in make (running in an acme window), you just right click on the file name and it will open or switch to the file with the cursor on the right line/column.
Actually I found recently that Vim can do this, if you do:
make > errors.log
lint > errors2.log # another good example
vim errors.log
Then just do “gf” over the error messages, and it parses “foo.py:32” in the correct way and jumps there! Works surprisingly well.
Unix!
That’s really cool, though the part I like about acme is that it does all this composition of programs in a way that allows even a computer illiterate to use it. I mean anybody can right click on some text.
Yes, my text editor can do that. I even played around with that feature for a bit. I still find it faster using separate terminal windows.
I tend to use acme windows as my terminal, so opening another acme window is sort of like running a separate terminal.
Though I do want to explore the idea of the “Universal user interface”, acme is really nice, but it’s a shame that it manages it’s own windows, it would be interesting to have a version of acme that worked a bit more like Kakoune. The text editor could simply be a graphical shell that talks to a text editing server and to other programs and doesnt actually do anything, that way it could probably be lightning fast, super flexible and easier to prove correct.
it’s a shame that it manages it’s own windows, it would be interesting to have a version of acme
I’m fantasticating about this from the other perspective: it would be nice to have a rio evolution that allow you to edit, click and run anything on your screen.
I imagine an editable text toolbar on top of my screen containing things like
F1|Mail F2<>Edit Ctrl+F3^Open …
Where F1 pipe selected text to a mail program, F2 open selected text in a super simple editor that (simpler than acme and sam), once saved replace the selection, Ctrl+F3 send the selected text to the plumber with the Open command…
I guess you get the point…
it would be nice to have a rio evolution that allow you to edit, click and run anything on your screen.
I feel like rio could be a program that only manages windows and offers a tag window for every window (or only one on top) . The tag window itself could be running a version of acme that doesn’t do window management.
Frankly, this is something I have just fantasticated for a while.
The idea is that you should have the ultimate IDE available from boot.
Give a try to Oberon-07 if you want an idea of what I mean: Oberon was actually an inspiration for Acme UI design.
But I’m still working at protocol/kernel level issues in my os, so this is not something I investigated seriously.
Yeah I’m familiar with Oberon, though I’ve never actually experimented with it. I’m thinking that a modern acme could just be a graphical window with mouse chording, the text editing could be handled by another program, like the way xi-editor frontends work.
Yes, my text editor can do that as well. I can highlight some text, hit the right key (it’s not F2 but some other key my fingers remember) to feed the selection through an arbitrary command and then …
And it’s not even a new text editor, but one I’ve been using for over twenty years.
This is my workflow as well, although I sometimes have the terminal running inside a text editor for ease of navigation.
entr is a godsend in this regard, as it offers a language and tooling agnostic way to re-run tests/builds when files change.
I do the same. Do consider using something like screen or tmux, however, for a substantially nicer workflow.
The last time I used screen in my workflow was when I had to dial up via modem into the school network (through a terminal server). Once ISPs and being part of the Internet became a thing, my use of screen has dropped. Yes, I still create new terminal windows when logging into a remote server.
The only time I use screen these days is if I have to remote into a server and keep a programming running while not logged in. It’s useful, but not a common use case.
The last time I used screen in my workflow was when I had to dial up via modem into the school network (through a terminal server). Once ISPs and being part of the Internet became a thing, my use of screen has dropped. Yes, I still create new terminal windows when logging into a remote server.
The only time I use screen these days is if I have to remote into a server and keep a programming running while not logged in. It’s useful, but not a common use case.
In case someone hasn’t heard of it, Mosh is a replacement for ssh that is designed with the intention of the workflow described in the article (working in a session on a remote machine).
I have personally stopped using tmux after getting used to neovim and its terminal mode. It is not perfect, but I like having one less layer to manage.
A solid list, with one question mark.
Lynn Conway started life as a man. does this mean he/then her achievements give equally credited to men/women?
Thank you . I want to live in a world where this is just taken as a given. Lets start with our little world here people.
What is the goal of creating a list of women in CS? If it’s to demonstrate to young girls that they can enter the field, it seems unproductive to include someone who grew up experiencing life as a man.
If the goal of creating the list is some kind of contest, then it’s counterproductive for entirely different reasons.
someone who grew up experiencing life as a man
Do you know any trans women who have said they grew up experiencing life as a man? I know quite a few and none of them have expressed anything like this, and my own experience was certainly not like that.
However, if you mean that we were treated like men, with the privilege it brings in many areas, then yes, that became even more obvious to me the moment I came out.
Regardless, trans folks need role models too, and we don’t get a lot of respectful representation.
$ curl https://www.hillelwayne.com/post/important-women-in-cs/ | grep girl | wc -l
0
The motivation for the post are clearly layed out in the first paragraph:
I’m tired of hearing about Grace Hopper, Margaret Hamilton, and Ada Lovelace. Can’t we think of someone else for once?
It’s a pretty pure writeup for the sake of being a list you can refer to.
On your statement about “girls”. It’s quite bad to assume a list of women is just for kids, it’s also bad to assume trans women can’t be examples to (possibly themselves trans) girls.
That’s not a motivation, that’s a tagline.
The primary reason I would refer to a list like this is if I was demonstrating to a young woman considering CS that, perhaps despite appearances, many women have historically made major contributions to the field. I’m not sure what else I would need something like this for.
I don’t see why it’s bad to assume that. It feels like it would be a pretty serious turn off to me if I we’re looking for successful women and found people who were men into adulthood. I find it hard to imagine that I’m unique in that feeling. I’m sure it feels good for trans people but I’d that’s your goal admit the trade-off rather than just telling people they’re women and not transwomen.
You can berate people for not considering trans-women to be the same as born women but it will likely just keep them quiet rather than convince them to be inspired.
people who were men into adulthood
Now I’m curious what your criteria are, if not self-identification. When did this person cease to be a man, to you?
When they changed their name?
When they changed their legal gender?
When they started hormones?
When they changed their presentation?
When they got surgery?
What about trans people who do none of that? E.g. I’ve changed my name and legal gender (only because governments insist on putting it in passports and whatnot,) because I had the means to do so and it bothered me enough that I did, is that enough? What about trans people who don’t have the means, option, or desire to do so?
When biologist say that there’s not one parameter that overrides the others when it comes to determining sex¹, and that it makes more sense to just go by a person’s gender identity if you for whatever reason must label them as male/female, why is that same gender identity not enough to determine someone’s own gender?
If it’s to demonstrate to young girls that they can enter the field, it seems unproductive to include someone who grew up experiencing life as a man.
This is a misunderstanding of transexuality. She grew up experiencing life as a woman, but also as a woman housed in a foreign-feeling body and facing a tendency by others to mistake her gender.
Does that mean she faced a different childhood from many other women? Sure. But she also shared many of the disadvantages they faced, frequently to a much stronger degree. Women face difficulty if they present as “femme” in this field, but it is much more intense if they present as femme AND people mis-bucket them into the “male” mental box.
If they identified as a woman at the time of accomplishment, it seems quite reasonable that it’d count. For future work, just think about it in terms of trans-woman extends base class woman or at least implements the woman interface.
In any event, your comment is quite off-topic. Rehashing this sort of stuff is an exercise that while interesting is better kept literally anywhere else on the internet–if you have questions of this variety, please seek enlightenment via private message with somebody you think may be helpful on the matter, and don’t derail here.
The point of this is not to give more achievements to women… It’s to showcase people who were most likely marginalized.
[Comment removed by author]
[Comment removed by author]
Depends on where a person is on political spectrum. I’d probably note they’re trans if targeting a wide audience, not if a liberal one, and leave person off if a right-leaning one.
Interesting question. I think it may be met with hostility, as it brings to mind the contradiction inherent in both claiming that sex/gender is arbitrary or constructed and also intentionally emphasizing the achievements of one gender. Based on the subset of my social circle that engages in this kind of thing, these activities are usually highly correlated. Picking one or the other seems to get people labeled as, respectively, some slang variation of “nerd”, or a “TERF”.
Can we please not for once? Every time anything similar to this comes up the thread turns into a pissfight over Gender Studies 101. Let’s just celebrate Conway’s contributions and not get into an argument about whether she “counts”.
Much as I sympathize, transgender is controversial enough that merely putting a trans person on a list that claims all its members are a specific gender will generate reactions like that due to a huge chunk of the population not recognizing the gender claim. That will always happen unless the audience totally agrees. So, one will always have to choose between not mentioning them to avoid noise or including them combating noise.
I would like to live in a world where trangender isnt controversial and we dont have to waste energy discussing this. Can lobsters be that world please ?
Perhaps this is why we get accused of pushing some kind of agenda or bringing politics into things, by merely existing/being visible around people who find us ”controversial” or start questioning whether our gender is legit or what have you. I usually stay out of such discussions, but sometimes feel the need to respond to claims about trans folks that I feel come from a place of ignorance rather than bigotry or malice, but most of the time I’m proven wrong and they aren’t really interested in the science or whatever they claim, they just want an excuse to say hateful things about us. I’ve had a better than average experience on this website, when it comes to responses.
I cant speak for everyone on the side that denies trans identity. Just my group I guess. For us and partly for others, the root of the problem is there is a status quo with massive evidence and inertia about how we categorize gender that a small segment are countering in a more subjective way. We dont think the counters carry the weight of status quo. We also prefer objective criteria about anything involving biology or human categorization where possible. I know you’ve heard the details so I spare you that
That means there will be people objecting every time a case comes up. If it seems mean, remember that there’s leftists who will be quick to counter anything they think shouldn’t be tolerated on a forum (eg language policing) on their principles. For me, Im just courteous with the pronouns and such since it has no real effect on me in most circumstances: I can default on kindness until forced to be more specific by a question or debate happening. Trans people are still people to me. So, I avoid bringing this stuff up much as possible.
The dont-rock-the-boat, kinder approach wouldve been for person rejecting the gender claim to just ignore talking about the person he or she didnt think was a woman to focus on others. The thread wouldve stayed on topic. Positive things would be said about about deserving people. And so on. Someone had to stir shit up, though. (Sighs)
And I agree Lobsters have handled these things much better than other places. I usually like this community even on the days it’s irritating. Relatively at least. ;)
For us and partly for others, the root of the problem is there is a status quo with massive evidence and inertia about how we categorize gender that a small segment are countering in a more subjective way.
I know you’re a cool dude and would be more than happy to discuss this with you in private, but I think we all mostly agree that this is now pretty outside the realm of tech, so continuing to discuss it publicly would be getting off topic :) I’ll DM you?
I was just answering a question at this point as I had nothing else to say. Personally, Id rather the political topics stay off Lobsters as I voted in community guidelines thread. This tangent couldnt end sooner given how off topic and conflict-creating it is.
Here’s something for you to try I did earlier. Just click the minus next to Derek’s comment. This whole thread instantly looks the way it should have in first place. :)
I find the idea that everyone who disagrees with these things should avoid rocking the boat extremely disconcerting. It feels like a duty to rock it on behalf of those who agree but are too polite or afraid for their jobs or reputations to state their actual opinions, to normalize speaking honestly about uncomfortable topics.
I mean, I also think it’s on topic to debate the political point made by the list.
I agree with those points. It’s why I’m in the sub-thread. The disagreement is a practical one a few others are noting:
“I mean, I also think it’s on topic to debate the political point made by the list.”
I agree. I told someone that in private plus said it here in this thread. Whether we want to bring it up, though, should depend on what the goal is. My goal is the site stays focused on interesting, preferably-deep topics with pleasant experience with minimal noise. There’s political debates and flamewars available all over the Internet with the experience that’s typical of Lobsters being a rarity. So, I’d just have not brought it up here.
When someone did, the early response was a mix of people saying it’s off-topic/unnecessary (my side) and a group decreeing their political views as undeniable truth or standards for the forum. Aside from no consensus on those views, prior metas on these things showed that even those people believed our standards would be defined by what we spoke for and against with silence itself being a vote for something. So, a few of us with different views on political angle, who still opposed the comment, had to speak to ensure the totality of the community was represented. It’s necessary as long as (a) we do politics here and (b) any group intends to make its politics a standard or enforeable rule. Countering that political maneuvering was all I was doing except for a larger comment where I just answered someone’s question.
Well, that plus reinforcing I’m against these political angles being on the site period like I vote in metas. You can easily test my hypothesis/preference. Precondition: A site that’s usually low noise with on-topic, productive comments. Goal: Identify, discuss, and celebrate the achievements of women on a list or in the comments maintaining that precondition. Test: count the comments talking about one or more women versus the gender identity of one (aka political views). It’s easier to visualize what my rule would be like if you collapse Derek’s comment tree. The whole thread meets the precondition and goal. You can also assess those active more on politics than the main topic by adding up who contributed something about an undisputed woman in CompSci and who just talked about the politics. Last I looked, there were more users doing the politics than highlighting women in CompSci as well. Precondition and goal failed on two measurements early on in discussion. There’s a lot of on-topic comments right now, though, so leaned back in good direction.
Time and place for everything. I’d rather this stuff stay off Lobsters with me only speaking on it where others force it. It’s not like those interested can’t message each other, set up a gender identity thread on another forum, load up IRC, and so on to discuss it. They’re smart people. There’s many mediums. A few of us here just want one to be better than the rest in quality and focus. That’s all. :) And it arguably was without that comment tree.
The dont-rock-the-boat, kinder approach wouldve been for person rejecting the gender claim to just ignore talking about the person he or she didnt think was a woman to focus on others. The thread wouldve stayed on topic. Positive things would be said about about deserving people.
Do you believe the most deserving will be talked about most? If you have a population that talks positively about people whether or not they are trans, and you have a smaller population that talks only about non trans people and ignores the trans people, Which people will be talked about most in aggregate? It isn’t kinder to ignore people and their accomplishments.
It is also very strange for technology people to reject a technology that changes your gender. What if you had a magic gun and you can be a women for a day, and then be a man the next, why the hell not? We have a technology now where you can be a man or a women or neither or both if you wanted to. Isn’t technology amazing? You tech person you!
https://blogs.msdn.microsoft.com/philipsu/2006/06/14/broken-windows-theory/
Windows code is too complicated. It’s not the components themselves, it’s their interdependencies. An architectural diagram of Windows would suggest there are more than 50 dependency layers (never mind that there also exist circular dependencies). After working in Windows for five years, you understand only, say, two of them. Add to this the fact that building Windows on a dual-proc dev box takes nearly 24 hours, and you’ll be slow enough to drive Miss Daisy.
I haven’t been around in the industry too long, i was in school when this blog entry was posted. But I’ve seen a few projects struggle and fail because of bad architecture and increasing technical debt. The OPs article definitely reflects the struggle between new features, legacy support, and paying down the technical debt (improving security, etc.).
The microservices that are all the rage these days adds a whole new layer of challenge to understanding dependencies. While monoliths have their own challenges, at least all of the information is there to understand what is connected. I’m still not sure if this has been adequately solved.
Arguably microservices can simplify this dependency tree tremendously. In the world to date, it has been essentially impossible to compile many differently versioned libraries together into one monolithic application, which is what generally happens when you have a large number of teams doing separate development.
With microservices, again arguably, encapsulation happens at the whole-service layer, so each team is free to develop using whatever versions they like, and just provide HTTP (or whatever) as their high level API.
Where this tends to break down in my experience is (a) where true shared dependencies exist, which can happen if you either were bad at data modeling to begin with or if your needs organically grew differently than your original design, and (b) operationally, in a world of incredibly broken and insecure software, processors, etc., resulting from C (and now JS) and the shared memory model, where it is no longer possible to understand what in the opaque blobs need patching.
C obviously has memory bugs but I’m curious what insecurity you see stemming from JS. Is it the automatic type casting? (I write JavaScript every day and think a good portion of the new parts of the language are good, but I will fully admit it spent its formative years on crack.)
I don’t see how adding more dependencies simplifies anything, that can only make it more complicated. It may be convenient, but it’s not simpler. And in order to have that architecture one needs to have network protocols and serialization going on which has a performance and cognitive cost. There certainly are reasons to have a microservice architecture but I have a hard time seeing simplification as one of them.
Microservices exist mostly to facilitate development by many teams on a large system. They are one of the best examples of Conway’s Law.
You are correct that they add complexity, and they tend to be adopted regardless of if they solve a real problem.
If you are getting to the interview, then your resumé is doing its job. As the seniority of the positions you apply for grows, the usefulness of that document tends to shrink, leading to other aspects of the job application process taking on more importance. So I would focus on what happens after the resumé is reviewed: the interview itself. When you say “doesn’t work very well”, what do you mean exactly?
Once you are in the room (or on the call) for an interview, worry less about the job description and focus more on showing the person you are talking to that you are great to work with. It depends on the company, or course, but in my eperience job posts say things like “n years of experience in technology x”, but what people are looking for is an ability to communicate well about technical topics, be honest about not knowing answers to questions, and ask insightful questions about what is important. This stuff is often not in the job description.
When interviewing a person, I don’t really care what tools or languages they’ve used, or what the high level descriptions of the projects they’ve done are. I am looking for:
In terms of getting a higher position, you need to be able to say “I haven’t done this specific thing before, but I have this relevent experience that shows I have related skills. I am confident that I can take the additional responsibility on.” As others have mentioned, some companies prefer to promote from within. But a lot of people advance their careers by changing roles and companies at the same time.
One other thought is to think about what kind of companies you are applying at. There might be a mismatch that is contributing to your experiences so far.
I thought Moxie’s response on HN (technically responding to the wired article, but I don’t think he would say anything substantially different about the blog post) was really good. The conclusion of which is
To me, this article reads as a better example of the problems with the security industry and the way security research is done today, because I think the lesson to anyone watching is clear: don’t build security into your products, because that makes you a target for researchers, even if you make the right decisions, and regardless of whether their research is practically important or not. It’s much more effective to be Telegram: just leave cryptography out of everything, except for your marketing.
Nonsense. If you build an end-to-end encrypted thing you inherently call the server your adversary. Hence, don’t handle key management in the server.
I think this accurately highlights a real problem with how security and privacy are talked about in popular culture and even in many technical outlets: they are seen as something you either have or don’t. In reality, of course, all technology has to balance security with other concerns, such as usability, cost of building and maintaining the product, technical feasibility, etc. There is no such thing as completely secure software, only software which is secure enough for a certain purpose. Signal says that their service is designed to combat passive surveillance, and I think you could make a case that what this article is describing is more of an active/targeted attack. Which, of course, is not an argument against plugging the hole in Signal’s model if possible.
Signal has done a pretty good job of maximizing security while providing a nice user interface. It is probably worth pointing out that it is still a better option than many of the alternatives in articles like this one.
The approach described in this article should work for any front end app whose build tools require node and npm, such as apps that use webpack.
I agree, it’s everything based on npm/webpack. How dependencies are organized (dependencies and devDependencies) was specific to Vue and it was part of the problems to solve, but it can happen in other node/webpack apps.
I forgot to mention that I had to do this myself a little while ago and ended up with a similar but not as well thought out approach. So thanks for writing this guide up and posting it!
Electron is popular because is has little (no?) competition in its space. What are the other tools that provide the same level of code reuse between platforms, a UI toolkit that many developers already know how to use, and is free? Electron’s popularity is more the result of limited adoption of other cross platform tools than it is an endorsement of its particular approach.
This is where you end up when the big platform developers are not interested in supporting other platforms. See also the rise of React Native for similar reasons in the mobile space.
I find it a little funny that the argument used against many cross platform toolkits over the years was that they weren’t “native enough”, and now we are seeing more and more desktop apps built on top of a web browser.
Do the changes made in Jehanne (vs. the other Plan 9 descendants) make it any easier to compile and run a modern web browser? It seems like this is the stumbling block all alternative OSes are tripped up by these days.
It obviously depends on which browser, but I think so.
RedHat’s newlib is battle tested on Cygwin, so Jehanne has a true “standard” C library to build upon.
The rest is “just a matter of workforce”.
But do not hold your breath: porting Firefox (my favorite) is very low in my priorities.
I do not care much about web browsing in Jehanne, as I want to replace the web! ;-)
Thinking more about this I’ve realized that all Plan 9 descendants seems to share a sort of dislike for the web.
It should be noted that my daily job is as a C#, JavaScript, and $whatEverYouPayFor developer and I pay the bills building finance applications for large companies, mainly banks. I fight with everything between IE8 and Chromium on a daily basis. And I often have to remote desktop over remote desktop over remote desktop in vpn, for security reasons.
I know JavaScript very well. We are good enemies. Like Harry Potter and Tom Riddle.
So maybe I’m a bit biased too.
But in my defense, you should consider that Jehanne (like Plan 9, 9front, and friends) is a distributed OS.
We do not care about world domination, just about progress.
The web will always be there (we still have Gopher after all!), and nostalgics will keep using rdesktop and xhost.
In a distributed computation experience, the OS you use for any particular task should be a detail.
This article contains a great explanation of the differences between how scalar, superscalar, and out of order CPUs execute instructions.
The survey doesn’t have much substance, unfortunately. It asks people to identify themselves using a single term (“conservative”, “liberal”, “libertarian”, with a few shades in between). These terms have relative meanings and this seems like a faulty foundation for this kind of work. It would be better to ask for participant’s views on specific issues.
This survey answers the question “do people who identify with a particluar ideological label or a particular religion feel as though their views aren’t welcomed?” What it will not show is if this feeling accurately reflects reality, and, perhaps more importantly, it will not determine if those views are worth being shared in a group setting.
“ It would be better to ask for participant’s views on specific issues.”
Totally agree. The times I got downvoted into near oblivion on SV forums or had political problems at work in person are always on specific issues. There’s whatever is the dominant group(s) there. There’s beliefs they find acceptable (or dogma), neutral, or offensive. Too much neutral leaves person out of in-crowd. Even one offensive can redefine the dominant group’s perception of them into an opponent. Some groups forgive an infraction or two but respond negatively to consistent use of other side’s views.
This is consistent everywhere Ive spent significant time in all groups. A few seemed to mostly kick it since that was a constant goal of theirs: true inclusion by tolerating even opinions they dont feel good about. Quite an experience. Even they develop a culture within their groups that has some positive and negative bias. I have doubts Ive met a group truly immune to discrimination over politics or culture.
Always on specific issues or response patterns when it comes out though.
I tried to use an iPad for web development work this year, but the lack of on-device in-browser dev tools was a deal breaker.
I haven’t tried Eruda yet, but it looks very promising. It doesn’t support editing CSS within a live page, but even without that it could be a useful troubleshooting tool.
I’ve seen a few posts about Slack’s backend engineering. I’m normally interested in stuff like this, but honestly, their frontend client is so slow - so frustratingly slow - that I never read them. I wish they’d get it sorted out, I mean it’s truly abysmal.
This is an excellent post, great engineering work. I’m bookmarking it to send to people who do sloppy roll-outs. I highly recommend you read it even if you don’t like the client.
All the time. This is on fairly crappy hardware, mind, but still, compared to almost all other applications on my system it’s incredibly sluggish.
I use their desktop app on a pretty fast MBP. Switching between teams is painful, and I have a lot of issues with views being displayed and then updated a few seconds later, which is disorienting.
I tap a push notification from slack on mobile, and it takes >30 seconds to show me the message (on an iPhone 6s, one of the most used devices).
Slack tends to run slow in larger teams. Normally, I’d chalk it up to slower hardware, but I recently started using it on a newer Dell work laptop, and it is very easy for it to get slowed down if you’re doing anything with the rest of the machine.
I think the slack desktop front-end really could use a round of performance improvements so that it runs well on hardware that wasn’t literally released this year, or otherwise highly priced.
@nhooyr: What is the relative size of the teams you’ve been using it on? How many gifs do they use, how many channels are you usually in?
This technique, while very impressive, is disorienting as a user. The images shown to a single user for a movie or show change constantly, which makes recognizing titles based on their cover art nearly impossible.
If they were customized but more stable on a per-user basis, I think the experience would be vastly improved.
In terms of selecting an appropriate vocabulary for discussion or writing, it is imperative to understand your audience. “Bigger” words or technical language often exist to communicate ones ideas more fully and exist as useful abstractions in the right context. The author’s concerns are valid, but it is also worth not limiting yourself to the most simple forms of programming or communication as an absolute rule.
Higher level languages and techniques are inherently more complex, but the benefit of this abstraction is being able to focus on solving a problem by communicating your intent in terms that more closely match your understanding of the problem.
The term “simple” can also mean a lot of different things. C and Ruby are both simple in some ways and complex in others.
Higher level languages and techniques are inherently more complex
No. The implementation of high-level languages on machines designed to run Fortran and C might be involved, but their semantics of high-level languages can be quite simple, actually. Not that simple low-level languages cannot possibly exist, of course.
Completely agree. My perspective is very biased towards current implementations of high level languages on top of machines designed to be operated at a lower level.
The term “simple” can also mean a lot of different things. C and Ruby are both simple in some ways and complex in others.
C is simple, while Ruby is easy… is what I wanted to write immediately after reading last paragraph - which might just prove your point ;)
If this is a reference to the well known Rich Hickey talk “Simple Made Easy”, which nails down the definition of simple to something more objective and less squishy than its normal usage, then neither C nor Ruby would be simple in that sense.
Are either of them easy? Well, how familiar are you with them? At one point during college o had written so much C for different systems classes that it was easy. Now, no way. In this sense, simple is an intimrinstic property of the design, ease is a property of the subject answering (in this case, me).
Rich Hickey does not give a technically precise definition of “simple”. I have in the past proposed two measures of simplicity:
But most other people were at best indifferent to my suggestion. At worst they were made very angry.
EDIT: Fixed typo.
I can see both your point and some other peoples’ objections.
For the record, I didn’t say technically precise. His definition is more philosophically or conceptually well founded, if you want me to get specific. It won’t give a snippet of code or a program a “complexity score”, but it is useful for reasoning how relatively complex/simple two concepts, approaches, or solutions are.
And that’s a big improvement over “I feel like closures are complex”, “oh yeah well I feel like they’re simple!”.
Falling short of full technical precision does not delegitimize the his definition, or the conversations that can be had using that definition.
I can see both your point and some other peoples’ objections.
I can see their objections too: “How dare you! A formal semantics would expose the complexity of what I’m trying to sell as simple! You damn little…!”
His definition is more philosophically or conceptually well founded, if you want me to get specific.
Philosophy is useful when it guides technical work, but it’s the latter that ultimately we need to get done. If “simplicity” is to become a software quality criterion, we need to abstract, quantify and measure it.
Falling short of full technical precision does not delegitimize the his definition, or the conversations that can be had using that definition.
Without a formal definition, his idea of “simplicity” is just a proxy for his aesthetics.
Seems like this is targeted specifically at the use case of running inside a browser.
I’m just transitioning from npm to yarn for my own projects. Current versions of either seem pretty good to me, and much improved over old versions of npm in terms of speed.
Faster is always better, but I don’t feel seriously inconvenienced by existing tooling anymore (at least on my own projects, which are not that large.) Are there still major performance concerns for typical projects with existing tools?
I’m just transitioning from npm to yarn for my own projects.
I wonder when do you JavaScript people actually program for users :-)
What users? ;-)
I probably should have specified “for new projects”, but in any case, your point stands!
This is a very nice idea, and like issues, ties you into the infrastructure.
The problem I have with this is that - like issues - it now separates out the code from the discussions about the code in not a nice way.
Ideally, the infrastructure would be a nice GUI on top of a data structure either embeded in git (like commits, tags, etc) or closely allied with it such that when I mirror the code to other infrastructure, or to my local machine, the issues and discussions come with it.
Currently, for example, I will have commits in the code that reference issue #12 and github’s infrastructure does a wonderful job of cross-linking and tooltipping and what not. I move to gitlab. BOOM! All gone.
One could argue that when github disappears we will all be pretty old, and our antique code will only be seen in museums because all the kids are using AIs to program, or the AIs are programming the kids, either way.
But, you know, I have a code base from sourceforge (yeah, remember that, kids?) that is now 15 years old. The commit messages have survived just fine (migrated from CVS or SVN I forget) but not the issues. Were there any important design decisions based on the issues and the discussions around the issues. Yeah, yeah, I should have put them in the commit, but I’m human. And why must I repeat information?
-Yours in elderly (not that elderly!) rantiness
I have not used it myself, but Fossil has issues, a wiki, etc. built in and might be worth checking out.
Similarly, Red Hat’s Pagure does much the same on top of git.
I hear you.
Ideally I think issues/bugs can be handled by something like bugseverywhere - they live in git/hg/etc so updating/closing and committing is synced. It needs a decent web UI though. One of these days…
Notes/discussions I’m not aware of anything but it would be an interesting problem to solve.
Long form docs can be handled as markdown/similar in a directory and rendered via something like Gollum or even a static site generator if you don’t need browser based updates.
It is worth noting that ActiveRecord::Observers was removed from Rails 4 in favor of using more explicit methods to invoke behavior.
The current trend is to use a service object to encapsulate work that doesn’t cleanly fit into a model, although there are undoubtedly other approaches as well.
Does anybody have some ideas on why we as software developers are so likely to shirk our responsibility in the things we create?
Is it a capitalist thing where being paid to do something is all the justification needed, and everything else is “on them” (the people paying you for your work, the people who use the tool/system, the users who choose to interact with the system)?
Is it because our industry is young and so dominated by young people that there isn’t a long term perspective on the impact we have? How often do people ask each other or themselves, “how will I feel about this when I’m looking back over my life and what I’ve brought into the world?”
Is it the nihilistic view that “if we don’t do it, somebody else will, so it might as well be us?”
Is it just the simple fact that doing the right thing (what is in the interest of the people who our software will affect) is harder, takes more work, more discipline, and is not what we’re rewarded for (directly by superiors, or systemically)?
Is it that we all have so little faith in our industry as a whole that we’ve all shrugged and said “fuck it, I’m not going to be the only one who gives a shit”?
Is it the way that user’s are often talked down to and looked down on that effectively minimizes their view, perspectives, and interests?
Do you think it comes from other places?
Is our industry more or less prone to this? We do seem to be a particularly unconcerned and irresponsible group, but there are clearly more egregious examples (finance, pharmaceuticals, the fashion industry, and others). Not that it’s an excuse that others do even worse in some regards.
It’s a hard topic, and I can be prone to cynicism, but I don’t see Silicon Valley moving in the opposite direction any time soon. That said, everything creates its own resistance, and I have seen small trends of choosing sincerity and giving and shit over cynicism and disregard.
Thoughts or perspectives?
Economic forces are definitely a large part of it. Software designed in a world where “usage = value” will end up with UIs that are as difficult to use as possible without actually driving away users. We have gotten so far from a consumer exchanging money for a good or product and the incentives in the modern tech sector are wildly misaligned.
There is also a relative lack of organized forces opposing the actions taken by tech. Think about all of the environmental groups who are trying to prevent pipelines being built, and contrast that with what there is opposing the creation of buggy, user hostile software. A few tech people sounding the alarm is a long way from marching in the streets, being chained to trees, lobbying lawmakers, etc.
Some of this might be the addressed in the future through government regulations (similarly to how other industries have been subjected to environmental or safety regulation), but at the same time, it is difficult to imagine a concise way to make crappy software illegal. And without a lot of public outcry, of course, it is unlikely that anything will be done.
It’s not a direct answer, but for more musings on these types of questions: https://en.wikipedia.org/wiki/The_Californian_Ideology (you can find the text pretty easily online)
I think that many Rails projects do end up needing this kind of functionality.
How does your solution differ from existing open source tools or services like Docraptor?