Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "sqlite"
I'm working on my own code editor with 'multiplayer', option to draw stuff, option to design algorithm schemes, option to browse SQLite databases and most importantly - I've based entire interface on HTML/CSS/JS and entire backend on C# and PHP, so it works both online (via browser) and offline (via program).
Tell me whatchu think, it's still work in progress.
(I've removed the name of it so when I share this project with my future employer, he doesn't connect the dots)17
My last special snowflakes teacher story. This happend last Friday.
Background: we had to do a "little" project in less than 2 weeks (i ranted about that) and got our degree on Friday. I did a perfectly fine meal suggester, with in my opinion one of the best codes i've ever written.
After getting my degree (which is totally fine and qualifies me as IT technician/ "staatlich geprüfte Informationstechnische Assistentin") i asked him what my grade for the project was.
Me: what was my grade for the project again?
Him: i left it at 90%
Me: why exactly? You seemed to be really excited and liked it obviously. And there was no critique from you after my presentation.
Him: yadda yadda. I can't give you more. Yadda yadda be happy i didn't lower your grade.
Me: why would you lower my grade? This doesn't make sense at all. I matched all your criteria. You wanted a program everyone loved, everyone wanted to buy. There you go. I made exactly that.
Him: i can't give you a 1 (equals an A)
Me: why not?
Him: you wrote to much. I didn't want so much (he never specified a maximum). And you used to advanced code. And there were so many lists and ref - methods. The class couldn't benefit from it.
Me: Excuse me!? The only "advanced code" i used was a sqlite library. And i explained what i did with that. What do you mean by "so many lists" and ref-menthodes. In which methodes am i using ref?
Him: I don't know, i just skimmed through the code.
Me, internal: WHAT THE FUCKING HELL!?
Me: so you are telling me, you didn't even read my code fully and think it is too advanced for the class? And because of that you give a 2 (equals a B)?
I just gave him a deathstare and left after that. What the hell. Yes, i used encapsulation - which is something we hadn't done much in class. But the code is still not more advanced because i use more files -.-16
Behold, the SQLite new Code of Conduct:
May this be a guide to all current and future projects.
I don't think it's wholly a joke, but it is a jab at those who seemingly cannot live without having a CoC everywhere. Especially in projects, they do not actually participate in. Now watch as this gets blown out of proportion, because this will make some people really, really angry.
I truly hope this stays up!12
Senoir dev was assigned to make a webapp for billing
Dude uses dreamviewer and writes code like a bitch
Phpmysqljqueryhtml whole thing mixed very badly and undocumented
His function name format fun_1()
a simple update cost him a day,
Told him to use brackets atleast and also a framework ,guy denies
Days go by
He learns a lot of stuffs from me ,like how to use inspect in chrome lol, how to use sqlite for small projects , and orm and frameworks.
He used to pin his mistakes on me, so that boss gets angry on me
Then i quit the job
2 years went by
Now he is unemployed, nobody wants a 24 year old plain php coder and template editing web developer
Anyway I hired him, he was my first senior, whatever he did,it didnt matter to me, bcoz i remember
the days we spent on the same hall right next to each other coding in php,
days we brainstormed to fix a div
Also the days we ate lunch and breakfast together6
We had a tool to analyze a distributed system. To do that it collected a large data set--basically the entire data set of the system itself, just in a different format--and ran analyses on that. That tool went through three iterations.
First: dump everything into an SQLite database and run SQL queries. That approach failed spectacularly when the tool was used on system larger than the toy examples used for sales demonstrations: if it ran at all, it ran for weeks. Which is not something clients are very happy about, usually.
Second: dump everything into many SQLite databases, one database for each type of thing. To avoid the evil, evil locking overhead of SQLite. Failed just as well as the first thing try, but it did run marginally faster.
Then it was dumped on my desk. With the instructions "make it fast". Nothing else. Ripped out the entire database code and rewrote it from scratch to still support relational queries (code reuse, yay!), then optimized the living hell out of that for an end result of 30dB improvement in runtime. At that point the tool was no longer the bottleneck, but I was still scolded for having changed the code in order to get there. Some people ...
Set out to copy the iOS alarm on android because a) android's stock alarm is fugly and b) all other sleep reminder apps either offer me way too much or no functionality.
Week 1: "Oh, custom UIs need a lot of math... Ok."
Week 2 "Why on earth is my ram usage at 400 mb?!"
Week 6: "I have come to the realisation that android's ByteArrayDecoder should burn in hell.
Week 7: "Man... They sure made the management of intents and pending intents a pain."
Week 10: There. It works. Two classes, 7000 lines of code.... Hmmmm maybe apply MVP."
Week 11: I discovered embarrassment driven development, throw away all my code and start from scratch.
Week 12: Oh ButterKnife, where have you been all my life?
Week 17: I might actually finish this in my life time!
Week 28: Man, this MVP and managing Context, intents, SQLITE DB and pending intents do not mix well.
Week 46: I discover RxJava and Dagger 2
Week 47: I discover that the 'V' in MVP does not refer to an 'Activity'
Week 48: My StudyBudy says to me "Man, exams are only a month away!"
Week 49: I put all your code in my github, delete it locally and focus back on being a student.2
OFFICIALLY COMPLETED A PROJECT!!
Its not anything too fancy but I am very proud of it.
It is a simple C# (.NET Core) Console application. that also uses SQLite
if anyone wants to see it heres the repo:
A little late but whatever.
About half a year ago, I started working on setting up self hosted (slippy) maps. For one, because of privacy reasons, for two, because it'd be in my own control and I could, with enough knowledge, be entirely in control of how this would work.
While the process has been going on for hours every day for about half a year (with regular exceptions), I'll briefly lay out what I've accomplished.
I started with the OpenMapTiles project and tried to implement it myself. This went well but there were two major pitfalls:
1. It worked postgres database based. This is fine but when you want to have the entire world.... the queries took insanely long (minutes, at lower zoom levels) and quite intimate postgres/tooling knowledge was required, which I don't have.
2. Due to the long queries and such, the performance was so bad that the maps could take minutes to render and when you'd want that in production... yeah, no.
After quite some time I finally let that idea sail and started looking into the MBTiles solution; generating sqlite databases of geojson features. Very fast data serving but the rendering can take quite some time.
After some more months, I finally got the hang of it to the point that I automated 50-70 percent of the entire process. The one problem? It takes a shitload of resources and time to generate a worldwide mbtiles database.
After infinite numbers of trial and error, I figured out that one can devide a 'render' (mbtiles aka sqlite database) into multiple layers (one for building data, one for water, one for roads and so on), so I started doing renders that way.
Result? Styling became way more easy and logical and one could pick specific data to display; only want to display the roads? Its way more simple this way. (Not impossible otherwise but figuring out how that works... Good luck).
Started rendering all the countries, continents and such this way and while this seemed like a great idea; the entire world is at 3-4 percent after about a month. And while 40-70 percent generates 10 times as fast, that's still way too slow.
Then, I figured out that you can fetch data per individual layer/source. Thus, I could render every layer separately which is way faster.
Tried that with a few very tiny datasets and bam, it works. (And still very fast).
So, now, I'm generating all layers per continent. I want to do it world based but figured out that that's just not manageable with my resources/budget.
Next to that, I'm working on an API which will have exactly the features I want/need!14
This is the most impressive testing document I have ever read. Props to the SQLite devs for doing things so thoroughly.
Not only Windows can show this "strange" error messages: Today I got this beauty while importing an SQL-dump.
(Translation: "Error on import: error on statement #1: not an error. Execution will be aborted and the db will be reset.")
So we had this legacy Objective-C codebase for a mobile app that was actually pretty good: I'd inherited the codebase and spent the past several years gradually improving it and I was actually quite proud of the work I put into it. So of course management decides to scrap it (with NO consultation from the engineers) and outsource a complete rewrite of the app in C# for Windows Universal.
Let me tell you. That code was without a doubt and without exaggeration the *worst* code I've seen in my close to 30 years of experience as a developer. I mean they broke every rule in the book, I'm talking rookie mistakes. Copypasta everywhere, no consistent separation of concerns, and yet way too many layers. Unnecessary layers. Layers for the sake of layers. There was en entire abstraction layer complete with a replicated version of every single data class *just* to map properties in pascal case to the same property in camel case. Adding a new field to a payload in the API amounted to hours of work and about eight different files that needed to be modified. It was a complete nightmare. This was supposed to be a thin client, yet it had a complete client-side Sqlite database with its own custom schema (oh and of course a layer for that!) completely unrelated to the serverside schema, just for kicks. The project was broken up into about eight or nine different subprojects, each having their own specific dependencies on various of the other subprojects in such a tightly-knit way that it made gradual refactoring almost impossible. This architecture was so impressively bad, it was actually self-preserving!
Suffice it to say it was a complete nightmare, and was one of the main reasons I ended up leaving that company. So just sayin', legacy code isn't always bad. :)
Contex: Working on a c++ frankenstein code (mixture of legacy and new stuff whith things depending on the client using it)
User Story: Migration from oracle to SQLite for half of the DB data
Summoner: One client wants to keep using legacy for now, therefore we need an strategy chooser templated singleton...
Satan 666 = Singletons + Static methods + Different compilation units
Result: 3/4 of the files of the full backend being modified for the migration.
Conclusion: When will be loaded on production company will probably lose many clients due to unspected bugs everywhere.
Insert potato here2
A remote SQLite database where huge blobs of JSON created by python’s pickle module were stored in a single cell. These blobs include things that should have been many-to-many, like users and competitions. This database (including the pickled python objects) was queried by API calls from an iOS app.
Continued from https://www.devrant.io/rants/575042
Time for a new great collab project!
Read the above rant I posted previously to see what our class is...
So the teacher(who uses visual c++ ide made in the 1990s) said to make an android based application or make a game but without using any block programming (like scratch) which means for android app development, we should make in java, js, c#, or any app makin' programming language. For game development, we should use either unity(yes, I am good at it) or unreal or gamemaker or buildbox. LibGDX is not allowed (I wonder how the teacher knows this library... strange).
Any ideas upon making apps or games? Prefer apps btw...
Something using SQLite or database will be appreciated but not dull student management system.
Any ideas appreciated.2
Episode 3 of "I don't know Python"!
I've been tasked with making a development version of the site. At first we had no server access so I couldn't get the files for a week. I spent that time researching and practising starting a Django site. All of the documentation said the same things, pretty straight forward. When I eventually get to the files, the order isn't anything like the documentation, the file names are all wrong, there are 5 copies of every file spread around the server.
I am a total newbie at this but I feel like this has made it a million times harder. There is no .htaccess file anywhere, no requirements.txt, a MySQL and SQLite database backup. I don't even know where the sites root folder is.4
So I’m working on this project I’ve been working on for like 3 weeks and I finally got this feature to work but it had a bug and I shit you not fighting this program was like playing through bloodborne for the first time again. It got to the point where I started naming the testing files swear words or stuff like “itshopeless”, “maybe”, “maybe2”, “pls”, etc but I finally after fucking hours passed, bug slaughtered. And I’m now exhausted
I’m stressing out man. I can look at let’s just say a sorting algorithm for now. I can look at that insertion sort and I can understand what’s happening, but if you were to tell me I was supposed to be able to write that just based off a description I couldn’t. I need to be able to design and understand algorithms but I don’t know where or how to start. There was some course I was gonna try and see what that does. I put aside JS completely to focus on C# but I’m just stressing out over here. I learned the basics of C# although I feel like I’m learning it wrong but I’m moving on to SQLite and it’s my first Database experience and it’s confusing me and I also don’t know how I’m going to be able to use it for my future applications yet I’m just expecting too much out of me idk I love programming but sometimes it’s a cruel mistress13
The webpage for (basically) the only movie theater chain is slow. The app, goddamn, is worse.
So I made an app to scrape the data and save it in a SQLite db for my use. However, there is one theater which doesn't belong to the same company. So I decided to also include it in the app.
But it sucks! I still have to find a way to automatically get the data from their shitty site.6
During my first project in one of the SQLite statements I didn’t realize that it needed single quotes since I was new to it. So I brushed that off but when working on the next function for the program 8 hours were dedicated to debugging to only realize that the error was caused because I forgot the fucking single quotes. FUCK
Have you ever wanted a feature to be a certain way but you had to settle with something easier and less cool/impressive?
I just had to and it’s very dissatisfying.1
Quotes are paraphrased (unless *) to protect the incompetent and stupid (or more the case: client and I'm reducing risk of exposure)
Situation: We have a program that opens sqlite database files. Occasionally new versions of the program needs to upgrade these files.
Program UI: To proceed you need to upgrade your database. It is recommended you backup your database before proceeding. Hit Yes to continue or No to abort.
Client: How do you back up a model once it has upgraded? If I hit No the program closes leaving me no option to backup the model.
Support: *The easiest way of backing up a model before upgrading is creating a copy of the file and keeping it in a separate folder*
Client: *Haha forgot about being able to do that outside of* <program name>
TL;DR: engineer in technical role who is probably getting paid $150k+ forgets it is possible to make a copy of a file.1
As an emerging Android developer, I must say I HATE SQLITE AND CONTENT PROVIDERS!! So much code for such little functionality! Pro Android devs, does the process get any less tedious down the road with more experience?6
SQLite DB + Google Drive == Love
Just ran my app installers (in projects folders that i copied) and set the DB file on startup.
Could end up with a merge conflict if the app is running on both PCs at the same time though... hm....2
Anyone got some good recommendations for a Rust library that takes SQLite and lets you turn it into JSON?
I'm asking for a friend...also, I'm fairly positive the Puritans over at StackOverflow would have me crucified if I asked this one over there...2
How my day started yesterday.
Luckily It fixed itself, but i was starting my day thinking I should just rewrite a function that wasn’t working so I could test some stuff but instead just decided to debug and thankfully I did that because the error was being caused by a lack of quotes and when I saw that I changed it.
It worked flawlessly and it’s my first project to use SQLite so I stood up and walked around because I was just so amazed because it was working how I planned and how I intended.
That feeling that you get from a project that works how you wanted it to is unbeatable
Was motivated to do a project with ReactNative for Android but already stuck.
I need to read a SQLite DB file from /data/data/some.other.app/database/DB.db
Yes I am rooted.
1. How does I request root from the App (Android Pie)
2. What SQLite npm package can load from an absolute path. I found a few libs but they don't seem to be full access, just for dbs in the app's own data folder.8
Why does the sqlite SUM function round down values?? WHY?
10333.03 is printed as 10333
This has caused me so many problems?
What is the solution to this?2
I have to try to Learn PHP with SQLite in a fucking night it’s not even for anything big it’s just a basic login page for some students that are coming in to visit. but it has to all be working on this Friday. fuck. I’m just gonna learn enough to get by these few days. Then continue what I actually have been doing I guess6
I feel like a fucking god now!
We run a webshop and we are in contract with the national post office. Every time there is an update to their program I fear ahead of time what will be fucked up again.
After today's update we weren't able to open any shippment list we just saw a mile long error message. After the customer care couldn't figure out the problem, and the suggested solution might take up to 2days, and it is basically only a new customer file, i fired up my good old sqlite viewer friend, to chek if I am lucky...
Guess what! That shit is using unsecured sqlite dbs, so i've had no problem examining and even rewriting the values. So checking the logs and scraping the DB I've found the problem.
Apparently some asshole thought that deleting a service but keeping all of its references in other tables scattered around is a good fucking idea. And take it customer care, the new customer file won't fix shit, because it was in the global DB. I swear i am getting more familiar with that piece of garbage then the ones who made it.
On top of that the customer care told us, that if we couldn't manage to send the shippment list with the program we are not elligible for our contractual prices.
It is not enough that I had to fix their fucking shit program, they also "would like to charge us" because their pogram isn't working. What a fucking great service. (At least the lady on the telephone was friendly)1
- A while ago l designed a single user Point of Sale app for a pharmacy.
- Now the client wants to be able to make data entry at his home PC too.
-It means having export and import humongous amounts of data between his shop and his home PC.
(I designed it using electronJS, AngularJS and a MySQL client for nodeJS)
How do I approach this? I have been thinking about SQLITE but I'm not quite sure about it.4
This is just me throwing out my thoughts from the past few weeks.
edit: this is long
> Working on a C# project. its going well Its teaching me a lot about SQLite and file IO. I'm having a lot of fun with it, even the debugging as much I want to slam my head on the wall but I'm not asking for help so far and I'm very proud of myself because it feels so much better. like I don't mind asking for help but its so much more rewarding and I learn more from it.
> I need portfolio of software I can show off to employers and the current project I'm working on is the first programs in the portfolio. The place I want to apply to uses C#, but I still wanted a few other programs in other languages such as Python or JS just to show what I'm capable of.
> I was looking at what ASP.NET Core offers and it impresses the fuck out of me, and confuses me. The parts that confuse me, like for example the normal asp webapp is a very impressive hello world app. and it has so many different files and such but how or what do they expect me to add? how am I supposed to work with it? and if I delete any files I don't need (the premade js, bootstrap, jquery, html, and css) it produces errors because of the project files are pointing to those. and i know I can use the empty project (I do) but does that question my ability as a dev since I don't want to use it for my projects?
> On that note I love using Intellisense and debuggers and auto complete and I can go without them I just don't want to rely on them. idk I've just been a little more stressed these past few weeks.4
Wow.... it seems Entity Framework with Code First/Annotations is FAAASSSTTTT vs using Fluent API. I don't mean writing the actual code but the DB file opens very quickly unlike my last attempt years ago...
Or whoever wrote this library is really good... https://github.com/msallin/...
Solves the whole headache of creating the initial SQLite DB...
Something very interesting today
I worked on an API feature and it was approved and merge to the stable copy of the project. But then comes the demo.
Now we used Heroku(this devil)
The database uses sqlite. I can register an account on the web application. But the user table has only the admin account even though i have successfully managed to register.
I dont know what sorcery this was!
I simply went with the saying "it is working on my local machine"
Only to realise minutes to the demo the build pack was not done well at the beginning...
What is life...
Just spent 3 fucking hours trying to find out why my tests are failing. I'm mocking ef with an in memory sqlite dB as THE FUCKING. Net docs say to.
My code does a simple decimal comparison in a linq statement and returns bullshit. Why? Sqlite does not have a decimal type, it does some sort of BULLSHIT to convert it into some sort of text value.
I change all my models to use doubles instead of decimals and all my tests turn green.
WTF IS THIS SHIT. If it doesn't work don't tell me to use it. I expect better of the. Net docs. Wtf are they doing.3
This is a simple Gmail terminal client that can perform filtering and few actions on the filtered emails. Used python 3.7 and sqlite to store them.
Two senior developers were baffled at why their Web application built using sql server wouldn't just instantly work using sqlite... The Web application uses some pretty advanced queries and ORM.1
What local database you guys use??
I am searching for local db that also provide encryption for windows desktop application.
* found sqlite but most add-on that provide encryption are not free *12
Is MongoDB worth learning? I already use MySQL/SQLite but I was thinking of learning it. How is it any different aside from having no SQL16
Disclaimer: I should know what I'm doing but I don't. 😢
I'm a very experienced full stack dev (15+ years), but I don't know the more modern JS frameworks. I'm trying to learn React and I have a little project I'd like to do.
I have database (in both SQLite form and JSON form). I'd like to read from it, parse it and run various displays in a shared hosting environment (that doesn't have node). So webpack. And either an API to get the data or a React compatible SQL component.
But dagnamit, I cannot find a tutorial or example with this kind of set up and I can't figure it out. What packages do I need and what kind of config?
I genuinely thought this would be a traditional and simple architecture but I'm obviously mistaken. And I'm about to turn in my developer card because I'm clearly a stupid twonk.
Has anyone done this? Do you know of any tutorials or examples of this kind of thing? Is there somewhere else I should ask this question? Thanks anyway...5
Spent 4 hours working with a buddy before realizing our failing code stemmed back to using sqlite3 Npm package, which is asynchronous. Switched to better-sqlite3, a synchronous sqlite package, and alls good.
What's the purpose of an async DB anyway? Seemed like it made storing and retrieving data a huge hassle.
Spending all day trying to install cockpit cms.
- bad permission.
*insert here all of swear-word you know"
just forgot to put string quotation(" ")
on query field with where clause and this small mistake wasted my 2 hours.
Quick disclaimer, it is easily googlable, but no matter where I search, I can't find a solution. This is why I'm trying here.
Okay, so the other day, I was trying to install the node package sqlite3, and it spat out errors all day long from the node-pre-gyp native module and from the node-gyp native module. I am using the latest LTS (as of 5/10/2018), and I can't get any answers on HOW TO FIX IT...! Please HALP ASAP!12
Mfw the CREATE TABLE statements in the SQLite database handler of my latest android app run perfectly first time
I started a project to practice and familiarize myself with SQL more and Entity Framework Core and prove how much I’ve learned from reading this book.
It was originally gonna be small program with a small database but over the course of me designing the database I thought of more features I could add. It’s been awhile since I’ve had a project and it feels good to have one.
Right now I’m only messing with SQLite but since the position I want to apply for asks for SQL Server I want to mess with that eventually.5
Looking for a Framework or language that has:
- multi-platform (Windows + Android minimum)
- Easy to design GUI
- Can use file databases like SQLite
- Can use serial, BT, Wi-Fi to send-receive data.
I already used Python + Kivy but I think there must be easier frameworks for this...22
There are so many frameworks out there that already have their ways to connect the client application with the server one and then from the former to a Database, that I'm wondering how someone can build such server applications(for example in C++), then connect them to a Database (for example SQLite) and setup all the network configuration for a server running from home without getting mad2
Hey, I am making xamarin android app with my friend, we are making registration, login (user) feature, and we're looking for database for it, is SQLite good for it? Is it safe for that?1
Recently I had a task from my university to build some DB with forms using MS Access.
Despite of me constantly thinking that I wold accomplish this using Python+SQLite+Some GUI much faster, I've completed.
And I've got only one question left: why the hell proprietary product with giant company behind has such a terrible UX?
It' really painful to use.
You know what really grinds my gears? Java libraries that use native libraries when they could have easily done their task without them.
I’m looking at you Couchbase Lite. Use H2, not SQLite you dumb shit. Be smart like Nitrite.
Are native Android apps easier to write now than like back in KitKat days?
I need a app that gets root permissions and reads a db file of another app (Yes my phone is rooted).
Anyone can give a gist, I forget do I need to create a Service background worker to do the DB reads... Or just need to send the op to a bg thread with a UI callback sorta like Node...
I did try writing a ReactNative app maybe last year just to try it out but can't seem to easily get root access... And the SQLite package is buggy, couldn't npm install on Win10...14
wow, its 4 am, nd i have been working with complex sqlite databases in my apps for near an year now.
And today at 12pm is my database paper and i don't know shit about the theory and technical terms in this xD
Fvck! I can't add primary not null autoincrement in existing table on sqlite! Waste hours trying! Damn.1
Okay, i have a question.
I am a real Noob when it comes to Java programming. I am trying to establish a database connection between my program and a sqlite database. I have everything ready:
- The Model
- The View
Now the problem i am having is defining the DBController that establishes the connection. And i have no idea how to start?!
Please help me :(
Any Linux Kernel developer?
I was thinking about a SELinux module to insert AVC in a DB like PostgreSQL or just a simple SQLite 🤔1
Anybody, who wishes to collaborate on writing Ramda solutions for SQL like queries, I have created the project (SQL queries, SQLite database, json data files) here - Ramda-SQL-Equivalent GitHub project (https://github.com/ajit555/...).
Please post the questions in "Issues" section and hopefully would get some solutions via pull request.
If not sending pull request, please post the solutions as issues referencing the file name.
Cisco Jabber is a load of shit. I don't really know how to get chat logs with people I haven't added to contacts from the UI. So I just open the SQLite database it saves locally to read. Every single IM entry contains a ton of HTML/CSS to keep formatting. Who writes software like that!1
Does anyone know about an embedded document store database for Go? Currently I'm using SQLite but now I want to implement more features for which I prefer a document store database.1
I made a self-medication system for pharmacies for over the counter(non prescription) medication with Java with swing and mysql and then I shifted to Java with sqlite and swing.i don't even know if that's a good or even legal thing to keep working on.
Someone answer this question.
I'm stuck on this.
I've tried almost everything that's possible
Is it a good idea to code my Android app keeping sqlite in mind before actually migrating to a noSQL version?
The primary reason for doing this is not having to deal with APIs or server side coding and also faster testing and prototype development.
Any ideas or suggestions?7
Sqlite.sqliteexception:no such column:Timestamp (code1):,while compiling : SELECT * FROM NOTEs ORDER BY Timestamp
I am trying to get the date and time on each entry of note..17
I try to do some C# on VSCode and i dont understand why my nuget package won't working ... I just try to install sqlite . 😔1