Skip to content

Commit 7a69ac0

Browse files
committed
new post and file indetifier section
1 parent 324ead1 commit 7a69ac0

File tree

21 files changed

+935
-2
lines changed

21 files changed

+935
-2
lines changed

.eleventy.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ module.exports = function (eleventyConfig) {
2222
// This basically lets me use styles.css in my HTML files
2323
eleventyConfig.addPassthroughCopy("styles.css");
2424

25+
eleventyConfig.addPassthroughCopy({ "./filetype_wasm/pkg": "pkg" });
26+
2527
// Enable excerpts
2628
eleventyConfig.setFrontMatterParsingOptions({
2729
excerpt: true,

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/docs
2+
/filetype_wasm/target/
3+
/filetype_wasm/pkg/
4+
/filetype_wasm/.wasm-pack
5+
/node_modules/
6+
*.log
7+
.DS_Store
8+
Thumbs.db
9+
.vscode/

_includes/layout.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ <h2 class="visually-hidden" id="top-level-navigation-menu">Top level navigation
1515
<li class="nav-item"><a href="/">Home</a></li>
1616
<li class="nav-item"><a href="/posts/">Blog</a></li>
1717
<li class="nav-item"><a href="/cv/">Curriculum Vitae</a></li>
18+
<li class="nav-item"><a href="/file-indentifier/">File Type Identifier</a></li>
1819
</ul>
1920
</nav>
2021
</header>

content/file-indentifier.html

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
---
2+
layout: layout.html
3+
title: File Type Identifier
4+
---
5+
6+
<h1>File Type Identifier</h1>
7+
<p>Select a file from your computer to identify its type using Rust and WebAssembly. The entire process runs locally in your browser.</p>
8+
9+
<input type="file" id="upload" class="message-box" />
10+
<hr>
11+
<h3>Results:</h3>
12+
<pre id="results"; class="message-box">Awaiting file...</pre>
13+
14+
<script type="module">
15+
// Import the wasm-pack generated JS and your Wasm function
16+
import init, { identify_file_wasm } from '/pkg/filetype_wasm.js';
17+
18+
async function main() {
19+
// Initialize the Wasm module.
20+
await init();
21+
22+
const fileInput = document.getElementById('upload');
23+
const resultsOutput = document.getElementById('results');
24+
25+
fileInput.addEventListener('change', (event) => {
26+
const file = event.target.files[0];
27+
if (!file) {
28+
resultsOutput.textContent = 'Awaiting file...';
29+
return;
30+
}
31+
32+
const reader = new FileReader();
33+
34+
// This function runs AFTER the file is read successfully
35+
reader.onload = (e) => {
36+
// Get the file's bytes as a Uint8Array
37+
const bytes = new Uint8Array(e.target.result);
38+
39+
// Call your Rust function!
40+
const fileInfo = identify_file_wasm(bytes);
41+
42+
// Display the result
43+
resultsOutput.textContent = fileInfo;
44+
};
45+
46+
// This function runs if there's an error reading the file
47+
reader.onerror = () => {
48+
resultsOutput.textContent = `Error: Could not read the file "${file.name}".`;
49+
};
50+
51+
resultsOutput.textContent = `Analyzing "${file.name}"...`;
52+
53+
// Start reading the file
54+
reader.readAsArrayBuffer(file);
55+
});
56+
}
57+
58+
main().catch(console.error); // Keep this to log any potential initialization errors in the future.
59+
</script>

content/posts/post3(languages).md

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
title: "Report on Language Learning Resources"
3+
date: "2025-06-23"
4+
tags: ["languages", "resources"]
5+
---
6+
Over years of studying languages, I've tested a wide array of learning tools. This report shares my personal experiences and ratings for each, from apps to websites, to help you choose the right one for your journey.
7+
8+
## <u>Top Language Learning Applications</u>
9+
10+
### Babbel
11+
**Score: 10/10**
12+
13+
Topping my list is Babbel, which I consider the most complete application available. Its placement as the second-most-famous app is likely due to strong advertising, but the product quality justifies the recognition. The app is packed with features, including audio exercises, realistic scenario practice, advanced vocabulary, and clear grammar explanations. What's particularly impressive is the inclusion of regional variations for languages like Spanish. I can't identify a single missing element, and I've seriously considered the lifetime subscription because of how extensively I study languages. Its only drawback is that a significant portion of its content requires a paid subscription.
14+
15+
### Busuu
16+
**Score: 9/10**
17+
18+
It's surprising that Busuu isn't more widely known outside of dedicated language-learning circles. It presents a broad selection of languages with specialized courses for general studies, business, or travel. The lessons effectively blend grammar, vocabulary, culture, and pronunciation, explaining grammatical concepts in a straightforward manner before prompting you to apply the knowledge. The power of Busuu lies in its emphasis on spaced repetition. Its most innovative feature is the community section, where you can submit written or oral exercises and receive feedback from native speakers. In return, you can help others learning your native language. While the free tier is well-balanced with some ads and daily limits, the premium plan unlocks an ad-free experience, offline access, and official certificates.
19+
20+
### Memrise
21+
**Score: 9/10**
22+
23+
Memrise remains a personal favorite, despite the limitations of its free version. It utilizes three main learning methods: standard lessons, short videos featuring native speakers, and an AI chat. The use of native speaker videos is a huge plus for nailing pronunciation. While it doesn't explicitly teach grammar, the vocabulary provided is rich and extensive. The AI Chat function is a standout, allowing you to practice in realistic scenarios and receive corrections on your mistakes. The main downside is that the free plan locks a large number of lessons, which isn't an issue with Duolingo or Busuu.
24+
25+
### Mango Languages
26+
**Score: 7/10**
27+
28+
I find Mango Languages the most difficult to review, partly because I've used it less than the others. The app is built on the premise that conversation is the key to learning, so its lessons are structured like dialogues. It offers a unique hands-off listening mode, which allows you to follow lessons while driving, cooking, or doing chores, reminiscent of old cassette-based language courses. While this method isn't my personal preference, I don't have a negative view of it, leading me to give it a standard score.
29+
30+
### Drops
31+
**Score: 7/10**
32+
33+
Drops takes a very simplistic approach, teaching words by associating them with images and sounds. The exercises are quick and perfectly suited for short bursts of learning, like during a bus ride. This method might be especially effective for children. The app serves its purpose as a quick, effortless tool, but it's neither groundbreaking nor flawed. The free version is restricted to five minutes of practice per day, though you can split this time up as you wish.
34+
35+
### Tandem
36+
**Score: 7/10**
37+
38+
Tandem operates less as a learning app and more as a social network for language practice with native and non-native speakers. Its strengths lie in its filtering system for finding practice partners and a built-in tool for making and receiving corrections. The app holds a lot of potential if you can use it effectively. My own experience was hampered by slow response times from other users, which made it hard to maintain a conversation. However, since I haven't used it in years, it's possible the user base is more active now.
39+
40+
### Duolingo
41+
**Score: 5/10**
42+
43+
As the world's most famous language app, Duolingo is often the first stop for beginners, but I strongly discourage its use. While its vocabulary bank is varied, the lesson structure fails to build a deep understanding of the language. The complete absence of grammar explanations is a major flaw; student-friendly grammar lessons are possible and necessary. Where Duolingo excels is in habit formation. Its notorious reminders and streak system are incredibly effective at keeping users consistent, which is crucial when forming a new habit.
44+
45+
## <u>Valuable YouTube Channels for Language Learners</u>
46+
47+
- [**FluentU**](https://www.youtube.com/@Fluentu) - This collection of channels breaks down episodes of popular TV shows like *F.R.I.E.N.D.S.*, allowing you to watch authentic content and get detailed explanations of expressions.
48+
49+
- [**Golyplot**](https://www.youtube.com/@golyplot) - Though not highly active, the sheer quality of this channel makes it worthy of mention for its work in making Bulgarian and other Slavic languages more accessible. Recent videos have also featured walking tours of Bulgarian cities.
50+
51+
- [**Learn Italian with Stefano**](https://www.youtube.com/@teacherstefano) - An essential channel for anyone learning Italian. Stefano's entertaining and easy-to-follow videos cover both language and culture, which is a tremendous help for learners.
52+
53+
- [**Podcast Italiano**](https://www.youtube.com/@PodcastItaliano) - Hosted by Davide, this is another delightful channel for Italian learners. My experience is that it leans more toward linguistic topics while still touching on cultural aspects.
54+
55+
- [**Portuguese with Leo**](https://www.youtube.com/@PortugueseWithLeo) - Run by Davide's friend Leo, this channel is dedicated to European Portuguese. He provides excellent tutorials and ensures his videos are clear, which is vital given how difficult European Portuguese can be for other speakers to understand.
56+
57+
- [**Speaking Brazilian Language School**](https://www.youtube.com/@SpeakingBrazilian) - Hosted by Virginia Langhammer, this channel skillfully mixes language and culture. Virginia chooses engaging topics, such as analyzing the structure and meaning of jokes.
58+
59+
- [**Linguriosa**](https://www.youtube.com/@Linguriosa) - Elena's channel is a must-watch if you're curious about the Spanish language or linguistics in general. She delves into interesting facts about Spanish, Romance languages, and others, helping students gain a much deeper understanding of how languages evolve and function.
60+
61+
- [**LangFocus**](https://www.youtube.com/@Langfocus) - While potentially feeling technical, this channel is worth your time. Its purpose is to explain the detailed mechanics of how different languages structure their phrases and sentences. Comparisons between languages are also offered and they are particularly useful for understanding their differences and similarities.
62+
63+
- [**Olly Richards**](https://www.youtube.com/@storylearning) - This channel is taught in English and explores interesting facts about a wide variety of languages. It's a fantastic source of inspiration and might just introduce you to your next language project.
64+
65+
## <u> Helpful Websites</u>
66+
67+
- [**Parla.cat**](https://parla.cat) - Backed by the government of Catalonia, this is an official platform for learning Catalan. It features courses structured by proficiency level, with options for a free self-directed path or a paid version with a tutor.
68+
69+
- [**Online Italian Club**](https://onlineitalianclub.com/free_italian_exercises/italian_level_test.html) - This site hosts a massive collection of free materials for learning Italian, all organized by the CEFR scale (A1-C2). For me, the most valuable tool was the level test.
70+
71+
- [**Sprachschule Aktiv**](https://www.sprachschule-aktiv-muenchen.de/en/german-test-online/) - Much like the Italian site, this one provides online placement tests for German to help you identify areas needing improvement. They also detail their course offerings, from intensive programs to private tutoring.

docs/404.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ <h2 class="visually-hidden" id="top-level-navigation-menu">Top level navigation
1515
<li class="nav-item"><a href="/">Home</a></li>
1616
<li class="nav-item"><a href="/posts/">Blog</a></li>
1717
<li class="nav-item"><a href="/cv/">Curriculum Vitae</a></li>
18+
<li class="nav-item"><a href="/file-indentifier/">File Type Identifier</a></li>
1819
</ul>
1920
</nav>
2021
</header>

docs/cv/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ <h2 class="visually-hidden" id="top-level-navigation-menu">Top level navigation
1515
<li class="nav-item"><a href="/">Home</a></li>
1616
<li class="nav-item"><a href="/posts/">Blog</a></li>
1717
<li class="nav-item"><a href="/cv/">Curriculum Vitae</a></li>
18+
<li class="nav-item"><a href="/file-indentifier/">File Type Identifier</a></li>
1819
</ul>
1920
</nav>
2021
</header>

docs/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ <h2 class="visually-hidden" id="top-level-navigation-menu">Top level navigation
1515
<li class="nav-item"><a href="/">Home</a></li>
1616
<li class="nav-item"><a href="/posts/">Blog</a></li>
1717
<li class="nav-item"><a href="/cv/">Curriculum Vitae</a></li>
18+
<li class="nav-item"><a href="/file-indentifier/">File Type Identifier</a></li>
1819
</ul>
1920
</nav>
2021
</header>

docs/posts/index.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ <h2 class="visually-hidden" id="top-level-navigation-menu">Top level navigation
1515
<li class="nav-item"><a href="/">Home</a></li>
1616
<li class="nav-item"><a href="/posts/">Blog</a></li>
1717
<li class="nav-item"><a href="/cv/">Curriculum Vitae</a></li>
18+
<li class="nav-item"><a href="/file-indentifier/">File Type Identifier</a></li>
1819
</ul>
1920
</nav>
2021
</header>
@@ -31,6 +32,10 @@ <h1>Welcome to <u>Blog</u></h1>
3132
<p>Here you can check any <a href="/tags" class="post-tags">tags</a>.</p>
3233

3334

35+
<h2><a href="/posts/post3(languages)/">Report on Language Learning Resources</a></h2>
36+
<p class="post-date">Published on: June 22, 2025</p>
37+
<p></p>
38+
3439
<h2><a href="/posts/post2/">I hate deployment, don't even mention it</a></h2>
3540
<p class="post-date">Published on: May 25, 2025</p>
3641
<p>Seems like I’m not getting anything right on the first try. In this edition of *Dev Odysseys*, I’ll share the rollercoaster of deploying my website—complete with rage-quits, AI rescues, and GitHub Pages chaos.

docs/posts/post1/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ <h2 class="visually-hidden" id="top-level-navigation-menu">Top level navigation
1515
<li class="nav-item"><a href="/">Home</a></li>
1616
<li class="nav-item"><a href="/posts/">Blog</a></li>
1717
<li class="nav-item"><a href="/cv/">Curriculum Vitae</a></li>
18+
<li class="nav-item"><a href="/file-indentifier/">File Type Identifier</a></li>
1819
</ul>
1920
</nav>
2021
</header>

0 commit comments

Comments
 (0)