Sure was. Over at HN they had some interesting thoughts on how to make the input sound good as well.
Not a musician by any means, but implementing some kind of scale might sort that out.
For someone musically inclined I don’t suppose it’d be rocket science to implement that.
If anybody is interested I am currently working on something similar. However instead of midi input I am discerning the keys with the help of fast fourier transforms allowing for acoustic instruments as well. For single keys it works ok I think. I suppose the tricky part will be chords.
Trying to work on a mouse replacement scheme, that’s sort of out there but I always wanted to do.
The premise is the following. Start out with the mousekiller, keynav (link below). That works by dividing the screen into four and then dividing and conquering until you reach your destination.
I’m not sure whether anybody seriously uses this but perhaps some of the tiling wm guys swears by it. If that’s the case please comment because this might be of interest!!
So my take is that if we throw in some simple image analysis into this we could find discrete blobs. So instead of having to select from width by height elements top, it could be boiled down to say 3000 or so discrete elements.
What I’m currently am looking at is using a FFT to get the frequencies from the display. The idea being that icons are not discernible by means of colors. However they will change pixels at a similar rate, compared to backgrounds.
This means that the system could operate without intrinsic knowledge about the UI system. Which might come in handy for say VNC sessions, games and whatnot.
All in all I’d like to think of it as an endeavor similar to pentadactyl/vimium/etc.
As far as FFT is concerned, I’m not sure if this is the best case. There might be other simpler more well suited algorithms that could be plugged in instead. What is needed in essence is a function that calculates an energy value for each pixel. Something along the line of what they are doing with seam carving, content aware resizing (which is an source of inspiration).
I’ve done something similar in the experiment pile as an alternative to mouse acceleration and accessibility support. It worked well enough to put it in the “clean up, integrate, writeup” queue. Instead of FFT and blob detection though, I went with gaussian downsample + sobel operator, then raytrace along the mouse cursor vector, and at each intersection over a threshold, walk the edge and look for a loop, if found, warp to the centre.
Interesting would you happen to have a demonstration of it somewhere. Would be fun to see it in action.
I see how a sobel operator would make sense even in my case. And where thinking of something similar. I made room for implementing different filters for detection to see what works.
I feel that for some cases, say in some future setup where you want to interface legacy systems this kind of thing could be extremely useful. Since I feel that in the next big paradigm mice might not be available. Say if you have a fancy VR setup and want to access legacy mouse driven interfaces.
Nothing online yet, holding it as part of an article. The better one (and for fancy eye-tracker as well though) is eye trackers. In VR they are more than enough precision wise, but even desktop tobii- ones are about the same level of precision (~0.5-1cm) as this tactic, but cheaper and more robust.
To be able to assemble/link/package a proper .apk file (still without JVM and Android Studio), I believe the next thing I need to do would be to port apksigner from Java to Nim.
But first, I want to do some initial spring cleaning at my place. There’s way too much of it for me to be able to complete it over the weekend, but I must at least start :) Also meeting family and some friends.
Hi! Since just a few months ago really. How about you? :)
As to the assembler… it’s mostly that I want to code some apps for my phone, but I kinda hate the heavy weight of the whole Android Studio + JDK environment (at least when considering doing this in my free time). And then I don’t even like Java that much. I tried writing some stuff in Yeti once; I liked the language quite much, but then the complexity and slowness of the multi-stage compilation process/feedback loop became even more unbearable. So, now that I found Nim, and it feels good to me for those kinds of hobby projects, I wanted to try pursuing this alternative path I considered for quite a long time, and see how far can I get with it. I explored PWAs in the meantime, but I found them too limited and too slow for me. Similar with React Native. And all in all, .apk and .dex are just file formats, and Android is kinda open, so I imagined there should be some specs and examples somewhere… and indeed found some, they looked approachable, so, you know, I pondered some name I’d like for the project for a while, then git init, nimble init, vim, and here we are, yet another hobby project, like I don’t have enough unfinished ones out there already ;P
Same here. Thing is that I want to create a keyboard replacement, so the requirements are that it has to be fairly resource efficient and make use of low level systems features. At the same time I want to demo it with HTML technologies. So I’ve been diving into it for some months.
Do you think your project could be a part in making nim available for the android platform somehow.
Lol, hahaha, yeah, sure, that’s certainly the “moonshot” best-case scenario, you’ve seen perfectly clear through my deception :D I actually have a few various ideas how this could be useful however, trying to think about minimizing effort so that it could be doable with my limited time. Note (I’ve read somewhere recently) that it seems Nim can already be used to build the native part of JNI apps, so in a way it’s apparently already “available for Android somehow”! :) But I believe it still requires Android Studio, so I’m pondering maybe trying to replace this part of the equation with a wrapper built purely with Nim? Though a thought of this maybe becoming a full-blown backend for Nim surely burns at the back of my mind. Still, I’m trying to plot my paths such that intermediate steps could also be useful to some people, in case I get sidetracked at some point. That said, I did take a quick glance recently, and at first sight, the Nim backends seem to look surprisingly approachable. But I must resist the overwhelming temptation, and focus on an incremental approach :)
Hm, by the way, but would you be maybe interested in collaborating in some way? Just asking, don’t feel pressured or whatever. But if you e.g. were, say, curious to explore what it might take to emit the first “black triangle” (i.e. like hello world or whatever) from Nim backend to .dex, wow, that would be soooo immensely exciting! :D
edit: Of some other ideas, if you don’t share my aversion to Android Studio, a minimal hello-world grade .apk with a JNI Nim module call inside would be super immediately useful to me, as a model to try and reproduce. That’s the next step I’m planning after apksigner.
As to keyboard, stuff like this is sure interesting, had some thoughts about those too at some point :)
Sure I would be very interested! Even though I’m currently targeting computers mainly as that’s where I feel most at home, I’d like to target android devices as well.
I have a chat room set up for my keyboard discussions. Head over there and we can broaden the scope to nim on android as well.
https://discord.gg/8sPDxRa
Now that my zine work is wrapped up, I’ll be cleaning out and updating all my SBCs and likely spend tomorrow out in the city as the weather will be great for the first time this year.
This is so true. I spent this autumn in fluxbox, for exactly this reason. Really it does all the things that I like in modern systems, but so much more snappy. For exactly the same bloat reasons that we all swear over.
Well sundays are my day of so I try to do nothing mentally taxing or working. Today that is expressed by learning about LISP.
Yesterday I was working on input prediction based on ngrams that doesn’t occur on a word basis but rather on a symbol level. This adds a lot to memory requirements, but I feel that it can add some benefits. To exemplify it’s usefulness consider dialects of language and changed words due to puns. In general I’d say that doing the statistics on a symbol basis leads to a more beutiful and generalized interpretation of language. Also it get’s rid of the issue of thinking about which delimiters should be used.
In the end I’ll probably end up with some kind of hybrid giving weighted input from several engines.
Okay so I applaud the effort of turning these despicable consumption systems into production systems!
My idea is to approach it a little bit differently though. Not to rain on your parade or anything but why not simply use a regular notebook if this is the purpose.
So hear me out on this, I’m really aware that this is a longshot. Still there are no viable solutions to this, touch is basically two finger typing, whenever the voice recognition fails to recognize [ or * or { you’ll loose your flow whatever.
My idea is to scrap the keyboard structure as we now it and instead present the symbols dynamically using an efficient structure onscreen. This could be designed so that search gives us appropriate values from a Big-O notation point of view. So basically we are doing compression backwards.
I’ve worked some on this using single strokes and using a gamepad or whatever low key count input device. There is also the Dasher project that goes along similar lines.
I’m painfully aware that there’s an learning curve associated to this but then again what alternatives are there. Especially when VR is around the corner.
Am I crazy or should we try to invent some new paradigm of UI, to reclaim our devices as devices made for creativity instead of mind-numbing consumption devices?
Do you have any thoughts as to what that symbol representation would look like? I too think that especially with the ubiquity of touch interfaces (and especially potential VR interfaces in the future) it’s worth exploring alternate paradigms for input. So far it seems that either we haven’t come up with anything better for controlling the incredible power of computing than something that is basically a computer text terminal, or else if we have, these ideas have been snuffed out by the terminal in “Worse is Better” fashion.
Yes I have two angles of attack at the moment when it comes to creating streams of symbols. My own idea is based on a discrete categorization of the symbols sorted by frequency. Either as recursive grids or as trees, which more or less is the same when you think of it as graphs.
The second approach
I got some brilliant feedback from lobsters when I published my silly game. This was concerning the Dasher input method. Here we are dealing with the same fundamentals, N-signal input where N is low, feed it into a prediction model with compressing characteristics. The difference here is that he is taking the continuous approach and using arithmetic compression instead of a huffman encoding.
https://www.youtube.com/watch?v=ie9Se7FneXE
** What I am working on now **
At the moment I’m doing an implementation in nim which is supposed to span several platforms and to be as universal as possible. A lot of work has to be done to interface to existing program, create frequency profiles from text and so forth. While supporting several platforms. I think it’s essential to have a web demo that corresponds quite closely to the actual variant.
My current target is to create an editor loosely based on vim. With two input systems, one that handles text input as a stream and the other one handles control of the text. So given a game pad setup, the left stick might represent input of text/code and the right one would correspond to the “command mode” of VIM.
** Organisation Cooperation **
My dream is to set up some small group of people who are prepared to think outside of the box and set up a forum or discord server to cooperate on this!!
That does sound interesting! I’m certainly not an expert on the subject, but I do find it fascinating (probably related although more traditional: I’ve spent a lot of time building small mechanical keyboards for myself and customizing the keycaps in qmk.) I’d certainly enjoy looking into it further.
Lovely, I’ve set up a discord server just now as a first step of trying to organize the effort. Perhaps discord isn’t the ideal solution for organizing stuff like this.
HTML5 implementation of the Dasher input method. I’m using HTML canvas CSS and the nim language. The aim is to be able to have the same code to run on a low level API and to demo the same code on a webpage or even make some kind of online editor.
Thought it’d be a one day project, but turns out the coordinate system isn’t really Cartesian but rather hyperbolic.
Looks really cool! As this was made 8 years ago, have there been any further development of what I believe to be a rather fruitful area of investigation?
Trying to figure out the equations behind the hyperbolic space that constitutes the Dasher input method. Thought it’d be quick to spin together a demonstration in nim for an online js/HTML version but it’s a bit more advanced than I thought.
After digging some in the source code and finding the correct formula I tried to vectorize some drawings of a friend. Then my drifted and now it’s X-files marathon until I go to sleep.
I use something along the same likes, but my Makefile is a bit longer (145 lines) and I tend to use AWK instead of m4 (here for example my atom feed generator: https://zge.us.to/git/web-tools/file/bin/atom.awk.html). Then again, it generates my entire site, which includes a static git host, document/image gallery and file listing + some other pages.
Yeah I don’t really blame you for preferring awk to m4; the downside of m4 is that it doesn’t support iteration, so you have to use recursion instead for things like the list of all the posts, or for the feed: https://github.com/technomancy/technomancy.us/blob/master/list.m4 but other than a handful of lines it’s not so bad.
I like the idea of using a text subtitution system like M4 as a static site generator, but find M4 itself to be too unwieldy. I’ve been mulling the possibility of lips (or guile-lips) or maybe even dhall.
Do you have a synopsis for your thoughts on this? Its a fascinating thing that I know little about (other than what Joe Rogan has brought up on his show).
That it’s clearly a way to harass people and every programmer knows that you can’t just pick up programming to solve the problems in your life, especially if you’re under economical pressure and lack stability (like the people usually targeted by this sentence).
Also I tried to argument on how this reinforce a narrative that is detrimental to programmers and so programmers should try to fight it.
Maybe I’m not familiar with the context of the saying, but there’s almost no economic activity right now that is as high-paying, low-effort, and high-demand as some form of programming–especially web stuff.
What advice would be better to give to those people?
The problem is that the average programmer has it way worse than top programmers and the mainstream media think. And if you learn late in your life there are good chances your skill will place you in positions way below the average. There are many other factors I consider in the article that explain why a random person cannot just learn to code and go to SV and earn money. It’s not how it works, except in some libertarian wet dream.
Better advice? The one I give them is to first understand all the cons of starting a programming career, then judge by themselves. My problem is not that people with economical difficulties start to code,, my problem is with people selling it as a solution for everybody, without context and without a honest explanation of the industry.
I agree with your advice, but even the average programmer has leagues better employment opportunity right now and payment than someone in, say, the service sector. As a coworker of mine pointed out, we get to have soft hands.
Even getting paid a middle-of-the-road programmer salary (let’s say, 50-60K), is still 50% above the median salary for the US, not even factoring in that they’re doing better by leaving a stratum of low-paying, expendable jobs. Jobs that, incidentally, we all are trying to remove with software.
I totally agree with this and I would still advice a lot of people to try if they can. The problem is that most people can’t because the amount of time and energy necessary is not feasible if you have to work two jobs already or worse. And then it should be an informed decision: again, the cons of becoming a programmer are hugely under-exposed to university students and that’s a problem. Presenting the option as a safe and healthy alternative is irresponsible. it comes at a price and the price should be clear upfront. Is it better than working at Walmart for the rest of your life? Probably it is for many, not for all. But what if you live far away from a tech hub, in a country where programmers earn not so good salaries? Is it worth to leave family and friends and try your luck in the big city? Again, for some it’s reasonable, for others it’s not. The trolls are taking away the chance to decide and that’s a problem. They create a sense of guilt because you have an easy option in front of you and you’re not taking it.
Anyway thanks, this discussion is helping me a lot with the article.
So then the real problem is that they’re trapped in a situation where they can’t improve themselves because their economic situation is grinding them into the ground. Full stop, right? This isn’t about learning to code, it’s about having the leisure time necessary to grow and function as a healthy human being.
Obviously it is about that, but that’s a premise that many advocates of the status quo would refuse. In the article this is central and I try to explain it sticking to the specific example because if this is true for basically any kind of specialized labour, it’s doubly true for programming.
If it helps your thought process, another perspective on this:
A lot of folks view that there is certainly an element of personal choice in it, though. Computers have only come down in cost in the last few decades, the documentation and support networks have grown exponentially from what was around even ten years ago. It’s never been easier to get a website up or to start learning.
While there are a lot of people who are kept too ground down working several jobs and supporting families to learn a new trade, the folks being told to learn to code are nominally refugees from the Gawker-now-Gizmodo media empire. It’s kinda hard to accord them the same sympathy as, say, the cleaning lady or deliveryman or cop or whoever. They are, I’d wager, in fundamentally different situations and while it serves them to identify with that group they aren’t of it.
Further, given the amount that a lot of us have sacrificed to do programming, there is a natural lack of empathy for folks that don’t seem to be trying to learn (at the easiest time to do so, historically).
Yeah, I think feoh has gotten to the root cause of what you were describing. I meet a lot of people like that. You can substitute programming for all sorts of things. They still can’t do them due to the effects of the grind they’re in.
Then, there’s others with less of a grind who can actually learn stuff on the side. Most of them don’t since it’s more fun to have fun in down time than learn a new skill. These could in fact learn easier forms of coding or IT to improve their circumstances. Then, repeat the process in new circumstances. They don’t, though. They’ll usually keep doing what’s comfortable to them enjoying their downtime.
I agree with your points that they should know the risks of the career. That they could get stuck in certain IT roles or laid off earlier are big ones. Laid off for outsourcing, in-sourcing, or ageism in particular. Those affect the most people.
Honestly, I wouldn’t describe people who participate in harassment mobs as immature. They may be, but the fact that they repeat hateful messaging knowing it makes no sense isn’t primarily due to immaturity, it’s because it’s a highly effective strategy for achieving all manner of agendas in today’s world.
I’d love an explanation for how telling people to ‘learn to code’ is hateful, and if it is why is it not hateful for the media to have been writing articles like ‘Are you an unemployed coal miner? Learn to code!’.
The context is a 4chan campaign to harass laid off “journalists” that spent years telling rural working class people that they should ‘just learn to code’.
I hope you know that the “bullshit” you are referring to is satire. I mean it is bullshit of course, but the reason it is a recent trending meme has its roots:
It was originally used by journalists, who said laid off coal miners and other blue collar workers should just learn to code. When they were laid off as their opinion articles were not worth anymore for their employers they simply had the same stuff thrown at them by those who were victims of the bullshit earlier.
You can decide if this is harassment, and if throwing this crap on the poorer physical workers who lost their works was. I simply find it ironic when bullshit strikes back.
Yes I know all the story but now it’s been used unironically against worker by trolls whenever they want to make fun of workers, often together with “free market delivers” and other similar memes
Well, that is not nice. Harassment is never the solution. I have only heard reports of the initial slash-back against the Buzzfeed/Vice journalists, who in my opinion deserved some of it, though not continuous harassment, but a few days of reminder of the dark side of their previously published agenda.
I tend to avoid twitter, and only occasionally browse 4chan, where this “toxic” behavior is the standard onsite. This is why I have not noticed that this stuff is still going on…
you can’t just pick up programming to solve the problems in your life, especially if you’re under economical pressure and lack stability (like the people usually targeted by this sentence).
The people usually targeted by this sentences (by Buzzfeed journalists) were the ones targeting it back at those Buzzfeed journalists when they got laid off…
The whole narrative is BS, regardless of who is promoting it or why. I think there are many people pushing the same idea in good faith and that’s a problem in itself, but turning it in a weapon against workers makes it even more dangerous, in my opinion.
I decided not to publish it. It’s too unstructured and I felt like talking about too many subjects and to too many audiences. After a couple of reviews I decided to kill it for now.
Buzzfeed fired a whole lot of their journalists, many of whom had written lots about how coal miners and other rural Americans should just ‘learn to code’ and stop complaining about their livelihoods being destroyed by the necessary changes that need to be made to how we use resources due to climate change with no support provided at all. Telling them that they should stop complaining about losing their jobs as journalists and should just ‘learn to code’ is not ‘bullshit’ and nobody is seriously pushing it or suggesting that they should. The point is to make them realise how it feels to be told to give up your career path and ‘just learn to code lol’.
It’s not ‘ironic’. They weren’t ironically making people feel bad. They were intentionally making very nasty, vindictive and arrogant people feel bad by showing them how they made other people feel.
If you need to make someone feel bad to make them realise how they’re making others feel, then maybe it’s not nice, but neither is their behaviour that necessitated it.
Like it or loathe it, if you can’t understand the motivation behind the ‘learn to code’ meme then you lack empathy.
You misunderstand: petty revenge at journalists is not nice, regardless of what they may have said to others. The ones that Irene is referring to as using irony are the 4channers, not the journalists.
Revenge is never justified. Eye-for-an-eye, even if it’s just verbal, is the most disgusting form of justice, designed to appeal to my and your basest desires.
It’s possible to convey that without being petty, “how does that feel, huh, you like that punks, you got fired, huh, how does it feel, learn to code, losers!”
It’s mean and mean-spirited. It does not help. It’s petty verbal revenge.
I’ve been having arguments with my wife about this. Did not know the whole thing about alt-righters pushing this. I’ve seen in pushed in mainstream outlets. Can you share some links with examples of alt-righters? I’m generally curious, because like I said I’ve seen it pushed in other places as well.
I continue to be amazed by the hard work done by knowyourmeme.com and I’ve twice now found it a great resource to learn the basic timeline of different internet phenomena - first the origins of the “PC Master Race” meme, now this.
Plugging away on an experimental interface to our conferencing app, one that places the windows into an MDI-like interface. We bringing on some UX “experts”, so we’ll see what they think. It can get confusing for folks when their video windows are scattered about the desktop. Maybe this will help.
If you wanted to know what I worked on in a past life, check out this insteresting and pretty accurate article on Looking Glass Technology and Ultima Underworld, my last game dev project:
It’s pretty easy with Qt. Our app, a video conferencing app, has a main UI window and, when in a meeting, creates a window for each video feed (which can be up to 32 or more - honestly!). I just created a new mainwindow with an QMdiArea widget in it and then just add all the others windows as QMdiSubWindows instead of right on the root window. Works pretty nice and keeps things easier to manage. I may experiments with leaving the main UI window outside and just create the MdiWIndow to contain video feeds when you join a meeting as well.
Working on how to remote control a computer over http and websocket. Meant as an interface between custom proptypes built in HTML5 and js to cut down on development time.
Got really sidetracked by starting to do my own libjpeg to nim bindings but it’s been an enjoyable day as everything started to work just now.
Working on https://www.laarc.io/ People keep saying how eerily similar it feels to HN circa 2007.
There’s been an influx of new members seemingly out of nowhere each day. And they tend to be some of the best hackers I’ve met. JungleCat’s “scent map” pathfinding technique is particularly impressive: https://www.laarc.io/item?id=285
There are a bunch of easter eggs scattered throughout the site, which users seem to like. And setting up a discord server turned out to be super important for building the community. https://discord.gg/qaqkc9z
We’re gearing up for an actual Show Lobsters post. Emily has been one of our secret weapons; she’s like an assassin that targets items on a todo list. It’s scary watching her work. We have an iPhone app coming soon, powered by our firebase API (e.g. https://laarrc.firebaseio.com/v0/item/1.json?print=pretty)
The API is nearly identical to HN’s. https://github.com/HackerNews/API But we’ll be adding support for tags, which is one of N hundred things to do this weekend.
And personally, I find it motivating to deliver a high-quality production-grade site written in modern Arc: https://github.com/laarc/laarc
The world is starting to notice that writing webapps in React or Vue can end up being an order of magnitude more work. Elixir is doing some pretty wonderful work with realtime serverside re-rendering. Arc has had this since the very beginning. And you get some amazing features like thread-local variables.
You know how in Express you have to pass around req and res everywhere? In Arc you can just write (the-req*) to get the current request. Many functions have been rewritten to take advantage of this. For example, the authentication code is one of the simplest you’ll see anywhere: if you call (get-user) with no arguments and it returns nil, the user isn’t logged in. If (get-auth) returns nil, that means the user visited a link like /logout but it didn’t have the proper /logout?auth=<hash> code, so therefore the server should ignore the logout attempt. And so on.
But really, the most exciting part of laarc is the people. Everyone has so many neat personal projects, and everyone is so nice. It’s a spirit I’ll be embedding into the site’s soul.
Looks really cool. I’ve somehow gotten the idea that HN is inflated by people who are doing social media campaigning to get to the front page for advertisement. In more or less honest way. That’s what I like about lobsters it simply feels more authentic somehow.
Looks interesting, though I wish it would use larger default font sizes, 10 pt is pretty hard to read for the titles and have to zoom in to 125% to make it easier to read.
I’d be interested to see a side-by-side comparison of kitty to alacritty. In particular, I’ve been using alacritty at work for a while and while it’s barebones at the moment, it’s exceptionally fast (which is probably my core feature for terminal emulators). That said, kitty looks like a fine emulator.
I have a minor obsession with input latency and scroll jank. It seems to creep up everywhere and is hard to stamp out (Sublime Text is a shining counterexample). I noticed a bit of weird input latency issues when using Terminal.app (purely anecdotal), and haven’t seen the same thing since using alacritty. So that’s the need I have for a fast emulator, it enables a smooth input and output experience.
This is what kept me on Sublime Text for years, despite open source alternatives (Atom, VS Code and friends). I gave them all at least a week, but in the end the minor latency hiccups were a major distraction. A friend with similar sensitivity has told me that VS Code has gotten better lately, I would give it another go if I weren’t transitioning to Emacs instead.
I sometimes use the Gmail web client and, for some period of time, I would experience an odd buffering of my keystrokes and it would sometimes completely derail my train of thought. It’s the digital equivalent of a painful muscle spasm. Sometimes you ignore it and move on, but sometimes you stop and think “Did I do something wrong here? Is there something more generally broken, and I should fear or investigate it?”
Web-based applications are particularly bad, because often they don’t just buffer, but completely reorder my keystrokes. So I can’t just keep typing and wait for the page to catch up; I have to stop, otherwise I’m going to have to do an edit anyway.
I have to admit, I thought for certain this was going to be Yet Another JavaScript Terminal but it turns out it’s written in Python. Interesting.
Anyway I would have a hard time believing it’s faster than xfce4-terminal, xterm, or rxvt. It’s been a long time since I last benchmarked terminal emulators, maybe I smell a weekend project coming on.
I just did a few rough-and-ready benchmarks on my system. Compared to my daily driver (xfce4-terminal), kitty is a little under twice as fast, alacritty and rxvt are about three times as fast. If raw speed was my only concern, I would probably reach for rxvt-unicode since it’s a more mature project.
Alacritty is too bare-bones for me but I could be sold on kitty if I took the time to make it work/behave like xfce4-terminal.
I like xfce4-terminal, but it renders fonts completely wrong for me. It’s most noticeable when I run tmux and the solid lines are drawn with dashes. If I pick a font where the lines are solid, then certain letters look off. It’s a shame, because other vte-based terminals (e.g. gnome-terminal) tend to be much slower.
For me it’s the simple stuff that gets annoying when it’s slow. Tailing high-volume logs. less-ing/cat-ing large files. Long scrollbacks. Makes a difference to my day by just not being slow.
I don’t care that much about the speed it takes to cat a big file, but low latency is very nice and kitty is quite good at that. I cannot use libvte terminals anymore, they just seem so sluggish.
For one thing, my workflow involves cutting and pasting large blocks of text. If the terminal emulator can’t keep up, blocks of text can come through out of order etc, which can be a bad time for everyone involved.
I used alacritty for a while, then switched to kitty as I’d get these long page redraws when switching tmux windows—so kitty is at least better for me in that regard. Both have similar ease of configuration. I use tmux within both, so I don’t use kitty’s scrolling or tabs. The way I was using them, they were more or less the same.
I’m going to try alacritty again to see if it’s improved. I’d honestly use the default Terminal app if I could easily provide custom shortcuts (I bind keys to switching tmux panes, etc).
I came back to Alacritty on MacOS just the other day after trying it last maybe 6 months ago and finding it “not ready” in my head. It’s been significantly updated, there’s a DMG installer (and it’s in brew), a lot more polished overall and it works really well and really fast. No redraws in tmux switches. Weirded redraw artifiact while resizing main window, but snaps to fixed immediately you stop, and doesn’t bother me much. Using it as a full-time Terminal replacement right now, liking it so far, will see how it goes!
Good to know! I’ve installed it via brew now and double-checked my old config. My font (as in, not the default Menlo. I’m using a patched Roboto Mono) looks a bit too bold, so just gotta figure out what’s wrong there.
They’ve updated config files with additional info about aliasing and rendering fonts on Mac. So take a look at that if you are using your old config. It’s not a bad idea to start from scratch.
Cool, thanks for your input! I also use tmux, and I haven’t seen anything like what you described (I also don’t really use tmux panes, only tabs). I know there has been a longstanding vim + tmux + osx bug as well, but I haven’t used vim proper in a while.
Nah. It’s a method for using mouse instead of keyboard, and I’m quite comfortable typing. I’m more into methods for reducing mouse/touchpad use, so I find Vimium useful.
On the topic of unusual input methods, you might also like Eviacam which lets you control the mouse cursor with your head.
mm Vimium has been a great source of inspiration for me! I think there exists a fork that lets you control it with your left hand only. Basically I am trying to solve the same problem, but from a different angle. Instead of having the keyboard do all things, my idea is to limit the keyboard to half the size. No more back and forth.
Please head to the site and click subscribe if you want updates! I have some new things that I want to add.
Also I’m quite curious on what the audience is interested in. I have a thousand ideas but I suspect that what you guys are looking for is a fraction of those things. Without communication it’s so hard to figure out what people are looking for.
Personally I am looking for two things:
to be able to code from my coach
To be able to use my mouse for tweaking settings in developer tools and to type code with my left hand *
It was really interesting, but the resulting music is quite stressful tbh.
Sure was. Over at HN they had some interesting thoughts on how to make the input sound good as well.
Not a musician by any means, but implementing some kind of scale might sort that out.
For someone musically inclined I don’t suppose it’d be rocket science to implement that.
If anybody is interested I am currently working on something similar. However instead of midi input I am discerning the keys with the help of fast fourier transforms allowing for acoustic instruments as well. For single keys it works ok I think. I suppose the tricky part will be chords.
Anybody around here a musical genius?
Trying to work on a mouse replacement scheme, that’s sort of out there but I always wanted to do.
The premise is the following. Start out with the mousekiller, keynav (link below). That works by dividing the screen into four and then dividing and conquering until you reach your destination.
I’m not sure whether anybody seriously uses this but perhaps some of the tiling wm guys swears by it. If that’s the case please comment because this might be of interest!!
So my take is that if we throw in some simple image analysis into this we could find discrete blobs. So instead of having to select from width by height elements top, it could be boiled down to say 3000 or so discrete elements.
What I’m currently am looking at is using a FFT to get the frequencies from the display. The idea being that icons are not discernible by means of colors. However they will change pixels at a similar rate, compared to backgrounds.
This means that the system could operate without intrinsic knowledge about the UI system. Which might come in handy for say VNC sessions, games and whatnot.
All in all I’d like to think of it as an endeavor similar to pentadactyl/vimium/etc.
As far as FFT is concerned, I’m not sure if this is the best case. There might be other simpler more well suited algorithms that could be plugged in instead. What is needed in essence is a function that calculates an energy value for each pixel. Something along the line of what they are doing with seam carving, content aware resizing (which is an source of inspiration).
https://www.semicomplete.com/projects/keynav/ https://en.wikipedia.org/wiki/Seam_carving
I’ve done something similar in the experiment pile as an alternative to mouse acceleration and accessibility support. It worked well enough to put it in the “clean up, integrate, writeup” queue. Instead of FFT and blob detection though, I went with gaussian downsample + sobel operator, then raytrace along the mouse cursor vector, and at each intersection over a threshold, walk the edge and look for a loop, if found, warp to the centre.
Interesting would you happen to have a demonstration of it somewhere. Would be fun to see it in action.
I see how a sobel operator would make sense even in my case. And where thinking of something similar. I made room for implementing different filters for detection to see what works.
I feel that for some cases, say in some future setup where you want to interface legacy systems this kind of thing could be extremely useful. Since I feel that in the next big paradigm mice might not be available. Say if you have a fancy VR setup and want to access legacy mouse driven interfaces.
Nothing online yet, holding it as part of an article. The better one (and for fancy eye-tracker as well though) is eye trackers. In VR they are more than enough precision wise, but even desktop tobii- ones are about the same level of precision (~0.5-1cm) as this tactic, but cheaper and more robust.
interesting when is the article due?
On Friday eve I pushed my .dex assembler library in Nim to a state where I’m happy to say the first minimal PoC is finished: it appears I can correctly assemble a few .dex samples from the web now.
To be able to assemble/link/package a proper .apk file (still without JVM and Android Studio), I believe the next thing I need to do would be to port apksigner from Java to Nim.
But first, I want to do some initial spring cleaning at my place. There’s way too much of it for me to be able to complete it over the weekend, but I must at least start :) Also meeting family and some friends.
Oh a fellow nim:er, for how long have you been coding in it?
Why do you want a nim .dex assembler, is it just for fun or do you plan on using it elsewhere?
Hi! Since just a few months ago really. How about you? :)
As to the assembler… it’s mostly that I want to code some apps for my phone, but I kinda hate the heavy weight of the whole Android Studio + JDK environment (at least when considering doing this in my free time). And then I don’t even like Java that much. I tried writing some stuff in Yeti once; I liked the language quite much, but then the complexity and slowness of the multi-stage compilation process/feedback loop became even more unbearable. So, now that I found Nim, and it feels good to me for those kinds of hobby projects, I wanted to try pursuing this alternative path I considered for quite a long time, and see how far can I get with it. I explored PWAs in the meantime, but I found them too limited and too slow for me. Similar with React Native. And all in all, .apk and .dex are just file formats, and Android is kinda open, so I imagined there should be some specs and examples somewhere… and indeed found some, they looked approachable, so, you know, I pondered some name I’d like for the project for a while, then git init, nimble init, vim, and here we are, yet another hobby project, like I don’t have enough unfinished ones out there already ;P
Same here. Thing is that I want to create a keyboard replacement, so the requirements are that it has to be fairly resource efficient and make use of low level systems features. At the same time I want to demo it with HTML technologies. So I’ve been diving into it for some months.
Do you think your project could be a part in making nim available for the android platform somehow.
That would be extremely interesting.
Lol, hahaha, yeah, sure, that’s certainly the “moonshot” best-case scenario, you’ve seen perfectly clear through my deception :D I actually have a few various ideas how this could be useful however, trying to think about minimizing effort so that it could be doable with my limited time. Note (I’ve read somewhere recently) that it seems Nim can already be used to build the native part of JNI apps, so in a way it’s apparently already “available for Android somehow”! :) But I believe it still requires Android Studio, so I’m pondering maybe trying to replace this part of the equation with a wrapper built purely with Nim? Though a thought of this maybe becoming a full-blown backend for Nim surely burns at the back of my mind. Still, I’m trying to plot my paths such that intermediate steps could also be useful to some people, in case I get sidetracked at some point. That said, I did take a quick glance recently, and at first sight, the Nim backends seem to look surprisingly approachable. But I must resist the overwhelming temptation, and focus on an incremental approach :)
Hm, by the way, but would you be maybe interested in collaborating in some way? Just asking, don’t feel pressured or whatever. But if you e.g. were, say, curious to explore what it might take to emit the first “black triangle” (i.e. like hello world or whatever) from Nim backend to .dex, wow, that would be soooo immensely exciting! :D
edit: Of some other ideas, if you don’t share my aversion to Android Studio, a minimal hello-world grade .apk with a JNI Nim module call inside would be super immediately useful to me, as a model to try and reproduce. That’s the next step I’m planning after apksigner.
As to keyboard, stuff like this is sure interesting, had some thoughts about those too at some point :)
Sure I would be very interested! Even though I’m currently targeting computers mainly as that’s where I feel most at home, I’d like to target android devices as well.
I have a chat room set up for my keyboard discussions. Head over there and we can broaden the scope to nim on android as well. https://discord.gg/8sPDxRa
Work on several patches for utils at work, probably put in some time on development of my C compiler. Maybe read a new book.
Which language are you writing the compiler in?
Cool! What is the reason for writing a C compiler?
Now that my zine work is wrapped up, I’ll be cleaning out and updating all my SBCs and likely spend tomorrow out in the city as the weather will be great for the first time this year.
zine work what is that? Is it zines like the papers or what?
Yeah, I’m working on a paper zine for https://n-o-d-e.net and have been for a few months. There will be a digital version too :)
Ah looks interesting, I’ll check it out!
This is so true. I spent this autumn in fluxbox, for exactly this reason. Really it does all the things that I like in modern systems, but so much more snappy. For exactly the same bloat reasons that we all swear over.
Well sundays are my day of so I try to do nothing mentally taxing or working. Today that is expressed by learning about LISP.
Yesterday I was working on input prediction based on ngrams that doesn’t occur on a word basis but rather on a symbol level. This adds a lot to memory requirements, but I feel that it can add some benefits. To exemplify it’s usefulness consider dialects of language and changed words due to puns. In general I’d say that doing the statistics on a symbol basis leads to a more beutiful and generalized interpretation of language. Also it get’s rid of the issue of thinking about which delimiters should be used.
In the end I’ll probably end up with some kind of hybrid giving weighted input from several engines.
Okay so I applaud the effort of turning these despicable consumption systems into production systems!
My idea is to approach it a little bit differently though. Not to rain on your parade or anything but why not simply use a regular notebook if this is the purpose.
So hear me out on this, I’m really aware that this is a longshot. Still there are no viable solutions to this, touch is basically two finger typing, whenever the voice recognition fails to recognize [ or * or { you’ll loose your flow whatever.
My idea is to scrap the keyboard structure as we now it and instead present the symbols dynamically using an efficient structure onscreen. This could be designed so that search gives us appropriate values from a Big-O notation point of view. So basically we are doing compression backwards.
I’ve worked some on this using single strokes and using a gamepad or whatever low key count input device. There is also the Dasher project that goes along similar lines.
I’m painfully aware that there’s an learning curve associated to this but then again what alternatives are there. Especially when VR is around the corner.
Am I crazy or should we try to invent some new paradigm of UI, to reclaim our devices as devices made for creativity instead of mind-numbing consumption devices?
Do you have any thoughts as to what that symbol representation would look like? I too think that especially with the ubiquity of touch interfaces (and especially potential VR interfaces in the future) it’s worth exploring alternate paradigms for input. So far it seems that either we haven’t come up with anything better for controlling the incredible power of computing than something that is basically a computer text terminal, or else if we have, these ideas have been snuffed out by the terminal in “Worse is Better” fashion.
Yes I have two angles of attack at the moment when it comes to creating streams of symbols. My own idea is based on a discrete categorization of the symbols sorted by frequency. Either as recursive grids or as trees, which more or less is the same when you think of it as graphs.
The first one implemented as a game
http://sigma.eruditenow.com/theory.html http://sigma.eruditenow.com/index.html
I also have a series of videos on the subject over at bitchute: [introduction] https://www.bitchute.com/video/FklGhgQGbuDk/ [comparation between classic and trees] https://www.bitchute.com/video/FklGhgQGbuDk/
The second approach I got some brilliant feedback from lobsters when I published my silly game. This was concerning the Dasher input method. Here we are dealing with the same fundamentals, N-signal input where N is low, feed it into a prediction model with compressing characteristics. The difference here is that he is taking the continuous approach and using arithmetic compression instead of a huffman encoding. https://www.youtube.com/watch?v=ie9Se7FneXE
** What I am working on now ** At the moment I’m doing an implementation in nim which is supposed to span several platforms and to be as universal as possible. A lot of work has to be done to interface to existing program, create frequency profiles from text and so forth. While supporting several platforms. I think it’s essential to have a web demo that corresponds quite closely to the actual variant.
My current target is to create an editor loosely based on vim. With two input systems, one that handles text input as a stream and the other one handles control of the text. So given a game pad setup, the left stick might represent input of text/code and the right one would correspond to the “command mode” of VIM.
** Organisation Cooperation ** My dream is to set up some small group of people who are prepared to think outside of the box and set up a forum or discord server to cooperate on this!!
Inteested?
That does sound interesting! I’m certainly not an expert on the subject, but I do find it fascinating (probably related although more traditional: I’ve spent a lot of time building small mechanical keyboards for myself and customizing the keycaps in qmk.) I’d certainly enjoy looking into it further.
Lovely, I’ve set up a discord server just now as a first step of trying to organize the effort. Perhaps discord isn’t the ideal solution for organizing stuff like this.
https://discord.gg/8sPDxRa
HTML5 implementation of the Dasher input method. I’m using HTML canvas CSS and the nim language. The aim is to be able to have the same code to run on a low level API and to demo the same code on a webpage or even make some kind of online editor.
Thought it’d be a one day project, but turns out the coordinate system isn’t really Cartesian but rather hyperbolic.
Looks really cool! As this was made 8 years ago, have there been any further development of what I believe to be a rather fruitful area of investigation?
I dont know. Most of this research is on toy languages for quick prototyping. I’ll try to keep an eye out, though.
Trying to figure out the equations behind the hyperbolic space that constitutes the Dasher input method. Thought it’d be quick to spin together a demonstration in nim for an online js/HTML version but it’s a bit more advanced than I thought.
After digging some in the source code and finding the correct formula I tried to vectorize some drawings of a friend. Then my drifted and now it’s X-files marathon until I go to sleep.
GNU M4, rsync, and a 12-line makefile: https://p.hagelb.org/Makefile.html
no regrets
Not even a little?
https://p.hagelb.org/i-dont-believe-so.gif
I had no idea Kim Cattrall was in Star Trek 🤯
It’s an even one, so worth a watch. IMO ranks right behind Wrath of Khan, which is still the best film.
Truly amazing that it could be made so minimalistic. Well done.
I use something along the same likes, but my Makefile is a bit longer (145 lines) and I tend to use AWK instead of m4 (here for example my atom feed generator: https://zge.us.to/git/web-tools/file/bin/atom.awk.html). Then again, it generates my entire site, which includes a static git host, document/image gallery and file listing + some other pages.
Sadly I don’t blog that much.
Yeah I don’t really blame you for preferring awk to m4; the downside of m4 is that it doesn’t support iteration, so you have to use recursion instead for things like the list of all the posts, or for the feed: https://github.com/technomancy/technomancy.us/blob/master/list.m4 but other than a handful of lines it’s not so bad.
hm I feel like stealing that off of you, where can I see the result?
Sure; it’s used to publish everything on https://technomancy.us
https://github.com/technomancy/technomancy.us
I like the idea of using a text subtitution system like M4 as a static site generator, but find M4 itself to be too unwieldy. I’ve been mulling the possibility of lips (or guile-lips) or maybe even dhall.
I’ve been learning Arabic for the past 8 months or so, and I’m finally at the point where I can start transcribing songs and translating them!
Cool do you have any useful tips that you might share
Writing a blog post on the “Learn 2 Code” bullshit that alt-righters have been pushing recently
Edit:well, apparently I’m working on the italian version of lobste.rs
Do you have a synopsis for your thoughts on this? Its a fascinating thing that I know little about (other than what Joe Rogan has brought up on his show).
That it’s clearly a way to harass people and every programmer knows that you can’t just pick up programming to solve the problems in your life, especially if you’re under economical pressure and lack stability (like the people usually targeted by this sentence).
Also I tried to argument on how this reinforce a narrative that is detrimental to programmers and so programmers should try to fight it.
Maybe I’m not familiar with the context of the saying, but there’s almost no economic activity right now that is as high-paying, low-effort, and high-demand as some form of programming–especially web stuff.
What advice would be better to give to those people?
The problem is that the average programmer has it way worse than top programmers and the mainstream media think. And if you learn late in your life there are good chances your skill will place you in positions way below the average. There are many other factors I consider in the article that explain why a random person cannot just learn to code and go to SV and earn money. It’s not how it works, except in some libertarian wet dream.
Better advice? The one I give them is to first understand all the cons of starting a programming career, then judge by themselves. My problem is not that people with economical difficulties start to code,, my problem is with people selling it as a solution for everybody, without context and without a honest explanation of the industry.
I agree with your advice, but even the average programmer has leagues better employment opportunity right now and payment than someone in, say, the service sector. As a coworker of mine pointed out, we get to have soft hands.
Even getting paid a middle-of-the-road programmer salary (let’s say, 50-60K), is still 50% above the median salary for the US, not even factoring in that they’re doing better by leaving a stratum of low-paying, expendable jobs. Jobs that, incidentally, we all are trying to remove with software.
I totally agree with this and I would still advice a lot of people to try if they can. The problem is that most people can’t because the amount of time and energy necessary is not feasible if you have to work two jobs already or worse. And then it should be an informed decision: again, the cons of becoming a programmer are hugely under-exposed to university students and that’s a problem. Presenting the option as a safe and healthy alternative is irresponsible. it comes at a price and the price should be clear upfront. Is it better than working at Walmart for the rest of your life? Probably it is for many, not for all. But what if you live far away from a tech hub, in a country where programmers earn not so good salaries? Is it worth to leave family and friends and try your luck in the big city? Again, for some it’s reasonable, for others it’s not. The trolls are taking away the chance to decide and that’s a problem. They create a sense of guilt because you have an easy option in front of you and you’re not taking it.
Anyway thanks, this discussion is helping me a lot with the article.
So then the real problem is that they’re trapped in a situation where they can’t improve themselves because their economic situation is grinding them into the ground. Full stop, right? This isn’t about learning to code, it’s about having the leisure time necessary to grow and function as a healthy human being.
Obviously it is about that, but that’s a premise that many advocates of the status quo would refuse. In the article this is central and I try to explain it sticking to the specific example because if this is true for basically any kind of specialized labour, it’s doubly true for programming.
If it helps your thought process, another perspective on this:
A lot of folks view that there is certainly an element of personal choice in it, though. Computers have only come down in cost in the last few decades, the documentation and support networks have grown exponentially from what was around even ten years ago. It’s never been easier to get a website up or to start learning.
While there are a lot of people who are kept too ground down working several jobs and supporting families to learn a new trade, the folks being told to learn to code are nominally refugees from the Gawker-now-Gizmodo media empire. It’s kinda hard to accord them the same sympathy as, say, the cleaning lady or deliveryman or cop or whoever. They are, I’d wager, in fundamentally different situations and while it serves them to identify with that group they aren’t of it.
Further, given the amount that a lot of us have sacrificed to do programming, there is a natural lack of empathy for folks that don’t seem to be trying to learn (at the easiest time to do so, historically).
Yeah, I think feoh has gotten to the root cause of what you were describing. I meet a lot of people like that. You can substitute programming for all sorts of things. They still can’t do them due to the effects of the grind they’re in.
Then, there’s others with less of a grind who can actually learn stuff on the side. Most of them don’t since it’s more fun to have fun in down time than learn a new skill. These could in fact learn easier forms of coding or IT to improve their circumstances. Then, repeat the process in new circumstances. They don’t, though. They’ll usually keep doing what’s comfortable to them enjoying their downtime.
I agree with your points that they should know the risks of the career. That they could get stuck in certain IT roles or laid off earlier are big ones. Laid off for outsourcing, in-sourcing, or ageism in particular. Those affect the most people.
The context is a 4chan campaign to harass laid off journalists.
Hilariously, I’ve been on receiving end of it from some confused immature soul on Twitter.
Honestly, I wouldn’t describe people who participate in harassment mobs as immature. They may be, but the fact that they repeat hateful messaging knowing it makes no sense isn’t primarily due to immaturity, it’s because it’s a highly effective strategy for achieving all manner of agendas in today’s world.
I’d love an explanation for how telling people to ‘learn to code’ is hateful, and if it is why is it not hateful for the media to have been writing articles like ‘Are you an unemployed coal miner? Learn to code!’.
I don’t recall expressing an opinion on that, as I’m not sufficiently informed about it. I was speaking in general.
The context is a 4chan campaign to harass laid off “journalists” that spent years telling rural working class people that they should ‘just learn to code’.
say hi to /pol/
I don’t use it, but I have some friends that use it. Most of them claim to be using it ‘ironically’. I’m not sure I believe them.
I hope you know that the “bullshit” you are referring to is satire. I mean it is bullshit of course, but the reason it is a recent trending meme has its roots:
It was originally used by journalists, who said laid off coal miners and other blue collar workers should just learn to code. When they were laid off as their opinion articles were not worth anymore for their employers they simply had the same stuff thrown at them by those who were victims of the bullshit earlier.
You can decide if this is harassment, and if throwing this crap on the poorer physical workers who lost their works was. I simply find it ironic when bullshit strikes back.
Yes I know all the story but now it’s been used unironically against worker by trolls whenever they want to make fun of workers, often together with “free market delivers” and other similar memes
Well, that is not nice. Harassment is never the solution. I have only heard reports of the initial slash-back against the Buzzfeed/Vice journalists, who in my opinion deserved some of it, though not continuous harassment, but a few days of reminder of the dark side of their previously published agenda.
I tend to avoid twitter, and only occasionally browse 4chan, where this “toxic” behavior is the standard onsite. This is why I have not noticed that this stuff is still going on…
Yeah it spread to Facebook too
well yeah, that ridiculous narrative comes from journalists which is why people are using it against them and why it’s funny
The people usually targeted by this sentences (by Buzzfeed journalists) were the ones targeting it back at those Buzzfeed journalists when they got laid off…
I know, I addressed all the different sources of this narrative, including governmental initiatives
If you know that why do you call it BS?
The whole narrative is BS, regardless of who is promoting it or why. I think there are many people pushing the same idea in good faith and that’s a problem in itself, but turning it in a weapon against workers makes it even more dangerous, in my opinion.
A thanks for clearing that out!
I for one am looking forward to the blog post!
I decided not to publish it. It’s too unstructured and I felt like talking about too many subjects and to too many audiences. After a couple of reviews I decided to kill it for now.
Fair enough. I hope you find the time and energy to revisit it later.
Thanks for promoting some interesting discussions.
You know that that’s just a joke, right?
Buzzfeed fired a whole lot of their journalists, many of whom had written lots about how coal miners and other rural Americans should just ‘learn to code’ and stop complaining about their livelihoods being destroyed by the necessary changes that need to be made to how we use resources due to climate change with no support provided at all. Telling them that they should stop complaining about losing their jobs as journalists and should just ‘learn to code’ is not ‘bullshit’ and nobody is seriously pushing it or suggesting that they should. The point is to make them realise how it feels to be told to give up your career path and ‘just learn to code lol’.
I would say that perhaps focusing on making other people feel bad is not a nice thing to be doing, regardless of how ironic it might be.
It’s not ‘ironic’. They weren’t ironically making people feel bad. They were intentionally making very nasty, vindictive and arrogant people feel bad by showing them how they made other people feel.
If you need to make someone feel bad to make them realise how they’re making others feel, then maybe it’s not nice, but neither is their behaviour that necessitated it.
Like it or loathe it, if you can’t understand the motivation behind the ‘learn to code’ meme then you lack empathy.
You misunderstand: petty revenge at journalists is not nice, regardless of what they may have said to others. The ones that Irene is referring to as using irony are the 4channers, not the journalists.
Revenge is never justified. Eye-for-an-eye, even if it’s just verbal, is the most disgusting form of justice, designed to appeal to my and your basest desires.
I didn’t say it was about revenge. Please make sure to carefully read comments before responding to them in a condescending way.
The point is not revenge, it is to make people understand how they have made others feel.
It’s possible to convey that without being petty, “how does that feel, huh, you like that punks, you got fired, huh, how does it feel, learn to code, losers!”
It’s mean and mean-spirited. It does not help. It’s petty verbal revenge.
If they’d just said that nobody would have listened to them and we wouldn’t be discussing the issue right now. Saying it doesn’t help is just wrong.
I’ve been having arguments with my wife about this. Did not know the whole thing about alt-righters pushing this. I’ve seen in pushed in mainstream outlets. Can you share some links with examples of alt-righters? I’m generally curious, because like I said I’ve seen it pushed in other places as well.
This is when it took traction: https://knowyourmeme.com/memes/learn-to-code
Now it’s used to troll on a regular basis.
I continue to be amazed by the hard work done by knowyourmeme.com and I’ve twice now found it a great resource to learn the basic timeline of different internet phenomena - first the origins of the “PC Master Race” meme, now this.
Plugging away on an experimental interface to our conferencing app, one that places the windows into an MDI-like interface. We bringing on some UX “experts”, so we’ll see what they think. It can get confusing for folks when their video windows are scattered about the desktop. Maybe this will help.
If you wanted to know what I worked on in a past life, check out this insteresting and pretty accurate article on Looking Glass Technology and Ultima Underworld, my last game dev project:
https://www.filfre.net/2019/01/life-off-the-grid-part-1-making-ultima-underworld
Interesting and impressive! Would you be able to demonstrate what you mean with an MDI-like interface or the actual project?
It’s pretty easy with Qt. Our app, a video conferencing app, has a main UI window and, when in a meeting, creates a window for each video feed (which can be up to 32 or more - honestly!). I just created a new mainwindow with an QMdiArea widget in it and then just add all the others windows as QMdiSubWindows instead of right on the root window. Works pretty nice and keeps things easier to manage. I may experiments with leaving the main UI window outside and just create the MdiWIndow to contain video feeds when you join a meeting as well.
Working on how to remote control a computer over http and websocket. Meant as an interface between custom proptypes built in HTML5 and js to cut down on development time.
Got really sidetracked by starting to do my own libjpeg to nim bindings but it’s been an enjoyable day as everything started to work just now.
Working on https://www.laarc.io/ People keep saying how eerily similar it feels to HN circa 2007.
There’s been an influx of new members seemingly out of nowhere each day. And they tend to be some of the best hackers I’ve met. JungleCat’s “scent map” pathfinding technique is particularly impressive: https://www.laarc.io/item?id=285
There are a bunch of easter eggs scattered throughout the site, which users seem to like. And setting up a discord server turned out to be super important for building the community. https://discord.gg/qaqkc9z
We’re gearing up for an actual Show Lobsters post. Emily has been one of our secret weapons; she’s like an assassin that targets items on a todo list. It’s scary watching her work. We have an iPhone app coming soon, powered by our firebase API (e.g. https://laarrc.firebaseio.com/v0/item/1.json?print=pretty)
screenshot
The API is nearly identical to HN’s. https://github.com/HackerNews/API But we’ll be adding support for tags, which is one of N hundred things to do this weekend.
Very cool! What do you see as some notable differences between laarc and Lobste.rs?
I think the communities will always compliment one another. The main difference can be illustrated by example:
https://www.laarc.io/l/obscure
https://www.laarc.io/l/chess
https://www.laarc.io/l/startups
https://www.laarc.io/l/happiness
https://www.laarc.io/l/hn
https://www.laarc.io/l/templeos
And personally, I find it motivating to deliver a high-quality production-grade site written in modern Arc: https://github.com/laarc/laarc
The world is starting to notice that writing webapps in React or Vue can end up being an order of magnitude more work. Elixir is doing some pretty wonderful work with realtime serverside re-rendering. Arc has had this since the very beginning. And you get some amazing features like thread-local variables.
You know how in Express you have to pass around
req
andres
everywhere? In Arc you can just write(the-req*)
to get the current request. Many functions have been rewritten to take advantage of this. For example, the authentication code is one of the simplest you’ll see anywhere: if you call(get-user)
with no arguments and it returns nil, the user isn’t logged in. If(get-auth)
returns nil, that means the user visited a link like/logout
but it didn’t have the proper/logout?auth=<hash>
code, so therefore the server should ignore the logout attempt. And so on.But really, the most exciting part of laarc is the people. Everyone has so many neat personal projects, and everyone is so nice. It’s a spirit I’ll be embedding into the site’s soul.
Looks really cool. I’ve somehow gotten the idea that HN is inflated by people who are doing social media campaigning to get to the front page for advertisement. In more or less honest way. That’s what I like about lobsters it simply feels more authentic somehow.
Looks interesting, though I wish it would use larger default font sizes, 10 pt is pretty hard to read for the titles and have to zoom in to 125% to make it easier to read.
I’d be interested to see a side-by-side comparison of
kitty
toalacritty
. In particular, I’ve been usingalacritty
at work for a while and while it’s barebones at the moment, it’s exceptionally fast (which is probably my core feature for terminal emulators). That said,kitty
looks like a fine emulator.Honest question: what need do you have for a fast terminal emulator?
I have a minor obsession with input latency and scroll jank. It seems to creep up everywhere and is hard to stamp out (Sublime Text is a shining counterexample). I noticed a bit of weird input latency issues when using Terminal.app (purely anecdotal), and haven’t seen the same thing since using alacritty. So that’s the need I have for a fast emulator, it enables a smooth input and output experience.
I am sensitive to the same.
This is what kept me on Sublime Text for years, despite open source alternatives (Atom, VS Code and friends). I gave them all at least a week, but in the end the minor latency hiccups were a major distraction. A friend with similar sensitivity has told me that VS Code has gotten better lately, I would give it another go if I weren’t transitioning to Emacs instead.
I sometimes use the Gmail web client and, for some period of time, I would experience an odd buffering of my keystrokes and it would sometimes completely derail my train of thought. It’s the digital equivalent of a painful muscle spasm. Sometimes you ignore it and move on, but sometimes you stop and think “Did I do something wrong here? Is there something more generally broken, and I should fear or investigate it?”
Web-based applications are particularly bad, because often they don’t just buffer, but completely reorder my keystrokes. So I can’t just keep typing and wait for the page to catch up; I have to stop, otherwise I’m going to have to do an edit anyway.
I have to admit, I thought for certain this was going to be Yet Another JavaScript Terminal but it turns out it’s written in Python. Interesting.
Anyway I would have a hard time believing it’s faster than xfce4-terminal, xterm, or rxvt. It’s been a long time since I last benchmarked terminal emulators, maybe I smell a weekend project coming on.
kitty is written is about half C, half Python, Alacritty is written in Rust.
There were some benchmarks done for the recent Alacritty release that added scrollback, which include kitty, urxvt, termite, and st. https://jwilm.io/blog/alacritty-lands-scrollback/#benchmarks
I just did a few rough-and-ready benchmarks on my system. Compared to my daily driver (xfce4-terminal), kitty is a little under twice as fast, alacritty and rxvt are about three times as fast. If raw speed was my only concern, I would probably reach for rxvt-unicode since it’s a more mature project.
Alacritty is too bare-bones for me but I could be sold on kitty if I took the time to make it work/behave like xfce4-terminal.
I like xfce4-terminal, but it renders fonts completely wrong for me. It’s most noticeable when I run tmux and the solid lines are drawn with dashes. If I pick a font where the lines are solid, then certain letters look off. It’s a shame, because other vte-based terminals (e.g. gnome-terminal) tend to be much slower.
For me it’s the simple stuff that gets annoying when it’s slow. Tailing high-volume logs. less-ing/cat-ing large files. Long scrollbacks. Makes a difference to my day by just not being slow.
I don’t care that much about the speed it takes to cat a big file, but low latency is very nice and kitty is quite good at that. I cannot use libvte terminals anymore, they just seem so sluggish.
For one thing, my workflow involves cutting and pasting large blocks of text. If the terminal emulator can’t keep up, blocks of text can come through out of order etc, which can be a bad time for everyone involved.
I’m on macOS.
I used alacritty for a while, then switched to kitty as I’d get these long page redraws when switching tmux windows—so kitty is at least better for me in that regard. Both have similar ease of configuration. I use tmux within both, so I don’t use kitty’s scrolling or tabs. The way I was using them, they were more or less the same.
I’m going to try alacritty again to see if it’s improved. I’d honestly use the default Terminal app if I could easily provide custom shortcuts (I bind keys to switching tmux panes, etc).
I came back to Alacritty on MacOS just the other day after trying it last maybe 6 months ago and finding it “not ready” in my head. It’s been significantly updated, there’s a DMG installer (and it’s in brew), a lot more polished overall and it works really well and really fast. No redraws in tmux switches. Weirded redraw artifiact while resizing main window, but snaps to fixed immediately you stop, and doesn’t bother me much. Using it as a full-time Terminal replacement right now, liking it so far, will see how it goes!
Good to know! I’ve installed it via brew now and double-checked my old config. My font (as in, not the default Menlo. I’m using a patched Roboto Mono) looks a bit too bold, so just gotta figure out what’s wrong there.
They’ve updated config files with additional info about aliasing and rendering fonts on Mac. So take a look at that if you are using your old config. It’s not a bad idea to start from scratch.
Thanks for the tip! I did start from scratch and moved over changes bit by bit, but I’ll have to check the new macOS specific lines.
Cool, thanks for your input! I also use tmux, and I haven’t seen anything like what you described (I also don’t really use tmux panes, only tabs). I know there has been a longstanding vim + tmux + osx bug as well, but I haven’t used vim proper in a while.
I think that’s my exact problem (turns out I’m even subscribed to the issue haha). I use neovim so I think it is/was applicable to both
do any of those really measure up when benchmarked.
I remember doing some writing to stdout and it alacritty turned out to be slower than say gnome-terminal or whatever.
Might’ve been that there was a bug with my intel graphics card though, don’t remember to well.
Really cool! I’m doing research on low n-count. Might be a good fit.
https://www.bitchute.com/video/FklGhgQGbuDk/
Reminds me of Dasher.
Thank you so much for this! I’ve been looking around quite a bit for previous work. But haven’t been able to find very much.
Do you use Dasher?
Nah. It’s a method for using mouse instead of keyboard, and I’m quite comfortable typing. I’m more into methods for reducing mouse/touchpad use, so I find Vimium useful.
On the topic of unusual input methods, you might also like Eviacam which lets you control the mouse cursor with your head.
mm Vimium has been a great source of inspiration for me! I think there exists a fork that lets you control it with your left hand only. Basically I am trying to solve the same problem, but from a different angle. Instead of having the keyboard do all things, my idea is to limit the keyboard to half the size. No more back and forth.
Please head to the site and click subscribe if you want updates! I have some new things that I want to add.
Also I’m quite curious on what the audience is interested in. I have a thousand ideas but I suspect that what you guys are looking for is a fraction of those things. Without communication it’s so hard to figure out what people are looking for.
Personally I am looking for two things:
*) without that endless back and forth
Chorded keyboard as in the mother of all demos: https://www.youtube.com/watch?v=t5WUBweOZA4