Here is the alpha version: https://visualdict.com
It only has 5 words of the 29 from the channel because I need to automate publishing better.
Not that I want everyone to rush there. I just set the goal last week to publish, and making things public helps me keep up with the schedule.
Also I tried more ads in Telegram and got a few followers for 25 cents each which is below market value. Looks like the channel is interesting and my ad post is good. Or it could be luck, the data is insufficient.
Next week plan:
1. Load the top 200 English words, without images so far. This will make the dictionary useful for at least something like teaching kids the basics.
2. Automate generating pronunciation MP3s. The service I use for speech charges huge money for API but is cheap for normal UI usage. I want to try Selenium or ordinary JS to mass-produce those MP3s with the UI. This is also good for someone stuck in Flutter and never used Selenium in all strength.
It only has 5 words of the 29 from the channel because I need to automate publishing better.
Not that I want everyone to rush there. I just set the goal last week to publish, and making things public helps me keep up with the schedule.
Also I tried more ads in Telegram and got a few followers for 25 cents each which is below market value. Looks like the channel is interesting and my ad post is good. Or it could be luck, the data is insufficient.
Next week plan:
1. Load the top 200 English words, without images so far. This will make the dictionary useful for at least something like teaching kids the basics.
2. Automate generating pronunciation MP3s. The service I use for speech charges huge money for API but is cheap for normal UI usage. I want to try Selenium or ordinary JS to mass-produce those MP3s with the UI. This is also good for someone stuck in Flutter and never used Selenium in all strength.
β€2π1
How ChatGPT stores the state of a conversation? Well, it does not. The model is stateless, and to get each response the chat app sends the entire previous conversation including the model's earlier responses.
I learned that while experimenting with it through the API, there we must manually send the history. This is the recommended community package for that: https://pub.dev/packages/dart_openai
This discovery was a relief. Seeing ChatGPT for the first time was frustrating as it showed how much ingenious stuff was out there I am not competent in. But this boils the problem down to the plain old "neural network with input and output". This is comforting.
I learned that while experimenting with it through the API, there we must manually send the history. This is the recommended community package for that: https://pub.dev/packages/dart_openai
This discovery was a relief. Seeing ChatGPT for the first time was frustrating as it showed how much ingenious stuff was out there I am not competent in. But this boils the problem down to the plain old "neural network with input and output". This is comforting.
Still working on the dictionary app. This week:
1. I have generated text for the Top 100 words, have not published yet.
2. I started the work on the editor UI. This is because the top words' definitions from ChatGPT require more proofreading than I anticipated. Word senses sometimes repeat or are just glitches. I will have to hire a proofreader. If we are going into thousands of words, the usability of the editor matters a lot. I have done ~60% of the editor. See the screenshot of editing the word "new".
Noteably, rare words mostly need no manual edits. Probably it's because ChatGPT learns them from dictionaries while it learns common words from all sorts of texts.
3. I put some ads and got some more followers at $0.25 each, now got 214 followers in the channel. Still hesitate to advertise more because I want the dictionary app to be ready before inviting people in.
Next week plan:
1. Complete the editor.
2. Hire a proofreader.
3. Publish the top 100 words without images.
1. I have generated text for the Top 100 words, have not published yet.
2. I started the work on the editor UI. This is because the top words' definitions from ChatGPT require more proofreading than I anticipated. Word senses sometimes repeat or are just glitches. I will have to hire a proofreader. If we are going into thousands of words, the usability of the editor matters a lot. I have done ~60% of the editor. See the screenshot of editing the word "new".
Noteably, rare words mostly need no manual edits. Probably it's because ChatGPT learns them from dictionaries while it learns common words from all sorts of texts.
3. I put some ads and got some more followers at $0.25 each, now got 214 followers in the channel. Still hesitate to advertise more because I want the dictionary app to be ready before inviting people in.
Next week plan:
1. Complete the editor.
2. Hire a proofreader.
3. Publish the top 100 words without images.
The architecture of the dictionary is peculiar BTW. The source of truth for each word is a version-controlled JSON deployable to Firestore with Terraform. The Flutter app can switch between Firestore and local JSONs with a layer of abstraction I have developed about 2 years ago and published in packages.
This allows me to:
1. Version-control the dictionary data without dumps.
2. Work on any revision of data without environments and stands.
3. Review the work of proofreaders as PRs.
4. Reuse the app for the admin console.
Do you explore similar workflows? Would like to read more about mine with code examples? Let me know in the comments.
This allows me to:
1. Version-control the dictionary data without dumps.
2. Work on any revision of data without environments and stands.
3. Review the work of proofreaders as PRs.
4. Reuse the app for the admin console.
Do you explore similar workflows? Would like to read more about mine with code examples? Let me know in the comments.
Here is my new package with a trivial dialog to get input from a user in one-liner:
https://pub.dev/packages/input_dialog
And an article on it:
https://medium.com/@alexey.inkin/announcing-input-dialog-package-for-flutter-df590924e884
https://pub.dev/packages/input_dialog
And an article on it:
https://medium.com/@alexey.inkin/announcing-input-dialog-package-for-flutter-df590924e884
Dart packages
input_dialog | Flutter package
The easiest way to prompt a user for text, good for prototyping
Still working on the dictionary. The week results:
1. The word editor is "complete enough" to not do anything until we publish a thousand words and see if we can get traction.
2. The proofreader is found but will only start next week.
3. Ads failed resulting in $1.2 per follower in the channel.
The plan for the next week is to publish the top 100 words and all 40+ rare words from the channel.
1. The word editor is "complete enough" to not do anything until we publish a thousand words and see if we can get traction.
2. The proofreader is found but will only start next week.
3. Ads failed resulting in $1.2 per follower in the channel.
The plan for the next week is to publish the top 100 words and all 40+ rare words from the channel.
This week:
1. Created firestore_api_converter package.
2. Updated the dictionary web app: added the language switch, so definitions are available in English and Russian. Published the top 100 words + over 40 words from my "word of the day" channel.
Next week plan: No new coding, will write about my new packages. A new assistant will prepare and publish the words 101-200.
1. Created firestore_api_converter package.
2. Updated the dictionary web app: added the language switch, so definitions are available in English and Russian. Published the top 100 words + over 40 words from my "word of the day" channel.
Next week plan: No new coding, will write about my new packages. A new assistant will prepare and publish the words 101-200.
It's three years exactly today. π
https://medium.com/@alexey.inkin/how-i-went-to-mount-elbrus-664839c67364
https://medium.com/@alexey.inkin/how-i-went-to-mount-elbrus-664839c67364
Medium
How I went to Mount Elbrus
The route from south, without cable car or snowcat.
π5π1
In case anyone wanted to apply for a UK visa or has a friend in the office:
https://medium.com/@alexey.inkin/12-things-to-be-fixed-in-the-uk-visa-processing-based-on-my-refusal-1447570c42b1
And what was your saddest visa rejection?
https://medium.com/@alexey.inkin/12-things-to-be-fixed-in-the-uk-visa-processing-based-on-my-refusal-1447570c42b1
And what was your saddest visa rejection?
Medium
12 things to be fixed in the UK visa processing based on my refusal
How I was refused a UK visa, what you should prepare better when applying, and suggestions throughout the process how they can improve.
π4
Recently, the http package caused a lot of troubles with dependencies when they released the version 1.0. This is how to prevent that kind of shocks:
https://medium.com/@alexey.inkin/preventing-dependency-shocks-in-dart-packages-c1f14a612634
Were you affected? How bad was it?
https://medium.com/@alexey.inkin/preventing-dependency-shocks-in-dart-packages-c1f14a612634
Were you affected? How bad was it?
Medium
Preventing dependency shocks in Dart packages
How to not force a chain of unnecessary dependency upgrades.
π4
I had hard time collecting support letters from my past employers and open-source projects for the EB-1A green card program (not done yet). Some were flexible and gave me full support and involvement. Others limited what they write to strict policies, which rendered their letters useless from that programβs perspective. Some were negotiating the content for 4 months. Some denied supporting letters entirely despite the good feedback they gave me privately.
Therefore, I am declaring "Supportinve Past Employer" initiative. I drafted a policy that an employer can adopt to improve experience of their past employees seeking references:
https://medium.com/@alexey.inkin/the-supportive-past-employer-initiative-on-support-letter-policies-7c89fff27591
Please help me polish it. Leave any comments on Medium or here.
Therefore, I am declaring "Supportinve Past Employer" initiative. I drafted a policy that an employer can adopt to improve experience of their past employees seeking references:
https://medium.com/@alexey.inkin/the-supportive-past-employer-initiative-on-support-letter-policies-7c89fff27591
Please help me polish it. Leave any comments on Medium or here.
Medium
The βSupportive Past Employerβ Initiative on Support Letter Policies
The declaration of what an employer is willing to include in their supporting letter to you so wonβt have hard time proving you are worthy.
β€4π1
I want to use
Thumb-ups is one of the factor to the Flutter's team priorities.
ChangeNotifier in pure Dart in CLI and server apps without Flutter, so I filed a feature request for that. If you also want to see it happen, you can upvote the issue: https://github.com/flutter/flutter/issues/136155Thumb-ups is one of the factor to the Flutter's team priorities.
GitHub
Extract ChangeNotifier from Flutter to pure Dart Β· Issue #136155 Β· flutter/flutter
Is there an existing issue for this? I have searched the existing issues I have read the guide to filing a bug Use case Flutter has Listenable, ChangeNotifier and ValueNotifier. It's a common n...
π2π1
I have moved to an all-electric building. What it feels like to get rid of gas entirely:
https://medium.com/@alexey.inkin/i-have-moved-to-an-all-electric-residence-45cb8aebaec3
https://medium.com/@alexey.inkin/i-have-moved-to-an-all-electric-residence-45cb8aebaec3
Medium
I have moved to an all-electric residence
What it feels like to get rid of gas entirely.
β‘1
Can you tell what will happen here?
Will both exceptions be caught? Or none? Or which one?
The answer is in my article:
https://medium.com/flutter-senior/why-use-async-await-instead-of-future-then-2e9c340aabfb
It is old, but I added this case there because a customer specifically asked about it.
Will both exceptions be caught? Or none? Or which one?
The answer is in my article:
https://medium.com/flutter-senior/why-use-async-await-instead-of-future-then-2e9c340aabfb
It is old, but I added this case there because a customer specifically asked about it.
π4
How to localize packages with easy_localization and not just apps?
Announcing two alternative loaders for easy_localization to support that.
https://medium.com/@alexey.inkin/how-to-localize-packages-with-easy-localization-a71d7eb417a0
Announcing two alternative loaders for easy_localization to support that.
https://medium.com/@alexey.inkin/how-to-localize-packages-with-easy-localization-a71d7eb417a0
Medium
How to localize packages with easy_localization
Announcing alternative loaders for easy_localization that support assets from packages.
π5π1
On my first job, I was making an internal portal for the company. I asked my manager if I should use some existing engine or code from scratch (it was 2005). He asked me of pros and cons.
I said: "If we want it fast, we should use an existing engine, but if we want a customizable thing and to learn a lot in the process, we should make it from scratch." I emphasized the second option because I wanted that more.
He said: "You just answered your own question".
Back then I thought he approved a custom solution, and I dived into it. Now I think in his shoes I would want and mean the first one.
Never give vague answers to juniors.
I said: "If we want it fast, we should use an existing engine, but if we want a customizable thing and to learn a lot in the process, we should make it from scratch." I emphasized the second option because I wanted that more.
He said: "You just answered your own question".
Back then I thought he approved a custom solution, and I dived into it. Now I think in his shoes I would want and mean the first one.
Never give vague answers to juniors.
π6π2