#with some custom vim stuff
Explore tagged Tumblr posts
Text
I've been playing around with making FHS themes for my linux with pywal so here are a few that I liked :)
Credits:
Eakwynn by @loopscereal
Villains by @valtoiddd
Owynn by @threepoint14art
Fred and Freddy by @chocottang
Meg by @10hourshift
#fnafhs#fhs#I wanted to do a few more but pywal's color choosing system means that sometimes the palettes don't come out too good#even if the art looks lovely#for example I had a goldami fanart from choco but the color picked colors were pretty meh#also it didn't pick any greens which like. defeats the purpose of it being a goldami palette#you can adjust individual pywal palettes if you want#but I made it so I can multiple wallpaper options with hotkeys#which would break if I did that. or I'd have to do a separate script for that one palette#which I'm not sure how to do#btw I'm using arch linux with bspwm and sxhkd for my hotkeys. alacritty for my terminals. then polybar and pywal#with some custom vim stuff
21 notes
·
View notes
Note
Should I learn emacs I've been coding in nano
@perl-official
I always recommend emacs. But depending on your use case you might want to learn something else first.
If you hop between different servers a lot and can't expect to have access to your favourite editor on there, I recommend learning the basics of vi/vim since that is preinstalled pretty much everywhere. Also, most bigger IDEs you might use in the future have a setting or extension to use vim-keybinds.
If you just want to program on your own machine, I recommend trying out a few different text-editors and then decide on one.
To learn emacs, I recommend using the built in tutorial. You can access it using C-h t (thats CTRL-h followed by t) while beeing in emacs.
To learn vim, you can use the vimtutor. I think it is automatically installed with vim on most distros, but may have to be installed separately on some. Also neovim/nvim is way better in term of extensibillity to regular vim
Other Editors you could try:
- VS Codium (Visual Studio Code fork that removed most Microsoft Stuff)
- helix - a Vim like Editor
- zed - way too fucused on AI features for my taste but I heard it has some other nice features
If you want some more infos on why emacs is great: here two semi serious posts I made in the past:
Pingin some people who also might have something to say:
@vim-official @helix-editor @emacs-evil-mode
25 notes
·
View notes
Text
SWTOR OC Headcanons
Just posting some headcanons about my Fem!Trooper, Vim "Wildfi're" because why not. If I can think of anymore, I'll probably just reblog with any additions.
She is very organized. This is thanks to a blend of her parents and surviving post Sacking of Corsuscant when her home had been destroyed. In the Thunderclap or her apartment, things have their place and are kept there until used. (In her defense, it does prove useful in emergencies when they have to quickly grab stuff and go.)
Because her mother is a Mandalorian, she's learned cultures, customs, and their language. Very, very few know she speaks and reads fluent Mando'a, and she'll use it on missions (listening in on conversations but playing dumb, or using it later when working with Mandalorians to gain as allies.) She does teach the rest of Havoc, starting with words or phrases if ever they need it.
On sunny planets like Tatooine, she has to wear a lot of sunscreen due to her fair complexion. But she hates the feeling of her clothes/armor touching her sunscreen-covered skin. But it's this or her face getting so toasted that it's as red as her hair.
She isn't Force-sensitive, but she doesn't deny it. After all, despite how good she is at her job, there is no way she is able to survive the things in her life without some sort of... "help". It's not that she believes in destiny, but something is going on. She likes to talk to Yuun about this.
She is resourceful. Again, because surviving the aftermath of the Sacking of Coruscant, she learned how to use with what she had and how to look for what she needs in her surroundings.
Aric Jorgan, aka Vim's eventual spouse, barely tolerates Hinaal (Vim's mother) to say the least. Hinaal is an exiled Mandalorian champion who still holds their views. Aric being a cathar, well, you could understand why he doesn't particularly like her. Thankfully Vim rejects most of those views and sides with Jorgan.
She'll take Elara for "girls' night out" on shore leave after they've rested and had time to "recharge." Sometimes they'll have other friends join them. Not too much to overwhelm Elara, but enough that she can make genuine connections with others and not just her squad.
#swtor oc#swtor#swtor female trooper#swtor trooper#aric jorgan#elara dorne#yuun#headcanon#oc headcanons#star wars#mandalorian
3 notes
·
View notes
Text
new intro post because i hate the old one woah here we go
hii my name is Wolfram, but i also go by Ted, Rat, Will or Dell
I use he/him and ve/vim, and am a proud aroace+agender goober
dni if you're a HP fan, think being a natzi is cool (in this household we celebrate punch a natzi day (all year holiday baby)), are a terf
this blog is mostly sfw, if i do reblog some goofy stuff I'll tag it as "#nsfw" (i won't reblog stuff that's too bad tho because sexual stuff personally makes me uncomfortable)
i also have side accounts!:
my art blog: @wolfram-but-art
and a blog for spamming about blorbos: @wolfram-blorbos
stuff I'm into (please talk to me about it):
-JRWI (riptide)
-TF2 (!)
-Metro series (2033-'35)
feel free to blow up my inbox woth notes btw, I don't really care. (sending asks, mass liking, reblogging, following me, messaging me. all welcome mate, come talk to me)
if you're a new account reading this, make sure to customize your blog. PLEASE make yourself look like a real person don't force me to block you
12 notes
·
View notes
Text
Pseudo-historical project about 1912 unit record equipment computation aka the "Symbolic Analyst Processor" full stack!
(above pictures emulate the looks of what this tech stack documentation and actual use may look like, still very early in the process though)
It is still coming together by my head as I write infodump notes and research various aspects of the whole time, (including the WIMP & MERN/MEAN stack) but yk, things are coming together nicely to give some milestone project mid-way between my current phase in life and the next where I go develop a fully alternative INTJ lively stack of tools. Explanations, history dives, lively reaction studies and a couple more content suggestions related to it are on the way.
Behold, the infodumps
"Top-bottom and back up workflow" 1910 / 1912 Unit Record Equipment Tabulator Computation "Bundle" Project (Pflaumen & Utalics' SymbolicAnalystProcessor)
Information Processing Language / LISP 1.5 / Bel, A-BASIC / DIBOL, Spreadsheets, Cellular Automaton, COS-310, magnetic tape storage too, TECO / VIM, Assembly, Wirebox, Tabulator, Alphanumeric Interpreter, Printer, RTTY device, Data Recording, Bulk Data Processing Indexed Cards, 60-64 entries Deque, 4K Direct-use RAM, 12K * 24 storage devices, Phonebook, Timeclock, DateTime Calendar, Programmable, Statistics, Demographics, Voting, Ledger, Journal, Logging, Rolodex, 12 Generic-use Registers & 4 Special Registers, Catalog, ~16 Keys Pad, Customized Hexadecimal Numeric Representation for "MachineCode" Hexdumps, 4*12 bits per page of data, Macros, Paracosm, may be useful for Military & Civilian Uses, Electrical Energy (and possibly incorporates some mechanical energy too), Nouns & Verbs, "Vector" XY plotter, Lambda Calculus / Panini Grammar / Universal Turing Machine Thesis, Rotors, Ural TriodeVaccumTube "Mainframe", Interactive-Use, Hypertext Interactive Video Terminal, Memex, Modem, Electric + Radio Telegraphy, Document-processing, Word-processing, Orange Plasma Touchscreen Terminal, Time-sharing, Cash Register, Bank, Automatic Teller Machine, Vending Machine, Oracle, Typewriter / Selectric, IBM 701, IBM 1440, IBM 403, IBM System/360, OpenPOWER, F#, IBM Tellum, MUD, TextWorld, solo text-adventures, Email, AIX, z/OS, Linux for IBM mainframes, Symbolic Processing System, Autocoder, modular, IBM Lotus Suite, interface with KDE or CDE, paper handling equipment, Addventure, 12-bit basic data unit as designated word, Distributed Interactive System, VeneraFS (cladogram Parade+DolDoc), GNU Hurd / MINIX3-style Microkernel, either permissive FLOSS license or public domain waiver, extensive documentation, printed illustrated booklets, music-playback, emulator / compiler / bytecode / interpreter, analog media-friendly, mostly for didactic tinkering educational uses, multilingual reconfigurable programming, HTML+CSS, Markdown, Argdown, DMA, hardware-friendly, software development environment for direct-access programmers and aesthetic designers, sub-version control system like Git, various hardware & software implementations, museum / observatory Toymaker story, constructed languages / imaginative paracosm influences around the immersive in-world lore of the "16^12" pseudo-historical setting…
Back to the point
The list is far from exhaustive or finished, as life is so much more than meets the eye. But this should be a good start to remind myself what I am working towards, a full revamp of the last ~120 years of history with much attention and care put into making it as satisfying to me as possible, despite the very probable scenario where people take the ideas and incorporate only some of such "modules" in their own workflows. Which is fine but not taking the whole package (and only specific modules) is eventually gonna be a major learning experience for me considering the reason I revamp it all beyond control freak stuff is literally to provide less exclusive / less invasive tools that anyone can learn and customize despite being very... idiosyncratic yk.
Still welcoming suggestions and constructive criticism for such big time, I hope those textual infodumps I do every so often don't bother you too much... Cya soon!
5 notes
·
View notes
Text
Neovim - A journey in the wacky world of text editing
Lately I've been sick of my old Vim config. I set it up close to decade ago and have been putting off updating the config since before a certain virus found it's way to all of our doorsteps. So many of the plugins I've been using are ancient and flat out don't work with Vim8 or just kind of suck.
For years, it worked fine for the perl, bash and odd rakudo scripts I wrote. I remember spending hours looking around for plugins that helped me solved issues but sadly, many aren't cutting it anymore. Thinking seriously about spending a dozen or more hours doing that again, I said,
"Screw it, I keep seeing people talk about Neovim online, what's all the buzz about? It sucked the last time I used it. What's changed?"
The last time I tried out Neovim was around 2015/2016 and it was pretty much the exact same as Vim with one caveat - many of the plugins I wanted didn't work with it well and the darn thing constantly crashed. It's been enough time, right? Probably everything is fixed?
I opened up my Vim one last time, wrote a quick note in my config file which simply read the date, and I finally said goodbye to Vim. I had a whole world of possibilities to explore!
Neovim: Endless possibilities
So where to start... Vim is known for having a configuration file which uses Vim's own language; aptly named Vimscript. Vimscript works fine but you'll only ever use it for Vim and nothing else. Some of the issues I've had with Vimscript were that it just feels as old as it looks. Want to make your own custom additions to a plugin? You're going to mentally have to go back to the days where everybody was on IRC and Neocities was the default for personal webpages. It's a language that definitely feels it's age.
Neovim in comparison has come up with a solution to this and allows you to use Vimscript but there's an interesting twist. Lua. The infamous programming language that everybody has heard about from their favourite games but never looked into. I have some fond memories of opening gmod and joining a server then waiting a solid 40 minutes for everything to load in. In that progress screen, I saw many mysterious .lua filenames as I cursed about Aussie internet being so garbage. There were so many mysteries behind what those scripts could have been but peak gamer laziness got the better of most of me, and likely many of you reading (for non-millenials, it's Roblox that's likely associated with lua).
Gaming tangent aside, Neovim allows you to configure your text editor with a fully fledged programming language. I've seen old vim scripts do some incredible things but boy, was I in for a world of overwhelming complexity, confusion, dopamine and just pure euphoria.
Looking through the world through the lua looking glass
I know, I know, there's plenty more stuff to Neovim besides it using Lua so I'm quickly mentioning that the Neovim API has been wonderful. It's insanely well documented and mix that together with Lua, you can probably write doom in the thing... including making it work as multiplayer since the editor has the capability of tcp/ip. This exists to allow you to remotely control you editor from elsewhere, perhaps from your phone?
So what did I do when I first installed Neovim? Well I obviously went to the website page and immediately didn't understand a single thing. Everything was foreign and I had 0 idea about Lua. I went to my old and trusted vimscript instincts to get some basics up and running such as indenting, line numbers, column highlighting and so on.
Once I had something that felt vaguely familiar, I went and took a look at how to implement these things in lua. It was surprisingly... easy. Take the following couple of lines of Vimscript (from my vimrc) and compare it to my nvim/init.lua.
.vimrc set smartindent set cursorcolumn set cursorline
.config/nvim/init.lua local options = { smartindent = true, cursorcolumn = true, cursorline = true } for j, k in pairs(options) do vim.opt[j] = k end
As you can see, the lua version is a bit longer but effectively everything you're used to in vim is easily accessible via vim.opt.. I am lazy and put all of the options into a loop to prepend all of them.
You also have the option of vim.cmd('command') if you want to just want to copy and paste your old configurations in. The looping trick also works for vim.cmd.
Lastly, on this post, I will say that there is vim.g for things you're previously use let g:<action> on in old vim.
I may post more as I have interesting things setup with LSP, linters/formatters/code actions and more.
1 note
·
View note
Text
This time round trying emacs is different because I'm using doom (at the brilliant recommendation of one of my partners, mentioned above), which is kind of like one of the neovim distributions but for emacs. Good defaults that match what a 25 year vim veteran wants, enough customizability to fit to what I need. Like any massively complex piece of software, it's taken a lot of getting used to, and there's always more to learn. The doom docs say that learning emacs is an adventure, and I agree.
org mode is cool! There are some plugins that simulate it in (neo)vim of course, but nothing really manages to match org. The more I learn about org, the more I love it--it is always the marquee feature which gets me playing with emacs every time I've wanted to try it. Of course, the most basic features for outlining are state of the art, even among commercial outliners like omnioutliner, everyone knows that. But it also supports cool things like tables with integrated calculator support and exports to every format you can think of and and and. org's manual is hundreds of pages and it can do so, so much. And it's just one package!
Continuing from the above, neovim can't have a plugin that does everything org mode does, for a variety of reasons. It's too mature and has too many people working on it for a few loosely-associated plugin writers to be able to accomplish the same thing. Beyond this, even neovim just doesn't have the same extensibility that emacs does. Most of neovim is still written in C with a thin layer of lua for extensions, whereas the emacs philosophy is a small core in C and the rest in elisp--a lot like atom or, more recently, visual studio code--but using a real language, of course, and not JS.
evil mode is a far better approximation of vim than I was expecting. Just about every other vi mode falters and has bugs / missing features. I've not run into any such limitations or bugs with evil, again probably due to its popularity compared to the vi modes in those other tools, which are often an afterthought (or just removed / dropped entirely, like in the new repl for python 3.13).
The emacs philosophy is as it was 30 years ago when I first tried learning it: it still expects you to open the editor when logging in and never close it. As such it has better tools for managing lots of open buffers (I particularly like ibuffer, it mostly approximates vim's bufexplorer plugin, but it's missing a few things from vim or I don't know about them yet; will be looking at the manual).
There's seemingly a package for everything, and often a few different ones for the same thing. The "emacs is my operating system" mantra makes a lot of sense when viewed from this angle. Lots of things have good documentation, too, and of course, as I said above, so much more is possible in emacs than neovim.
doom's out of the box LSP support seems nicer than neovim's. I'm sure I could get similar results with configuring neovim, perhaps with more plugins or config, but things just feel more robust right from the start. I still need more time to evaluate this, as I've spent the least amount of time editing code. Mostly I've been focusing on editing documents with org mode and the occasional dabbling with magit for doing git stuff. magit is quite nice and very mature; I know it'll work quite well for managing code repos once I'm more comfortable with emacs as a code editor. I have lots of custom keybindings for neovim's LSP support that I'll need to relearn if I want to use emacs as my code editor.
One criticism I do have is that none of the emacs terminal emulators I've tried work well with vi keybindings in my shell; when I press esc to enter normal mode in the shell, the buffer for the terminal emulator goes into evil's normal mode. There may be a way to fix it, but I've not looked into it yet.
Am I going to switch? I don't know. I'm giving it an honest try, a more honest try than I have in the past, and having someone to ask questions is proving absolutely critical. I can't answer this question right now. Maybe? I cannot say how helpful evil has been with this. Modal editing is how my brain works and I don't think I'd be able to learn non-modal editing.
Given how @neovim-official hates me (see here) I have started learning @emacs-unofficial , using @doom-official and hence @emacs-evil-mode.
(this is not entirely a shitpost, one of my partners has been showing me around, largely for org mode but I've always been curious. Back when I got my start with Unix/Linux in the late 90s on a shell provider, emacs was the first editor I tried, but it was so slow to start back then that I switched to vim. How things would've been different for me if computers were faster when I started!)
#another long post from rust-official that took several days to put together#I make one of three post on this blog:#shitposts#hornyposts#long and detailed technical posts that probably go into far more detail than prev expects or wants#this is already over 750 words and I could talk about so many more things#like spellchecking and major/minor modes and the doom distribution per se and what it offers and
46 notes
·
View notes
Text
- y’know, i do kinda prefer this to the NUKA-COLA ads i’ve seen about the place. a little less overtly sexualised.
- there’s gotta be some kinda story about all the TEDDY BEARS posed in ridiculous ways around the wasteland. someday i have to meet the maniac doing this.
- VIM do a glowing drink too!
- ok, it looks like VIM might be less of a pepsi allegory and more of a small time local thing.
- interestingly, i haven’t actually seen the slew of extremely concerning, we-are-secretly-doing-fucked-up-science-experiments-on-our-customers stuff that i’ve come to expect from a place like this. the stuff on this TERMINAL just seems to be a suspiciously normal guided tour script. i don’t trust it.
- [the OSHA INSPECTOR loved that!] [suspiciously...]
#honestly the funniest possible thing that could happen right now would be for this to be the one osha-compliant place in the world#but i Do Not Trust Like That#i have hope but hope is not the same thing as faith :/#FALLOUT 4: THE RESURRECTION OF OSHA#fallout 4
6 notes
·
View notes
Text
The SKRUB Character Sheet Tutorial by Max B.
The following will be using a digital character sheet made by our very own Mod Strat, an explanation by the aforementioned Mod Max, and a post by I, Mod Bucket! So long as we’re namedropping our great people of the Dev Team, here’s a fun fact! Regardless of this being the Spooky Month, the Mods are actually all already cryptids. Mod SKRUBLORD is naturally some sort of God-Tiered individual, Mod Jerry is not of this dimension, Mod Strat is literally a living Excel spreadsheet, Mod Max is currently possesing a pair of headphones, Mod Skorx is some description of ghoul, I am a minor deity (guess of what), and Mod Beebz is the anime girl that lives with us and eventually romances one of us in the upcoming Unofficial SKRUB Dating Sim. And now: Tutorial. -Mod Bucket first off, open this https://docs.google.com/spreadsheets/d/1HEsYJcrAiFQuaWLCXqPBElzsBVSyeT2Gs_1z3HRLso4/edit?usp=sharing blank sheet template up and make a copy of it. There's a lot of stuff here, but a bunch of it is automatic, and I'll walk you through it step by step. start on the self sheet. 1. Basic info here's where you put your character name, chumhandle, arc number (if the GP wishes to have one), player name, and hex code. Server, Client, and Sprite get filled in during the game, so don't worry about it yet. The next box is for your land quest. Quests may be revealed to you by the GP before or during the game. If during, just put your title under "dwells the" and fill in the rest later. You can also put in your symbol if you have one.
2. Bio(graphy) most of this is straightforward, put down who lives in your house with you, where your house is, blood caste or social clique, and gender (not necessarily the same as sex). Interests can be whatever you want, but be sure to have at least 6 of them for a later step. In the space on the bottom you can put in a quote that sums up your character's personality.
3. Traits This is Skrub's equivalent to base stats. They describe not your physical skills, but your personality. Here's a rundown: PUL: charisma, coolness, attractiveness VIM: fighting spirit, aggression IMG: creativity, ability to think up new ideas ADR: mental quickness SAG: wisdom, attentiveness PLK: determination, ability to stay positive in the face of hardship The right column is where you put in the base numbers, the left column is the bonus (which is calculated automatically). Start by raising 5 different traits by 1. Then raise 4 by 1. Then 3, then 2, then 1. At the end of it, you should have a total of 15 points among them, with no traits higher than 5. Some potential distributions are 5/4/3/2/1/0, 4/4/2/2/1/1, 3/3/3/3/0, 4/3/3/3/2.
4. Talents these are the common skill checks you'll be making outside (and sometimes inside) of combat. I won't give a rundown for each, but treat it like a word game: if any definition of the word is viable for a situation, you can roll the talent for it. A good example is that roast is both used for cooking and making fun of people. Ignore the interests for now. Of the talents, raise 13 of them by a single point. Then raise another 4 by 1 (can be the same as first volley or different). You should have 17 points distributed across talents, which can be 17 with a value of 1; 7 with 1 and 4 with 2, or anywhere in between. Now, for interests. Each of them is associated with a trait. Take 6 of the interests you made earlier and assign them to their closest-related traits here. These are your custom skills that you can roll throughout the game.
5. Echeladder you can customize the names of each rung in accordance to your character beforehand, or wait to name them until the game so you can name them according to quest.
that's it for the self sheet for now! click the tab next to it to go to the body sheet. 6. Tendencies these are mostly used in-combat, but most of them have an out of combat use as well. They all start at 1, and then you choose another 6 to raise by another 1. You may have noticed that next to the traits table, there's tendencies listed in pairs that correspond to each trait. As traits increase throughout the game, their tendencies rise as well. When a trait reaches a bonus of 2 or higher, pick one of the two traits to raise as well (not applicable during creation as you can't exceed a bonus of 1)
7. Bio(logy) very straightforward, put your age, sex, species, and dreaming moon. sn# is only applicable to robots or other creatures that have serial numbers.
8. Form Schema upload a picture of your character! you can use sheet magic to post an image, or just paste in the URL in the bottom and let it take care of itself.
you'll notice other tables as well, but these are all updated throughout the game please turn to the tab "grist cache/invenstory" 9. Wishes and Triggers: these are things your character does or doesn't want to happen. The rules for how these work are explained in section 3 of the rulebook, but for now, just know you should include a handful of these for flavor. The magnitude of all your triggers must be equal to the magnitude for all your wishes or else the sheet will be mad at you.
and now for the most tedious part, please turn to tab "portfolio". 10. Techniques: the list of techniques is found in section 6 of the rulebook. All players start with three basic techniques (aggrieve, accede, abscond), and the others increase along with your tendencies (if you have a 2 in tempo, you know tier 1 and 2 tempotech). Copy/paste all valid techniques here so you don't have to refer back to the rulebook.
11. Strife Tab: almost all of this is all handled automatically. You'll notice there's a weapon card in the side; That’s in a different sheet. In the box labelled "sleeve", you can select from your list of techniques. Only techniques in your sleeve can be used during battle, and they can be traded out outside of combat. deep breath And that’s it! -Mod Max
#Homestuck#MSPA#MS Paint Adventures#SKRUB#TTRPG#Tabletop roleplaying games#SBURB#SBURB tutorial#Character sheet#SBURB character sheet#TW: SKRUBLORD mention#Mod Strat#Mod Max#Love Development: The SKRUB Dating Sim#Mod Bucket
156 notes
·
View notes
Text
GSoC logs (June 5 –July 11)
July 5
DS Exam - 9:30AM.
Alternatives - If build not fixed by 8:30AM.
Reclone and commit all changes to new branch.
Get preview component done
Send the demo to mentors and then touch proto file.
Recloned. In the new clone, I made new changes. Everything works.
Turns out any write operation in the proto file is wrecking stuff. I navigated to the proto file in vscode and simply saved. This causes all the errors again.
Some import errors even though proto syntax are perfectly fine. Hmmm. protoc-gen-go: program not found or is not executable
I tried making the proto file executable with chmod +x. Still same issue. Hmmm.
That was stupid. Proto files aren’t supposed to be executable! -_- Where do I get these stupid ideas.
The error is actually referring to protoc-gen-go file. Saying that protoc-gen-go is not found or not executable. Not the proto file
I’m moving on to completing the preview component to send the demo before 7pm.
Preview component
Ipynb html. Axios get and render the htmlstring from response data in the iframe. Nop, v-html.
Serve html file from the http server for now.Wait, that's not possible.
Okay, maybe I should just use hello api for now. Since both request and response objects have string type properties.
This is embarrassing.
Okay, whatever.
Just fix this and look into it,
Okay, so I can’t represent an html string just like that as in python. With `` ..
Okay `` will do.
I’m starting to like golang. It looks ridiculous but also easy to understand? What’s going on?
July 6
Leads & Tries.
Try Samuel’s suggestion -
“Do you have protoc on your path?
sometimes VScode installs its own version of some tools on a custom $PATH - it could as well be that some extension is not properly initialized “
Interesting - I tried git diff on the proto file and this happens just by vscode saving it.
old mode 100644 new mode 100755
https://unix.stackexchange.com/a/450488
Changed back to 0644 and still the same issue in vscode.
Stupid girl, you just made the protofile executable yesterday and forgot to change it back. -_-
Read about makefile. Do as said. Annotations.proto forward slash path. ?? wtf?
Set gopath right! Permanently. !!! Okay, done. No need to set it everytime now. Hopefully.
Desperate attempts -
Edit proto file in atom. (Prepare to reclone ;_;)
Trying the same in vim ()
Text editor.
Okay, so nothing editor or ide specific.
Trying to change paths
Gopath was /home/anaswaratrajan/go .. changed it to /usr/local/go/bin
New error.
GO111MODULE=off go get -v github.com/golang/protobuf/protoc-gen-go github.com/golang/protobuf (download) package github.com/golang/protobuf/protoc-gen-go: mkdir /usr/local/go/bin/src: permission denied make: *** [Makefile:164: /usr/local/go/bin/bin/protoc-gen-go] Error 1
https://github.com/golang/go/issues/27187
sudo chown -R $USER: $HOME
Doesn’t feel right. But I just want this to get done. ;_;
The problem could be that I have multiple go distributions. After this is done, I need to clean this shit this weekend.
Okay, done chown. I own this shit!!! AAAa
Still permission denied! Shit. /usr/local/go not /usr/local/go/bin
Okay, changed it, but go env GOPATH echoing giving warning that GOROOT and GOPATH are same.
So from what I’ve read, gopath is the workspace, and goroot is the place where go is installed. Our makefile is trying to install and use the modules in GOPATH. Ie go dir in home. Okay, so my GOPATH was right before.
Final tries
* Follow the error trails. * Find out what exactly is happening when I save this file. 1. Okay, incase they don’t work out. Try to send the html string instead of “Hello ” string without changing proto file. 2. Since all ipynb files can have same css, try and send only the html elements. And do the css separately in frontend. 3. Stop Ctrl+Saving for no reason! Great, now I have to reclone ;_; and start over. 4. Okay, I was able to send a sample html string with the response. Without changin the proto file. 5. Here’s what I’m gonna do. 6. Send sample html string from hello service and render in the preview component. Pass the json string as name. Hahaha. Please, explain why you had to do the same. 7. I did exactly as above. I feel like an imposter now. Screw it. 8. Alright, I have my bigbang hyungs to support me. 9. I’m gonna embed python scripts by tonight. Update: that was overoptimistic. 10. So I have the nbconvert python script to generate basic html strings. 11. I should also remove those comments in the html. 12. So we’re using the less performance option since we don’t need much memory in the first place. Using python c api.
July 7
Learned one or 2 things about embedding python. https://github.com/ardanlabs/python-go/tree/master/py-in-mem
So I need python3.7. Bc go-python3 only supports python3.7. But there’s a workaround given. So I should try that
Tries
Go-python3 , python 3.8, workaround go get github.com/christian-korneck/go-python3 But a bunch of errors occurred.
Python 3.7 install
C-like usage from golang - low level stuff
https://blog.filippo.io/building-python-modules-with-go-1-5/ goodread. But that’s not what I need.
Let’s look at Ardan’s lab way.
https://www.ardanlabs.com/blog/2020/09/using-python-memory.html
This is a bit more challenging but more understandable.
This is the way.
I should start with this right after fixing the make issue.
Back to build fixing
Do as samuel suggested. - no luck.
What I know so far. The issue is rooted with golang or protobuf or sth related. Since the issue is there for all the text editors including vim.
I found sth weird -Which go => /usr/local/go/bin/goWhen it gives /usr/local/bin/go to this dude https://stackoverflow.com/a/67419012/13580063
Okay, not so weird.
The interview went okay. They use photogenometry to generate those 3d maps out of their drone imagery. Their products sound interesting. They need frontend engineers to work on their platform. The interface currently looks almost like google maps. But 3d. Cool. I actually used the phrase.. “..I’m still in my 20s.. Don’t wanna die.. So can’t move to Bengalore anytime soon”
Not photogenometry. Photogrammetry. Also used by some old mars rovers. Wait, no it was sth else. I remember Shreyansh mentioning it. I wonder what all they’re planning for the dragonfly.
Focus. It’s been some days with this issue, you should get help.
Asked around a bunch of people on discord. No luck.
July 8
Let’s dig in.
Tries
1. Reinstall golang#2. https://stackoverflow.com/a/67419012/13580063 ? Nop.#3. See protoc installation details. Read more about protoc, protobugs
https://developers.google.com/protocol-buffers/docs/reference/go-generated#4. Read more about golang ecosystem - 30m and see if **which go **path is weird. 3. Also found this https://github.com/owncloud/ocis-hello/issues/62 Nop. 4. Let’s go with the error trails. 5. Wait, did I just graduate today. Oh no. Just like that. 6. Okay, grind.
Make generate is giving this.
GO111MODULE=off go get -v github.com/golang/protobuf/protoc-gen-go GO111MODULE=on go get -v github.com/micro/protoc-gen-micro/v2 GO111MODULE=off go get -v github.com/webhippie/protoc-gen-microweb GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2 protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --go_out=pkg/proto/v0 hello.proto protoc-gen-go: program not found or is not executable Please specify a program using absolute path or make sure the program is available in your PATH system variable --go_out: protoc-gen-go: Plugin failed with status code 1. make: *** [Makefile:176: pkg/proto/v0/hello.pb.go] Error 1
Then I try echo $GOPATH and It’s empty. go env GOPATH is right
So I set the GOPATH
export GOROOT=/usr/local/go export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT:$GOPATH:$GOBIN
Now, I get this
GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2 protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --go_out=pkg/proto/v0 hello.proto protoc-gen-go: invalid Go import path "proto" for "hello.proto" The import path must contain at least one forward slash ('/') character. See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information. --go_out: protoc-gen-go: Plugin failed with status code 1. make: *** [Makefile:176: pkg/proto/v0/hello.pb.go] Error 1
Did this https://github.com/techschool/pcbook-go/issues/3#issuecomment-821860413 and the one below and started getting this```
GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2 protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --go_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --micro_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --microweb_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --swagger_out=logtostderr=true:pkg/proto/v0 hello.proto protoc-gen-swagger: program not found or is not executable Please specify a program using absolute path or make sure the program is available in your PATH system variable --swagger_out: protoc-gen-swagger: Plugin failed with status code 1. make: *** [Makefile:194: pkg/proto/v0/hello.swagger.json] Error 1
July 9
Now trying to read this from the error https://developers.google.com/protocol-buffers/docs/reference/go-generated#package
option go_package = "github.com/anaswaratrajan/ocis-jupyter/pkg/proto/v0;proto";
Tried this, new issue
GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2 protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --go_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --micro_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --microweb_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --swagger_out=logtostderr=true:pkg/proto/v0 hello.proto protoc-gen-swagger: program not found or is not executable Please specify a program using absolute path or make sure the program is available in your PATH system variable --swagger_out: protoc-gen-swagger: Plugin failed with status code 1. make: *** [Makefile:194: pkg/proto/v0/hello.swagger.json] Error 1
Okay, so proto-gen-swagger is not in gopath as expected. So this isn’t working.
$(GOPATH)/bin/protoc-gen-swagger: GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2
Instead of protoc-gen-swagger, there’s protoc-gen-openapiv2. So I replace protoc-gen-swagger from last line in the makefile to the executable in the path.https://grpc-ecosystem.github.io/grpc-gateway/docs/development/grpc-gateway_v2_migration_guide/
Turns out they rename protoc-gen-swagger to protoc-gen-openapiv2
Oooo.. I just found out, option go_package = "github.com/anaswaratrajan/ocis-jupyter/pkg/proto/v0;proto";
This just made things weird. New directory github.com/anaswa... inside proto/v0/
So go_package path is messed up.
Just replacing swagger binary names in makefile lets you generate the proto files at github.com/anas… dir
Let’s try fixing the go_package path and then try to generate the annotations.proto and the openapiv2 files (the grpc gateway files)
Wait, you don't generate them.
option go_package = "./;proto";
This is the right way.
So yea, I’m able to generate the go-code now. But make is still failing and I should sleep now.
July 11
Ownclouders already tried to work on it. But for some reason, they didn’t make the changes. Why?
Look into this. Why they didn’t continue doing this.
https://github.com/owncloud/ocis-hello/issues/91
So what exactly is micro-web service? This protoc-gen-microweb is a protoc generator for micro web services. And it's generating this hello.pb.web.go
What just happened? New error/ Make generate gives
`GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2 go generate github.com/anaswaratrajan/ocis-jupyter/pkg/assets panic: No files found goroutine 1 [running]: main.main() /home/anaswaratrajan/go/pkg/mod/github.com/!unno!ted/fileb0x[@v1](https://tmblr.co/mkYynE1Axr-EFCSIQIAtheA).1.4/main.go:101 +0x2765 exit status 2 pkg/assets/assets.go:12: running "go": exit status 1 make: *** [Makefile:83: generate] Error 1
Read more about the protoc generators used here.
0 notes
Text
GSoC logs (June 5 –July 11)
July 5
Reclone and commit all changes to new branch.
Get preview component done
Send the demo to mentors and then touch proto file.
Recloned. In the new clone, I made new changes. Everything works.
Turns out any write operation in the proto file is wrecking stuff. I navigated to the proto file in vscode and simply saved. This causes all the errors again.
Some import errors even though proto syntax are perfectly fine. Hmmm. protoc-gen-go: program not found or is not executable
I tried making the proto file executable with chmod +x. Still same issue.
Proto files aren’t supposed to be executable
The error is actually referring to protoc-gen-go. Saying that protoc-gen-go is not found or not executable. Not the proto file.
Moving on to completing the preview component.
Preview component
Ipynb html. Axios get and render the htmlstring from response data in the iframe. Nop, v-html.
Serve html file from the http server for now. Wait, that's not possible.
Okay, maybe I should just use hello api for now. Since both request and response objects have string type properties.
July 6
Leads & Tries.
Try Samuel’s suggestion -
“Do you have protoc on your path?
sometimes VScode installs its own version of some tools on a custom $PATH - it could as well be that some extension is not properly initialized “
Interesting - I tried git diff on the proto file and this happens just by vscode saving it.
old mode 100644 new mode 100755
https://unix.stackexchange.com/a/450488
Changed back to 0644 and still the same issue in vscode.
I just forgot I made the protofile executable yesterday and forgot to change it back. Wasted like an hour on it.
Read about makefile. Do as said. Annotations.proto forward slash path. ??
Set gopath Permanently.
Edit proto file in atom. (Prepare to reclone ;_;)
Trying the same in vim ()
Text editor.
Okay, so the issue isn't editor or ide specific.
Trying to change paths
Gopath was /$HOME/go .. changed it to /usr/local/go/bin
New error.
GO111MODULE=off go get -v github.com/golang/protobuf/protoc-gen-go github.com/golang/protobuf (download) package github.com/golang/protobuf/protoc-gen-go: mkdir /usr/local/go/bin/src: permission denied make: *** [Makefile:164: /usr/local/go/bin/bin/protoc-gen-go] Error 1
https://github.com/golang/go/issues/27187
sudo chown -R $USER: $HOME
Doesn’t feel right.
The problem could be that I have multiple go distributions. After this is done, I need to clean this shit this weekend.
Still permission denied
$GOPATH was supposed to be /usr/local/go not /usr/local/go/bin
Okay, changed it, but go env GOPATH is giving warning that GOROOT and GOPATH are same.
So from what I’ve read, gopath is the workspace (where the libraries we need for the project are installed), and goroot is the place where go is installed(Home to the go itself). Our makefile is trying to install and use the modules in GOPATH. Okay, so my GOPATH was right before.
Final tries
Follow the error trails.
Find out what exactly is happening when I save this file.
Okay, incase they don’t work out. Try to send the html string instead of “Hello ” string without changing proto file.
Since all ipynb files can have same css, try and send only the html elements. And do the css separately in frontend.
Okay, I was able to send a sample html string with the response with the same api. Since response message type was string itself..
Rendered the HTMLString in the preview component.
I’m gonna embed the nbconvert python script by tonight. Update: that was overoptimistic.
So I have the nbconvert python script to generate basic html strings.
I should also remove those comments in the html.
So we’re using the less performance option of keeping duplicate copies of the data in both go and python since we don’t need much memory in the first place.
Read about python c api.
July 7
Learned one or 2 things about embedding python. https://github.com/ardanlabs/python-go/tree/master/py-in-mem
Following this https://poweruser.blog/embedding-python-in-go-338c0399f3d5
So I need python3.7. Because go-python3 only supports python3.7. But there’s python 3.8 workaround in the same blog. go get github.com/christian-korneck/go-python3 Failed with a bunch of errors.
https://blog.filippo.io/building-python-modules-with-go-1-5/ goodread. But that’s not what I need.
https://www.ardanlabs.com/blog/2020/09/using-python-memory.html
This is a bit more challenging but more understandable.
He's trying to use in-memory methods, so both go and python can access the data. No duplication. Since the guide is more understandable and uses python3.8 itself, I should give it a try.
I should start with this right after fixing the make issue.
Back to build fixing
Do as samuel suggested. - no luck.
What I know so far. The issue is rooted with golang or protobuf or sth related. Since the issue is there for all the text editors including vim.
I found sth weird -Which go => /usr/local/go/bin/go. When it gives /usr/local/bin/go to this dude https://stackoverflow.com/a/67419012/13580063
Okay, not so weird.
July 8
Reinstall golang#2. https://stackoverflow.com/a/67419012/13580063 ? Nop.
See protoc installation details.
Read more about protoc, protobugs https://developers.google.com/protocol-buffers/docs/reference/go-generated#4. Read more about golang ecosystem - 30m and see if **which go **path is weird.
Also found this https://github.com/owncloud/ocis-hello/issues/62 Nop.
Make generate is giving this.
GO111MODULE=off go get -v github.com/golang/protobuf/protoc-gen-go GO111MODULE=on go get -v github.com/micro/protoc-gen-micro/v2 GO111MODULE=off go get -v github.com/webhippie/protoc-gen-microweb GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2 protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --go_out=pkg/proto/v0 hello.proto protoc-gen-go: program not found or is not executable Please specify a program using absolute path or make sure the program is available in your PATH system variable --go_out: protoc-gen-go: Plugin failed with status code 1. make: *** [Makefile:176: pkg/proto/v0/hello.pb.go] Error 1
echo $GOPATH is empty. go env GOPATH is giving the right path.
export GOROOT=/usr/local/go export GOPATH=$HOME/go export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT:$GOPATH:$GOBIN
Now, I get this
GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2 protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --go_out=pkg/proto/v0 hello.proto protoc-gen-go: invalid Go import path "proto" for "hello.proto" The import path must contain at least one forward slash ('/') character. See https://developers.google.com/protocol-buffers/docs/reference/go-generated#package for more information. --go_out: protoc-gen-go: Plugin failed with status code 1. make: *** [Makefile:176: pkg/proto/v0/hello.pb.go] Error 1
Did this https://github.com/techschool/pcbook-go/issues/3#issuecomment-821860413 and the one below and started getting this
GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2 protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --go_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --micro_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --microweb_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --swagger_out=logtostderr=true:pkg/proto/v0 hello.proto protoc-gen-swagger: program not found or is not executable Please specify a program using absolute path or make sure the program is available in your PATH system variable --swagger_out: protoc-gen-swagger: Plugin failed with status code 1. make: *** [Makefile:194: pkg/proto/v0/hello.swagger.json] Error 1
July 9
Now trying to read this from the error https://developers.google.com/protocol-buffers/docs/reference/go-generated#package
option go_package = "github.com/anaswaratrajan/ocis-jupyter/pkg/proto/v0;proto";
Tried this and
GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2 protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --go_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --micro_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --microweb_out=pkg/proto/v0 hello.proto protoc \ -I=third_party/ \ -I=pkg/proto/v0/ \ --swagger_out=logtostderr=true:pkg/proto/v0 hello.proto protoc-gen-swagger: program not found or is not executable Please specify a program using absolute path or make sure the program is available in your PATH system variable --swagger_out: protoc-gen-swagger: Plugin failed with status code 1. make: *** [Makefile:194: pkg/proto/v0/hello.swagger.json] Error 1
Okay, so proto-gen-swagger is not in gopath as expected. So this isn’t working.
$(GOPATH)/bin/protoc-gen-swagger: GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2
Instead of protoc-gen-swagger, there’s protoc-gen-openapiv2 executable. So I replaced protoc-gen-swagger from last line in the makefile to the executable in the path.
https://grpc-ecosystem.github.io/grpc-gateway/docs/development/grpc-gateway_v2_migration_guide/
Turns out they renamed protoc-gen-swagger to protoc-gen-openapiv2
option go_package = "github.com/anaswaratrajan/ocis-jupyter/pkg/proto/v0;proto"; wasn't the right path.
There's a new directory github.com/anaswa... inside proto/v0/
So go_package path is messed up.
Just replacing swagger binary names in makefile lets you generate the proto files at github.com/anas… dir
Let’s try fixing the go_package path.
Wait, you don't generate them.
option go_package = "./;proto";
This is the right way.
So yea, I’m able to generate the go-code now. But make generate is still failing. The swagger file is still not generated. July 11
Ownclouders already tried to work on it.
https://github.com/owncloud/ocis-hello/issues/91
So what exactly is micro-web service? This protoc-gen-microweb is a protoc generator for micro web services. And it's generating this hello.pb.web.go
New error/ Make generate gives
`GO111MODULE=off go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-openapiv2 go generate github.com/anaswaratrajan/ocis-jupyter/pkg/assets panic: No files found goroutine 1 [running]: main.main() /home/anaswaratrajan/go/pkg/mod/github.com/!unno!ted/fileb0x[@v1](https://tmblr.co/mkYynE1Axr-EFCSIQIAtheA).1.4/main.go:101 +0x2765 exit status 2 pkg/assets/assets.go:12: running "go": exit status 1 make: *** [Makefile:83: generate] Error 1
Read more about the protoc generators used here.
0 notes
Text
also stuff we need to do better on for casual users who aren't interested in github repos, vim, or looking up issues they have only to find the replies full of ideological purists and petty squabbling.
someone searching "Linux Mint update glitchy audio" doesn't need some high and mighty DWM user loudly proclaiming "well you're an idiot for using pulseaudio - it's a bloated buggy mess. switch to pure ALSA and use custom scripts to manage your audio devices. if you need more complex routing then manually configure JACK sinks from the terminal"
and like for the most part, things Just Work and a user-friendly distro like Mint provides a lovely graphical experience and even includes a Getting Started help program. but when things break, most solutions are aimed at people comfortable poking around in the guts of their system.
I mean, "run this one simple command and send us the output" is also done on Windows sometimes, but users aren't routinely told to edit conf files in vim or set environment variables (with the expectation they already know how to do so)
"I installed Y but it won't launch"
"check your permissions and add xyz to your $PATH"
makes sense to me but most people I know would stare in bewilderment and probably give up
oops this wasn't meant to be a giant essay on being kinder to less savvy folk but here we are
"Linux for Windows refugees in X easy steps" (and its mac refugee companion guide) is on my todo list
just like the minimum info non-techie users would need to know and some helpful "how to learn more" advice
#daemon.md#Linux#it's easily good for a daily driver#but the community can be hella toxic a lot of the time
14 notes
·
View notes
Text
LibreVastServitor computing stack designs 1/?
Just a quick reminder here, this is a customized computing stack manifestation game where I simply write what I desire and then let the wider universe manifest it for me whatever way that means, including personal efforts of mine. Boils down from customizing and adapting research material into a actionable series of items to manifest.
Ashur dream specifications
(mid-tower personal workstation computer)
2+ 2560x1440p monitors (one vertical, one or more horizontal)
Intel Core i5-4690 @ 3.5 GHz with its 4-cores (hoping forward to upgrade the RISC-V + OpenPOWER like processor for something decent with ~12-cores & much more open design) central processor unit
32GB of RAM
Some recent mid-range AMD GPU
64 GB Linux swap partition (mostly for virtual machines and RAMdisk partitions)
4TB+ SSD storage
Bluray burner
Floppy drive
Cassette / datasette drive
Themed GRUB bootloader
S6 init system
Arch-like package manager and software ecosystem
Customized alternative Linux kernel between Linux Libre & Zen kernel ( XanMod + Liquorix )
ZealOS, Parade, OpenBSD, OpenIndiana...
CLADO, DIS, Venera, Perseus, Maskoch, Synod, Monad, Valenz, Constans?
KDE Plasma with Liquid shell as desktop environment, complete with custom ricing, dot files & all the KDE desktop environment utilities;
Bash + Fish, Tmux, Astro-Neo-Vim with LSP, Emacs, LibreOffice Suite, Calligra, Bottles, Wine, WineTricks, QGIS, Firefox, LibreWolf, Dolphin, Konsole, Inkscape, Karbon, OpenStreetMap, GPlates, GProjector, Itch, Steam, GOG Galaxy, Lutris, Cyberpunk 2077, Ken Silverman's, FreeBASIC, Common Lisp, Godot + Qodot, VLC, MPV, .ogg / .ogv media player, musical tracker, 'Landchad.net', Brasero, K3B, FloppyFormatter, LibreCAD, AutoCAD, Blender, Kate, Qt, Nim, MUSL, C compiler, assembly monitor, HxD debugger, Rust, Swift, Kotlin, F#, C#, GNU make, NASM, Sweet Home 3D, some digital audio workstation software, Audacious, FFMPEG, Wayland, Morevna OpenToonz, some HTTP(S) web server suite, MongoDB, Hexo, Netlify CMS, RSS feed reader + generator, Pomodoro, Calendar, timely Tracker, Notion-like service, Tape, Gollum, some level editors, FreeCiv, The Sims 2, SimCity 4, Quake 1, Doom 1 & Doom 2, Markdown / Argdown, Konqueror, some WYSISYG rich media editor, some Raycaster engine, Daggerfall Unity, Portal 2, Source (1 & 2) Engine modding, some VirtualTableTop software, some remote desktop control software like VNC, OpenSSH, some distributed share storage software, Trenchbroom, StableDiffusionXL, ChatGPT open source alternative, DAO, Krita, GIMP, G'MIC & its plugins, PaintDotNet, CataclysmDDA, CataclysmBDA, Evennia, Python 3, Firefox for KDE (Developer Edition), Perl, PHP, MariaDB, lighttpd, Apache, Nginx, Themix Oomox GTK+ theme editor, Falkon, ...
Custom shell scripts, interactive REPL programming languages, some GUI programs, command aliases and dot file configurations;
?
Venera (computation "deque" project)
Original components:
RISC-V + OpenPOWER = LibreVast (tribble word-based open hardware architecture designed for daily use & tinkering developer purposes)
Tropix + OGAS = Nucleus (optimized distributed processing micro-kernel, like 'Inferno' & 'Plan9')
RedSeaFS + Parade = CLADOgram (direct-access rich media agentive filesystem & file server suite)
KDE + POSIX-compilant CDE = VUE (lightweight desktop environment with profound customization options)
CommonLisp w/ CLOS + Nim = Pan-Lisp (both low-level and high-level REPL programming language)
Existing components:
Fish, Tmux, Vim, Konsole, Flatpak, Git
KDE Plasma w/ Liquid shell alternative
Konqueror, LibreWolf
GIMP w/ G'MIC & Krita w/ G'MIC
Hexo (flat blog self-hosting web server), MariaDB, "Landchad.net" stuff
QEMU, Wine, Wine-tricks, Proton, Bottles, Lutris
Trenchbroom, Godot w/ Qodot
Kate, KDevelop, Okteta, Mousepad, Notepadqq
[...]
4 notes
·
View notes
Link
VIM ? Well... No Thanks.
You may already have met one of those extremists which have explained to you how productive VIM is compared to newbie editors like vscode or other modern useless shit.
To me, this always have sounded like some sort of hell-yea-i-am-a-real-geek nonsense. In perticular, they often hightlight the fact that VIM is highlly customizable. Weeeelll, yes. That's right. Or at least that was right: vscode (or other modern alternatives), is also highly customizable, in a way more user friendly fashion.
However, if like me you have been writing code for decade(s), you might have noticed (or not?) that one of the things that break your flow is to constantly switch between keyboard, arrow keys, and/or your mouse. When you have a burst, you may feel like hell-yea-my-hands-are-flying, but in the end, you spend a lot of time not typing actual code. That is one of the arguments of VIM-extremists, and I must say, this is the one that seduced me the most.
What If I Dont Wanna Spend 32752 Hours Learning/Configuring VIM ?
I'll share with you the two ways I achieved that.
Configuring vscode alone
Vscode shortcuts customization is awesome. You can do almost anything with it.
Here is a link to my key bindings, so you can pick what's best for you (⚠ my keyboard is AZERTY).
A config like this one allows you to navigate your code without moving your hands even slightly:
use ALT+I/J/K/L/U/O/Y/H/M/ù to move around
same shortcuts with SHIFT pressed to select code
use ALT+Q/S/D/Z to switch between panes
use ALT+SHIFT+Q/S/D/Z to move code panes around
use ALT+,/; to switch between tabs
... it also contains some other useful stuff check it out.
It takes several hours to get used to not touching your mouse, but there is no going back: It really worthes it.
However, when you configure this kind of shortcuts, it can feel a bit frustrating to edit text elsewhere "the old way" (notepad, word, or even in your browser).
That is the why of this next section:
System-wide configuration using AuthoHotKey (Windows only, sorry)
If you dont know autohotkey, it is a small software that allows you to write scripts that you can bind to keyboard shortcuts. It has a quite ugly syntax, but it makes it really easy to remap keys and interact with windows.
This autohotkey script will allow you to have almost the same experience moving around text as briefly described in the previous section, but system-wide.
(nb: It also contains a remapping of the F1 key that hides/shows Windows Terminal)
Other utilities
Jumpy
Moving around code using keyboard is nice, but you may feel like it is frustrating not to jump directly at a precise location visible on your screen (you'll want to click on this location).
For this, I highly recomend the jumpy vscode extension, which does just that using your keybard.
Switcheroo (Windows only)
ALT+Tab is quite frustrating... try switcheroo: Press ALT+Enter, then just type the window name you want to jump to 🎉
For those who want VIM bindings:
There are several extensions that will turn your vscode experience in something like VIM. Read this article to know more about it.
[edit] Vimium
If you want to control your browser mouseless, give a try to Vimium (or here for Firefox).
It has plenty of shortcuts allowing you to browse pages, navigate bookmarks, open tabs or click links using your keyboard
0 notes
Photo

How to create your own JSON parser
#467 — December 13, 2019
Read on the Web
JavaScript Weekly

Fx 16.0: A Command-Line JSON Processing Tool — If you’ve got some files full of JSON that you want to process, Fx will slice and dice it however you want, including using JavaScript one-liners to add a bit of logic to the process.
Anton Medvedev
Preact 10.1: A Fast 3kB React Alternative with the Same API — Preact is an interesting project that often sees use in places where speed and size are of the absolute essence (Uber used it until they built their own in-house framework). New in 10.1 is support for a devtools extension and a SuspenseList component. GitHub repo.
Preact
CircleCI Config Teardown: How We Write Our Config at CircleCI — Find out how we use YAML configuration to power CircleCI - and which open source orbs (shareable packages of config) we use to speed up our pipeline.
CircleCI sponsor
20 Ways to Become a Better Node Developer in 2020 — We’re rapidly coming up on the end of the year (indeed, the next issue is our last this year) so is it time to think about New Year’s resolutions already?
Yoni Goldberg
Dr Axel's 'Deep JavaScript' Now Available — The latest book from JavaScript guru Dr. Axel (of Exploring ES6 fame) is now out. It costs money, but you can read a whole 50% of it online (or grab a PDF direct).
Dr. Axel Rauschmayer
Creating a JSON Parser with JavaScript — Sure, you could just use JSON.parse but where’s the challenge in that? This is a neat step-by-step guide on implementing a JSON parser of your own.
Tan Li Hau
Quick bytes:
Love SICP? A JavaScript adaption has been released.
Electron, the hugely popular GitHub-founded toolkit for building desktop apps on Web technologies, has joined the OpenJS Foundation.
Ember user? They're doing a 31 days of Ember addons series on their official blog.
💻 Jobs
Software Engineers, Frontend at Fictiv (San Francisco) — We bring a user friendly experience to manufacturing, making it easy to turn designs into real products. Use the latest tech and JS to iterate quickly, ensuring a rapid feedback loop between us and our customers.
Fictiv
Senior Front-End Software Engineer (Vue, Nuxt, Apollo) — Join our distributed Front-End functional team in our quest to make doctors more effective using Vue, Nuxt, Apollo and Rails.
Doximity
Find a Job Through Vettery — Make a profile, name your salary, and connect with hiring managers from top employers. Vettery is completely free for job seekers.
Vettery
📘 Articles & Tutorials
Raw WebGL: An Illustrated Guide to Starting with WebGL — A well presented tutorial on getting started with WebGL, what key data structures you need, and what each of the main elements (of which there are quite a few when it comes to WebGL!) are and do.
Alain Galvan
Relatively Formatting Times with Intl.RelativeTimeFormat — For example: new Intl.RelativeTimeFormat('en').format(-1, 'day') returns the string "1 day ago". It’s going to be part of ES2020 but you can use it in Chrome and Firefox already.
Bram van Damme
Build a Customizable Angular Data Grid in Minutes — Create an Angular data grid in under 5 minutes. You'll also find resources for building in Vue, React, and plain JavaScript.
Wijmo by GrapeCity sponsor
JavaScript Component-Level CPU Costs — Did you know that in Chrome 78+ on Linux you can actually track how many CPU instructions are used in the rendering of your components? Interesting, though advanced, performance monitoring stuff here.
Stoyan Stefanov
▶ Angular Meetup Online: Two Angular Talks — Ryan Chenkie and Kara Erickson both gave twenty minute talks on the latest in the Angular world.
This Dot Media
How to Write Correctly Typed React Components with TypeScript — React and TypeScript make a powerful pair, but if you’re just starting out, you’ll need to understand how to write correctly typed components.
Piero Borrelli
Why Does JavaScript Have -0? — Yes, there’s -0 and normal 0. They’re equal but are different objects nonetheless.
Thomas Barrasso
Inversion of Control — A simple principle that can drastically improve your reusable code.
Kent C Dodds
Realtime ≠ Request-Response: So, Why’s Google Polling Like It’s the 90s?
Ably sponsor
Reasons To Use Aurelia in 2020 — Aurelia is an interesting framework that deserves a look in a sea of competing options.
Dwayne Charrington
The npm, Yarn and Bower Timeline — The npm vs yarn story is a good demonstration of ‘competing’ tools pushing the other along.
Charlie Midtlyng
How Optional Chaining Helps to Avoid "undefined is not a function" Exceptions
Stefan Judis
🔧 Code & Tools
OpenLayers: High Performance Frontend Mapping Library — A system for putting dynamic maps onto your pages that can render map tiles pulled from various sources, vector data layers, markers, etc. Supports both Canvas and WebGL as appropriate. Examples.
OpenLayers
Visual Studio Code November 2019 Released — VS Code is perhaps the most popular editor in the JavaScript world and this release has a lot going for it, not least a new experimental WebGL renderer you can use to make the integrated terminal a lot faster. Just to show no favoritism though, Vim 8.2 just came out too ;-)
Microsoft
New Time-Travel Debugger for JavaScript and TypeScript — Move forward and backwards through your code to understand the conditions that led to a specific bug, view runtime values, edit-and-continue, and more.
Wallaby.js sponsor
simpleParallax: A Simple Way to Create Parallax Effects — A straightforward library to add parallax-style animations to any image on your page. Not always a good idea UX-wise, but the examples and code samples here certainly sell it well.
Geoffrey Signorato
5 Cloud IDEs for JavaScript Developers — I’d add Repl.it, CodeSandbox, and Glitch to this list too.
Shaumik Daityari
npkill: Find and Remove Old or Large node_modules Folders
Estefanía García Gallardo and Juan Torres Gómez
react-tabs: An Accessible and Easy Tab Component for React
React Community
⚡️ Quick Releases
Highcharts 8.0 — The charting framework.
Geolib 3.2 — Geospatial functions library.
npm 6.13.4 — The popular package manager.
react-beautiful-dnd 12.2 — Powerful drag and drop for lists in React.
by via JavaScript Weekly https://ift.tt/38Cnl3t
0 notes
Link
I recently started integrating tmux and vim into my workflows. Obviously, it was a huge efficiency booster. What are some other tools (custom built or off-the-shelf), hotkeys, workflows that were game-changing for you as a dev? I'm interested in hearing about anything and everything (stuff from ctrl+l to clear the terminal to little-known git commands to larger-scale strategies like CI/CD)
Comments URL: https://news.ycombinator.com/item?id=23118940
Points: 7
# Comments: 6
0 notes